iri 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +7 -4
- data/README.md +5 -1
- data/iri.gemspec +1 -1
- data/lib/iri.rb +11 -0
- data/test/test_iri.rb +7 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 507a30295665ced7270e86cb999cd72423fb47d9c16c96d27c18bb1ab5a16e79
|
4
|
+
data.tar.gz: cc1a925c9d497989e0d5ddfc8710969b0908931a6c8c4412acbe8037c13433e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 175f87bb42e6d6900d6d60013f3793b00f747905edd64b9d42b1c95887e13b5cb7996a7448075d324df098c62070427d7f496b172a4080feea50f923b4a39487
|
7
|
+
data.tar.gz: 104e8a187054002113e61a52f248128e6df6ce6c48da15599d2a0e03d0decc7c51060add60347a4bd1f4a0be2375888a516cd2ac41a4112a8200604a410e488d
|
data/.travis.yml
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
3
|
- 2.6.0
|
4
|
+
cache: bundler
|
4
5
|
branches:
|
5
6
|
only:
|
6
7
|
- master
|
7
8
|
install:
|
8
|
-
- bundle
|
9
|
+
- travis_retry bundle update
|
10
|
+
- gem install pdd
|
9
11
|
script:
|
10
|
-
-
|
11
|
-
- rake
|
12
|
-
|
12
|
+
- pdd -f /dev/null
|
13
|
+
- bundle exec rake
|
14
|
+
after_success:
|
15
|
+
- "bash <(curl -s https://codecov.io/bash)"
|
data/README.md
CHANGED
@@ -8,13 +8,17 @@
|
|
8
8
|
[](https://codeclimate.com/github/yegor256/iri/maintainability)
|
9
9
|
[](http://rubydoc.info/github/yegor256/iri/master/frames)
|
10
10
|
|
11
|
+
[](https://codecov.io/github/yegor256/iri?branch=master)
|
12
|
+
[](https://hitsofcode.com/view/github/yegor256/iri)
|
13
|
+
|
11
14
|
Class `Iri` helps you build a URI and then modify its
|
12
15
|
parts via a simple fluent interface:
|
13
16
|
|
14
17
|
```ruby
|
15
18
|
require 'iri'
|
16
19
|
url = Iri.new('http://google.com/')
|
17
|
-
.
|
20
|
+
.append('find').append('me') # -> http://google.com/find/me
|
21
|
+
.add(q: 'books about OOP', limit: 50) # -> ?q=books+about+OOP&limit=50
|
18
22
|
.del(:q) # remove this query parameter
|
19
23
|
.del('limit') # remove this one too
|
20
24
|
.over(q: 'books about tennis', limit: 10) # replace these params
|
data/iri.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
s.rubygems_version = '2.5'
|
32
32
|
s.required_ruby_version = '>=2.5'
|
33
33
|
s.name = 'iri'
|
34
|
-
s.version = '0.
|
34
|
+
s.version = '0.4.0'
|
35
35
|
s.license = 'MIT'
|
36
36
|
s.summary = 'Simple Immutable Ruby URI Builder'
|
37
37
|
s.description = 'Class Iri helps you build a URI and then modify its \
|
data/lib/iri.rb
CHANGED
@@ -161,6 +161,17 @@ class Iri
|
|
161
161
|
end
|
162
162
|
end
|
163
163
|
|
164
|
+
# Append something new to the path:
|
165
|
+
#
|
166
|
+
# Iri.new('https://google.com/a/b?q=test').append('/hello')
|
167
|
+
#
|
168
|
+
# The result will contain "https://google.com/a/b/hello?q=test".
|
169
|
+
def append(part)
|
170
|
+
modify do |c|
|
171
|
+
c.path = c.path + '/' + CGI.escape(part)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
164
175
|
private
|
165
176
|
|
166
177
|
def modify
|
data/test/test_iri.rb
CHANGED
@@ -117,6 +117,13 @@ class IriTest < Minitest::Test
|
|
117
117
|
)
|
118
118
|
end
|
119
119
|
|
120
|
+
def test_appends_path
|
121
|
+
assert_equal(
|
122
|
+
'http://google/a/b/z+%2F+7?x=3',
|
123
|
+
Iri.new('http://google/a/b?x=3').append('z / 7').to_s
|
124
|
+
)
|
125
|
+
end
|
126
|
+
|
120
127
|
def test_replaces_query_param
|
121
128
|
assert_equal(
|
122
129
|
'http://google/?a=hey&b=2&c=3',
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|