izzy 3.1.0 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|