izzy 3.1.0 → 3.2.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/CHANGELOG.md +10 -1
- data/README.md +75 -38
- data/Rakefile +1 -1
- data/lib/izzy.rb +24 -5
- data/lib/izzy/version.rb +1 -1
- data/spec/izzy_spec.rb +136 -97
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f887dc8ba689628a9a7fa1998d390283069082f3
|
4
|
+
data.tar.gz: afc2eb39a69dc0e1e7f426dd6103ab19947381fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 451277cec47478a5b83a416d075eab35ce3a483e5d0567fcdc44915b53562ac25655d4f39e1e3966936dc85ea3634b89c5604ff752eebf455e01ffc9d76176bd
|
7
|
+
data.tar.gz: fe4923ee0732d862bed2f8b06bc10b267c7def3ae6de02dbafe03f33c6f9904dfddd1ed7ad7138547121ce49d01eee41046437df569e8e6dfbe24506a6f654a8
|
data/CHANGELOG.md
CHANGED
@@ -44,4 +44,13 @@ Added a module to be mixed into Array, allowing for encapsulation of function ev
|
|
44
44
|
Methods added:
|
45
45
|
* all_are
|
46
46
|
* any_are
|
47
|
-
* none_are
|
47
|
+
* none_are
|
48
|
+
|
49
|
+
## v 3.2.0 - Merge QEnumerable
|
50
|
+
|
51
|
+
Merged the QEnumerable gem into Izzy because of similarities. Removed respond_to? on checks (not including arrays) in order to skim down the time.
|
52
|
+
|
53
|
+
Methods added:
|
54
|
+
* select_where
|
55
|
+
* reject_where
|
56
|
+
* find_where
|
data/README.md
CHANGED
@@ -6,58 +6,31 @@
|
|
6
6
|
|
7
7
|
## Izzy Module
|
8
8
|
|
9
|
-
To demo Izzy, let's
|
9
|
+
To demo Izzy, let's make a Person:
|
10
10
|
|
11
|
-
```ruby
|
12
|
-
class Person
|
13
|
-
include Izzy # Make sure to include Izzy!
|
14
|
-
attr_reader :name, :age, :sex
|
15
|
-
|
16
|
-
def initialize(name, age, sex)
|
17
|
-
@name = name
|
18
|
-
@age = age
|
19
|
-
@sex = sex
|
20
|
-
end
|
21
|
-
|
22
|
-
def older_than_18?; @age > 18 end
|
23
|
-
|
24
|
-
def younger_than_18?; @age < 18 end
|
25
|
-
|
26
|
-
def male?; @sex == 'm'; end
|
27
|
-
|
28
|
-
def female?; @sex == 'f' end
|
29
|
-
|
30
|
-
def me?; @name == 'brandon' && @sex == 'm' end
|
31
|
-
|
32
|
-
def geek?; @name == 'brandon' end
|
33
|
-
end
|
34
|
-
```
|
35
|
-
|
36
|
-
So we make our person:
|
37
11
|
```ruby
|
38
12
|
brandon = Person.new('brandon', 23, 'm')
|
39
13
|
```
|
40
14
|
|
41
|
-
|
42
|
-
```ruby
|
43
|
-
brandon.all_of? :older_than_18?, :male?, :me?, :geek? # => true
|
44
|
-
brandon.none_of? :younger_than_18?, :female? # => true
|
45
|
-
brandon.any_of? :male?, :female?, :geek? # => true
|
46
|
-
```
|
15
|
+
### Matchers
|
47
16
|
|
48
|
-
|
17
|
+
Let's do some matching against it:
|
49
18
|
```ruby
|
50
19
|
brandon.matches_all? name: /^br/, age: (20..30) # => true
|
51
20
|
brandon.matches_any? name: /br$/, age: (20..30) # => true
|
52
21
|
brandon.matches_none? name: /br&/, age: (30..40) # => true
|
53
22
|
```
|
54
|
-
Izzy compares on === much like a case statement, allowing you to regex and range away! You can even do type checks while you're at it.
|
55
23
|
|
24
|
+
#### Type Checking
|
25
|
+
|
26
|
+
Perhaps you want to type check:
|
56
27
|
```ruby
|
57
28
|
brandon.matches_all? name: String, age: Integer
|
58
29
|
```
|
59
30
|
|
60
|
-
|
31
|
+
#### Lambdas
|
32
|
+
|
33
|
+
Need a bit more power? We have Lambdas for that!
|
61
34
|
|
62
35
|
```ruby
|
63
36
|
longer_than_3 = -> n { n.length > 3 }
|
@@ -66,6 +39,8 @@ is_odd = -> a { a.odd? }
|
|
66
39
|
brandon.matches_all? name: longer_than_3, age: is_odd # => true
|
67
40
|
```
|
68
41
|
|
42
|
+
### Multi Matchers
|
43
|
+
|
69
44
|
....or let's push it further for some interesting results:
|
70
45
|
|
71
46
|
```ruby
|
@@ -81,11 +56,18 @@ brandon.matches_all?(
|
|
81
56
|
|
82
57
|
```
|
83
58
|
|
84
|
-
|
59
|
+
#### Boolean Matchers
|
60
|
+
|
61
|
+
...and do some comparisons on boolean methods!
|
62
|
+
```ruby
|
63
|
+
brandon.all_of? :older_than_18?, :male?, :me?, :geek? # => true
|
64
|
+
brandon.none_of? :younger_than_18?, :female? # => true
|
65
|
+
brandon.any_of? :male?, :female?, :geek? # => true
|
66
|
+
```
|
85
67
|
|
86
68
|
## Izzy Array Module
|
87
69
|
|
88
|
-
|
70
|
+
IzzyArray allows you a few more tricks on top of that!
|
89
71
|
```ruby
|
90
72
|
class Array; include IzzyArray end
|
91
73
|
|
@@ -96,6 +78,61 @@ class Array; include IzzyArray end
|
|
96
78
|
|
97
79
|
Combine with rails :present?, :empty?, and various other methods and you have some interesting results! This one will get some more power with experimentation.
|
98
80
|
|
81
|
+
## Izzy Enumerable
|
82
|
+
|
83
|
+
Let's get ourselves a collection to use:
|
84
|
+
```ruby
|
85
|
+
class Object; include Izzy end
|
86
|
+
|
87
|
+
brandon = Person.new('brandon', 23, 'm')
|
88
|
+
john = Person.new('john', 42, 'm')
|
89
|
+
jill = Person.new('jill', 31, 'f')
|
90
|
+
alice = Person.new('alice', 50, 'f')
|
91
|
+
zeke = Person.new('zeke', 18, 'm')
|
92
|
+
|
93
|
+
people = [brandon, john, jill, alice, zeke]
|
94
|
+
```
|
95
|
+
|
96
|
+
### Select Where
|
97
|
+
|
98
|
+
Select all objects where params match:
|
99
|
+
```ruby
|
100
|
+
people.select_where name: /^j/
|
101
|
+
# => [john, jill]
|
102
|
+
|
103
|
+
people.select_where(
|
104
|
+
age: [
|
105
|
+
(20..35),
|
106
|
+
-> a { a.odd? }
|
107
|
+
]
|
108
|
+
)
|
109
|
+
# => [brandon]
|
110
|
+
```
|
111
|
+
|
112
|
+
### Reject Where
|
113
|
+
|
114
|
+
Reject all objects where params match:
|
115
|
+
```ruby
|
116
|
+
people.reject_where name: /^j/
|
117
|
+
# => [brandon, alice, zeke]
|
118
|
+
|
119
|
+
people.reject_where(
|
120
|
+
age: [
|
121
|
+
(20..35),
|
122
|
+
-> a { a.odd? }
|
123
|
+
]
|
124
|
+
)
|
125
|
+
# => [john, jill, alice, zeke]
|
126
|
+
```
|
127
|
+
|
128
|
+
### Find Where
|
129
|
+
|
130
|
+
Finds the first object where params match:
|
131
|
+
```ruby
|
132
|
+
people.find_where name: /^j/, gender: 'm'
|
133
|
+
# => john
|
134
|
+
```
|
135
|
+
|
99
136
|
## Installation
|
100
137
|
|
101
138
|
Add this line to your application's Gemfile:
|
data/Rakefile
CHANGED
data/lib/izzy.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'izzy/version'
|
2
2
|
|
3
3
|
module Izzy
|
4
|
+
|
5
|
+
# Boolean Predicate
|
6
|
+
|
4
7
|
def all_of?(*methods)
|
5
8
|
methods.all? &method_check
|
6
9
|
end
|
@@ -13,6 +16,8 @@ module Izzy
|
|
13
16
|
methods.none? &method_check
|
14
17
|
end
|
15
18
|
|
19
|
+
# Matchers
|
20
|
+
|
16
21
|
def matches_all?(matchers = {})
|
17
22
|
matchers.all? &matcher_check(:all?)
|
18
23
|
end
|
@@ -25,32 +30,46 @@ module Izzy
|
|
25
30
|
matchers.none? &matcher_check(:any?)
|
26
31
|
end
|
27
32
|
|
33
|
+
# Enumerable Matchers
|
34
|
+
|
35
|
+
def select_where(matchers = {})
|
36
|
+
self.select { |s| s.matches_all? matchers }
|
37
|
+
end
|
38
|
+
|
39
|
+
def reject_where(matchers = {})
|
40
|
+
self.reject { |s| s.matches_all? matchers }
|
41
|
+
end
|
42
|
+
|
43
|
+
def find_where(matchers = {})
|
44
|
+
self.find { |s| s.matches_all? matchers }
|
45
|
+
end
|
46
|
+
|
28
47
|
private
|
29
48
|
|
30
49
|
def method_check
|
31
|
-
-> m { self.
|
50
|
+
-> m { self.send(m) }
|
32
51
|
end
|
33
52
|
|
34
53
|
def matcher_check(type = :all?)
|
35
54
|
-> matcher {
|
36
55
|
m, val = *matcher
|
37
56
|
values = val.is_a?(Array) ? val : Array[val]
|
38
|
-
values.send(type) { |v|
|
57
|
+
values.send(type) { |v| v === self.send(m) }
|
39
58
|
}
|
40
59
|
end
|
41
60
|
end
|
42
61
|
|
43
62
|
module IzzyArray
|
44
63
|
def all_are(m)
|
45
|
-
self.all?
|
64
|
+
self.all? &object_block(m)
|
46
65
|
end
|
47
66
|
|
48
67
|
def any_are(m)
|
49
|
-
self.any?
|
68
|
+
self.any? &object_block(m)
|
50
69
|
end
|
51
70
|
|
52
71
|
def none_are(m)
|
53
|
-
self.none?
|
72
|
+
self.none? &object_block(m)
|
54
73
|
end
|
55
74
|
|
56
75
|
private
|
data/lib/izzy/version.rb
CHANGED
data/spec/izzy_spec.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
class Object; include Izzy end
|
4
|
+
|
3
5
|
class Person
|
4
6
|
include Izzy
|
5
7
|
|
@@ -11,131 +13,168 @@ class Person
|
|
11
13
|
@sex = sex
|
12
14
|
end
|
13
15
|
|
14
|
-
def older_than_18
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
def
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
def male?
|
23
|
-
@sex.eql? 'm'
|
24
|
-
end
|
25
|
-
|
26
|
-
def female?
|
27
|
-
@sex.eql? 'f'
|
28
|
-
end
|
29
|
-
|
30
|
-
def me?
|
31
|
-
@name.eql?('brandon') && @sex.eql?('m')
|
32
|
-
end
|
33
|
-
|
34
|
-
def geek?
|
35
|
-
@name.eql? 'brandon'
|
36
|
-
end
|
16
|
+
def older_than_18?; @age > 18 end
|
17
|
+
def younger_than_18?; @age < 18 end
|
18
|
+
def male?; @sex.eql? 'm' end
|
19
|
+
def female?; @sex.eql? 'f' end
|
20
|
+
def me?; @name.eql?('brandon') && @sex.eql?('m') end
|
21
|
+
def geek?; @name.eql? 'brandon' end
|
37
22
|
end
|
38
23
|
|
39
|
-
|
40
|
-
|
24
|
+
brandon = Person.new('brandon', 23, 'm')
|
25
|
+
john = Person.new('john', 42, 'm')
|
26
|
+
jill = Person.new('jill', 31, 'f')
|
27
|
+
alice = Person.new('alice', 50, 'f')
|
28
|
+
zeke = Person.new('zeke', 18, 'm')
|
41
29
|
|
42
|
-
|
43
|
-
it 'returns true if Person matches all of the conditions' do
|
44
|
-
expect(@person.all_of? :older_than_18?, :male?, :geek?).to be_true
|
45
|
-
end
|
30
|
+
people = [brandon, john, jill, alice, zeke]
|
46
31
|
|
47
|
-
|
48
|
-
|
32
|
+
describe 'Person' do
|
33
|
+
context 'Boolean Predicates' do
|
34
|
+
describe '#all_of?' do
|
35
|
+
it 'returns true if Person matches all of the conditions' do
|
36
|
+
expect(brandon.all_of? :older_than_18?, :male?, :geek?).to be_true
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'returns false if Person does not match all of the conditions' do
|
40
|
+
expect(brandon.all_of? :younger_than_18?, :male?).to be_false
|
41
|
+
end
|
49
42
|
end
|
50
|
-
end
|
51
43
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
44
|
+
describe '#any_of?' do
|
45
|
+
it 'returns true if Person matches any of the conditions' do
|
46
|
+
expect(brandon.any_of? :older_than_18?, :female?, :geek?).to be_true
|
47
|
+
end
|
56
48
|
|
57
|
-
|
58
|
-
|
49
|
+
it 'returns false if Person matches none of the conditions' do
|
50
|
+
expect(brandon.any_of? :younger_than_18?, :female?).to be_false
|
51
|
+
end
|
59
52
|
end
|
60
|
-
end
|
61
53
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
54
|
+
describe '#none_of?' do
|
55
|
+
it 'returns true if Person matches none of the conditions' do
|
56
|
+
expect(brandon.none_of? :younger_than_18?, :female?).to be_true
|
57
|
+
end
|
66
58
|
|
67
|
-
|
68
|
-
|
59
|
+
it 'returns false if Person matches any of the conditions' do
|
60
|
+
expect(brandon.none_of? :older_than_18?, :female?, :geek?).to be_false
|
61
|
+
end
|
69
62
|
end
|
70
63
|
end
|
71
64
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
65
|
+
context 'Matchers' do
|
66
|
+
describe '#matches_all?' do
|
67
|
+
it 'returns true if Person matches all of the conditions' do
|
68
|
+
expect(
|
69
|
+
brandon.matches_all?(name: /br/, age: (20..30))
|
70
|
+
).to be_true
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'returns true for multiple conditionals' do
|
74
|
+
expect(
|
75
|
+
brandon.matches_all?(
|
76
|
+
name: [/br/, /an/],
|
77
|
+
age: [(20..30), -> a { a < 30 }]
|
78
|
+
)
|
79
|
+
).to be_true
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'returns false if Person does not match all conditions' do
|
83
|
+
expect(
|
84
|
+
brandon.matches_all?(name: /br/, age: (25..30))
|
85
|
+
).to be_false
|
86
|
+
end
|
77
87
|
end
|
78
88
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
name:
|
83
|
-
|
84
|
-
|
85
|
-
|
89
|
+
describe '#matches_any?' do
|
90
|
+
it 'returns true if Person matches all of the conditions' do
|
91
|
+
expect(
|
92
|
+
brandon.matches_any?(name: /br/, age: (25..30))
|
93
|
+
).to be_true
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'returns true for multiple conditionals' do
|
97
|
+
expect(
|
98
|
+
brandon.matches_any?(
|
99
|
+
name: [/br/, /an/],
|
100
|
+
age: [(30..40), -> a { a > 30 }]
|
101
|
+
)
|
102
|
+
).to be_true
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
it 'returns false if Person does not match any conditions' do
|
107
|
+
expect(
|
108
|
+
brandon.matches_any?(name: /br$/, age: (25..30))
|
109
|
+
).to be_false
|
110
|
+
end
|
86
111
|
end
|
87
112
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
113
|
+
describe '#matches_none?' do
|
114
|
+
it 'returns true if Person matches none of the conditions' do
|
115
|
+
expect(
|
116
|
+
brandon.matches_none?(name: /br$/, age: (25..30))
|
117
|
+
).to be_true
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'returns true for multiple conditionals' do
|
121
|
+
expect(
|
122
|
+
brandon.matches_none?(
|
123
|
+
name: [/br$/, /foo/],
|
124
|
+
age: [(30..40), -> a { a > 30 }]
|
125
|
+
)
|
126
|
+
).to be_true
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'returns false if Person matches any of the conditions' do
|
130
|
+
expect(
|
131
|
+
brandon.matches_none?(name: /br/, age: (25..30))
|
132
|
+
).to be_false
|
133
|
+
end
|
92
134
|
end
|
93
135
|
end
|
94
136
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
137
|
+
context 'Enumerable Matchers' do
|
138
|
+
describe '#select_where' do
|
139
|
+
it 'returns people whose names start with j' do
|
140
|
+
expect(people.select_where(name: /^j/)).to eq([john, jill])
|
141
|
+
end
|
142
|
+
|
143
|
+
it 'returns people whose ages are above 30' do
|
144
|
+
expect(people.select_where(age: -> a { a > 30 })).to eq([john, jill, alice])
|
145
|
+
end
|
101
146
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
name: [/br/, /an/],
|
106
|
-
age: [(30..40), -> a { a > 30 }]
|
107
|
-
)
|
108
|
-
).to be_true
|
147
|
+
it 'returns people who are male' do
|
148
|
+
expect(people.select_where(sex: 'm')).to eq([brandon, john, zeke])
|
149
|
+
end
|
109
150
|
end
|
110
151
|
|
152
|
+
describe '#reject_where' do
|
153
|
+
it 'returns people whose names do not start with j' do
|
154
|
+
expect(people.reject_where(name: /^j/)).not_to eq([john, jill])
|
155
|
+
end
|
111
156
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
).to be_false
|
116
|
-
end
|
117
|
-
end
|
157
|
+
it 'returns people whose ages are not above 30' do
|
158
|
+
expect(people.reject_where(age: -> a { a > 30 })).not_to eq([john, jill, alice])
|
159
|
+
end
|
118
160
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
@person.matches_none?(name: /br$/, age: (25..30))
|
123
|
-
).to be_true
|
161
|
+
it 'returns people who are not male' do
|
162
|
+
expect(people.reject_where(sex: 'm')).not_to eq([brandon, john, zeke])
|
163
|
+
end
|
124
164
|
end
|
125
165
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
166
|
+
describe '#find_where' do
|
167
|
+
it 'returns the first person whose name starts with j' do
|
168
|
+
expect(people.find_where(name: /^j/)).to eq(john)
|
169
|
+
end
|
170
|
+
|
171
|
+
it 'returns the first person whose age is above 30' do
|
172
|
+
expect(people.find_where(age: -> a { a > 30 })).to eq(john)
|
173
|
+
end
|
134
174
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
).to be_false
|
175
|
+
it 'returns the first person who is male' do
|
176
|
+
expect(people.find_where(sex: 'm')).to eq(brandon)
|
177
|
+
end
|
139
178
|
end
|
140
179
|
end
|
141
180
|
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: izzy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Weaver
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.5'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
description:
|
@@ -59,10 +59,10 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- .coveralls.yml
|
63
|
-
- .gitignore
|
64
|
-
- .rspec
|
65
|
-
- .travis.yml
|
62
|
+
- ".coveralls.yml"
|
63
|
+
- ".gitignore"
|
64
|
+
- ".rspec"
|
65
|
+
- ".travis.yml"
|
66
66
|
- CHANGELOG.md
|
67
67
|
- Gemfile
|
68
68
|
- LICENSE.txt
|
@@ -84,12 +84,12 @@ require_paths:
|
|
84
84
|
- lib
|
85
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
|
-
- -
|
92
|
+
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: '0'
|
95
95
|
requirements: []
|