aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2019-04-09 20:27:30 +0200
committerPatrick Spek <p.spek@tyil.nl>2019-04-09 20:27:30 +0200
commitc0d52b7c34ce2889944cce5a92e949488ff47234 (patch)
tree31741f20ee35c99f65043fa50435325b59c4bb40 /lib
parent1bd1dff6d449ab221e191679fd8ec516b7cc1d4e (diff)
Add methods to add query and path parts
Diffstat (limited to 'lib')
-rw-r--r--lib/URL.pm632
-rw-r--r--lib/URL/Grammar.pm62
-rw-r--r--lib/URL/Grammar/Actions.pm62
3 files changed, 32 insertions, 4 deletions
diff --git a/lib/URL.pm6 b/lib/URL.pm6
index 57235b4..fa9ebc8 100644
--- a/lib/URL.pm6
+++ b/lib/URL.pm6
@@ -25,7 +25,7 @@ multi method new (
samewith(
|%match,
- path => %match<path>.list
+ path => %match<path>.list,
);
}
@@ -51,6 +51,34 @@ multi method new (
);
}
+#| Append one or more parts to the path of the URL.
+method add-path (
+ *@parts,
+
+ --> URL
+) {
+ return self.new(|self.Hash) unless @parts;
+
+ self.new(
+ |self.Hash,
+ path => [|@!path, |@parts],
+ );
+}
+
+#| Append one or more query parameters to the URL.
+method add-query (
+ *%parts,
+
+ --> URL
+) {
+ return self.new(|self.Hash) unless %parts;
+
+ self.new(
+ |self.Hash,
+ query => %(|%!query, |%parts),
+ );
+}
+
method Hash (
--> Hash
) {
@@ -111,7 +139,7 @@ multi method Str (
=NAME URL
=AUTHOR Patrick Spek <p.spek@tyil.work>
-=VERSION 0.1.0
+=VERSION 0.2.0
=head1 Synopsis
diff --git a/lib/URL/Grammar.pm6 b/lib/URL/Grammar.pm6
index cc9f13c..2f5cd45 100644
--- a/lib/URL/Grammar.pm6
+++ b/lib/URL/Grammar.pm6
@@ -33,7 +33,7 @@ token fragment { <-[ \s ]>+ }
=NAME URL::Grammar
=AUTHOR Patrick Spek <p.spek@tyil.work>
-=VERSION 0.1.0
+=VERSION 0.2.0
=head1 Synopsis
diff --git a/lib/URL/Grammar/Actions.pm6 b/lib/URL/Grammar/Actions.pm6
index 2015073..2ef70bb 100644
--- a/lib/URL/Grammar/Actions.pm6
+++ b/lib/URL/Grammar/Actions.pm6
@@ -32,7 +32,7 @@ method fragment ($/) { make ~$/ }
=NAME URL::Grammar::Actions
=AUTHOR Patrick Spek <p.spek@tyil.work>
-=VERSION 0.1.0
+=VERSION 0.2.0
=head1 Synopsis