interrobang 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6095e5897bbea3cff7301fdc71e9957fb8780eab
4
- data.tar.gz: d1832778b017ca518c234006241e5bbd8406e17b
3
+ metadata.gz: 9712141ae193c892d33886ad593382b6be6074d6
4
+ data.tar.gz: 0f4f1cf059e7626d5ecbfc19ec8e65e0582d1a21
5
5
  SHA512:
6
- metadata.gz: 60c8312652570cad7ae79b0a0388f84b040bcd4d4cdb0bb9083d3c0283a2a9bd4991eea28f2c4d68cb5eedf3b4b157acdf6f25c93fc9f2fc94bf95a90bf1f3fe
7
- data.tar.gz: 622daee4c4311256827dea66f1b6251e2f9ddc27129be4e0143e33c409b46ecb0e75eb7d2e480bdce36bceb48a7a5fb2963610e52358026486e799672a6ccd4e
6
+ metadata.gz: 8592a7b828d2494581650bd18d475f907411c98530bbf359204c07a2f64637d4bb888dc7009bcbb716353725d437e4674fad7778b5b5e3a67f073aaec5d024ea
7
+ data.tar.gz: 89518dacacc502943491ea52a5a69b812f68ac87f7a6bcedb78f943b8b17075350f305a88805dcf6f75f62cbc00671d9be929b26a051c0c2ccc9b8c17be77b92
data/.travis.yml CHANGED
@@ -9,4 +9,4 @@ rvm:
9
9
  - rbx-2
10
10
  addons:
11
11
  code_climate:
12
- repo_token: 240d93328887c5936b3af5aadca1900358cb12bdc227831b0577be2e9a89d817
12
+ repo_token: 6f4b7c1f44b29f414ffb9b243b1f83cf5fa40eb297b4cd0c7761bf960487a8eb
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # Interrobang :interrobang:
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/interrobang.svg)](http://badge.fury.io/rb/interrobang)
3
4
  [![Build Status](https://travis-ci.org/fny/interrobang.svg?branch=master)](https://travis-ci.org/fny/interrobang)
4
5
  [![Test Coverage](https://codeclimate.com/github/fny/interrobang/badges/coverage.svg)](https://codeclimate.com/github/fny/interrobang)
6
+ [![Inline docs](http://inch-ci.org/github/fny/interrobang.svg?branch=master)](http://inch-ci.org/github/fny/interrobang)
5
7
 
6
8
  Convert your `predicate_methods?` into `bang_methods!` without abusing `method_missing`.
7
9
 
@@ -24,8 +26,12 @@ end
24
26
  `Interrobang` automagically adds corresponding bang methods for any predicate methods that end in a `?`. The bang methods explode when the predicate method returns a falsey value.
25
27
 
26
28
  ```ruby
27
- Interrobang.bangify(Answer)
28
- answer = Answer.new # => [:correct!]
29
+ # Pick your poison...
30
+ Interrobang(Answer) # => [:correct!]
31
+ Interrobang.bangify(Answer) # => [:correct!]
32
+ Interrobang.bangify_class(Answer) # => [:correct!]
33
+
34
+ answer = Answer.new
29
35
  answer.respond_to?(:correct!) # => true (no method missing shenanigans!)
30
36
  Answer.new.correct! # => Raises Interrobang::FalsePredicate if `#correct?` is false
31
37
  ```
@@ -33,7 +39,7 @@ Answer.new.correct! # => Raises Interrobang::FalsePredicate if `#correct?` is fa
33
39
  You can add prefixes and suffixes to the generated bang method.
34
40
 
35
41
  ```ruby
36
- Interrobang.bangify(Answer, prefix: 'ensure_', suffix: '_or_else')
42
+ Interrobang(Answer, prefix: 'ensure_', suffix: '_or_else')
37
43
  # => [:ensure_correct_or_else!]
38
44
  Answer.new.ensure_correct_or_else!
39
45
  # => Raises Interrobang::FalsePredicate if `#correct?` is false
@@ -42,7 +48,7 @@ Answer.new.ensure_correct_or_else!
42
48
  Provide your own blocks to execute on failure. You can optionally access the symbol of the predicate method as an argument.
43
49
 
44
50
  ```ruby
45
- Interrobang.bangify(Answer, prefix: 'ensure_') do |predicate_method|
51
+ Interrobang(Answer, prefix: 'ensure_') do |predicate_method|
46
52
  raise StandardError, predicate_method
47
53
  end # => [:ensure_correct!]
48
54
  Answer.new.ensure_correct! # => Raises StandardError if `#correct?` is false
@@ -51,13 +57,20 @@ Answer.new.ensure_correct! # => Raises StandardError if `#correct?` is false
51
57
  Need to convert a single method? No problem.
52
58
 
53
59
  ```ruby
54
- Interrobang.bangify_method(Answer, :correct?, prefix: 'ensure_', suffix: '_on_saturday') do
60
+ # Pick your poison...
61
+ Interrobang(Answer, :correct?) # => :correct!
62
+ Interrobang.bangify(Answer, :correct?) # => :correct!
63
+ Interrobang.bangify_method(Answer, :correct?) # => :correct!
64
+
65
+ Interrobang(Answer, :correct?, prefix: 'ensure_', suffix: '_on_saturday') do
55
66
  if Time.now.saturday?
56
67
  raise WeekendLaziness
57
68
  else
58
69
  true
59
70
  end
60
71
  end # => :ensure_correct_on_saturday!
72
+
73
+
61
74
  ```
62
75
 
63
76
  ### Filters
@@ -65,14 +78,14 @@ end # => :ensure_correct_on_saturday!
65
78
  Perhaps you'd like to convert methods that match a different pattern?
66
79
 
67
80
  ```ruby
68
- Interrobang.bangify(Answer, matching: %r{\Ais_.*\z})
81
+ Interrobang(Answer, matching: %r{\Ais_.*\z})
69
82
  # => [:is_correct!, :is_factual!, :is_right!]
70
83
  ```
71
84
 
72
85
  You can exclude methods that match the pattern with `except`.
73
86
 
74
87
  ```ruby
75
- Interrobang.bangify(Answer, matching: %r{\Ais_.*\z},
88
+ Interrobang(Answer, matching: %r{\Ais_.*\z},
76
89
  except: [:is_factual, :is_right])
77
90
  # => [:is_correct!]
78
91
  ```
@@ -80,24 +93,24 @@ Interrobang.bangify(Answer, matching: %r{\Ais_.*\z},
80
93
  Maybe you'd like to state the methods to convert explicitly?
81
94
 
82
95
  ```ruby
83
- Interrobang.bangify(Answer, only: :is_correct) # => [:is_correct!]
96
+ Interrobang(Answer, only: :is_correct) # => [:is_correct!]
84
97
  ```
85
98
 
86
99
  You can opt to include methods from parent classes, but proceed with caution...
87
100
 
88
101
  ```ruby
89
- Interrobang.bangify(Answer, include_super: true, prefix: 'ensure_')
102
+ Interrobang(Answer, include_super: true, prefix: 'ensure_')
90
103
  # => [:ensure_correct!, :ensure_nil!, :ensure_eql!, :ensure_tainted!, :ensure_untrusted!, :ensure_frozen!, :ensure_instance_variable_defined!, :ensure_instance_of!, :ensure_kind_of!, :ensure_is_a!, :ensure_respond_to!, :ensure_equal!]
91
104
  Answer.new.ensure_nil! # => Raises Interrobang::FalsePredicate
92
105
  ```
93
106
 
94
- Too lazy to type `Interrobang`? Just `extend` it. It's methods are `module_function`s!
107
+ Too lazy to type `Interrobang` a few timews? Just `extend` it. It's methods are `module_function`s.
95
108
 
96
109
  ```ruby
97
110
  class Answer
98
111
  extend Interrobang
99
- bangify self
100
- bangify_method self, :is_special
112
+ bangify_method self, :is_correct
113
+ bangify_method self, :is_correct, prefix: 'ensure_'
101
114
  end
102
115
  ```
103
116
 
@@ -145,11 +158,11 @@ class Protector
145
158
  @user && (@user.is_admin || @user.id == other_user.id)
146
159
  end
147
160
 
148
- Interrobang.bangify(self, prefix: 'ensure_') do |predicate_method|
161
+ Interrobang(self, prefix: 'ensure_') do |predicate_method|
149
162
  raise Unauthorized, "#{predicate_method} failed"
150
163
  end
151
164
 
152
- Interrobang.bangify_method(self, :signed_in?, prefix: 'ensure_') do |predicate_method|
165
+ Interrobang(self, :signed_in?, prefix: 'ensure_') do |predicate_method|
153
166
  raise NotSignedIn, "#{predicate_method} failed"
154
167
  end
155
168
  end
data/lib/interrobang.rb CHANGED
@@ -10,6 +10,24 @@ module Interrobang
10
10
 
11
11
  module_function
12
12
 
13
+ # Wrapper method for `bangify_class` and `bangify_method`. The appropriate
14
+ # method will be called depending on the method signature.
15
+ #
16
+ # Examples
17
+ #
18
+ # Interrobang.bangify(Answer) # => [:correct!]
19
+ # Interrobang.bangify(Answer, :is_correct) # => :is_correct!
20
+ #
21
+ # Returns either a Symbol or Symbol Array of bangified method names.
22
+ def bangify(*args, **keywords, &block)
23
+ klass, method = args
24
+ if method
25
+ bangify_method(klass, method, **keywords, &block)
26
+ else
27
+ bangify_class(klass, **keywords, &block)
28
+ end
29
+ end
30
+
13
31
  # Converts the specified predicate methods in a class to bang methods.
14
32
  #
15
33
  # klass - The Class to target for bangification
@@ -25,7 +43,7 @@ module Interrobang
25
43
  # inlcude_super - The Boolean specifying whether to bangify parent methods
26
44
  #
27
45
  # Returns the Symbol Array of bangified method names.
28
- def bangify(klass, matching: DEFAULT_PATTERN, only: [], except: [], prefix: '', suffix: '', include_super: false)
46
+ def bangify_class(klass, matching: DEFAULT_PATTERN, only: [], except: [], prefix: '', suffix: '', include_super: false)
29
47
  method_keys = klass.instance_methods(include_super)
30
48
  only = [only] unless only.is_a?(Array)
31
49
  except = [except] unless except.is_a?(Array)
@@ -101,3 +119,8 @@ module Interrobang
101
119
  bang_method
102
120
  end
103
121
  end
122
+
123
+ # Alias for `Interrobang.bangify`
124
+ def Interrobang(*args, &block)
125
+ Interrobang.bangify(*args, &block)
126
+ end
@@ -1,3 +1,3 @@
1
1
  module Interrobang
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -17,173 +17,205 @@ def test_class
17
17
  end
18
18
 
19
19
  describe Interrobang do
20
- describe '.bangify_method' do
21
- describe "with a method that ends in a ?" do
22
- it "adds a ! method dropping the ?" do
20
+ bangify_class_signatures = {
21
+ '#Interrobang' =>
22
+ -> (*args, &block) { Interrobang(*args, &block) },
23
+ '.bangify' =>
24
+ -> (*args, &block) { Interrobang.bangify(*args, &block) },
25
+ '.bangify_class' =>
26
+ -> (*args, &block) { Interrobang.bangify_class(*args, &block) }
27
+ }
28
+ bangify_class_signatures.each do |method_call, method_block|
29
+ describe method_call do
30
+ it "converts all predicate? methods by default" do
23
31
  klass = test_class
24
- Interrobang.bangify_method(klass, :true?)
32
+ method_block.call klass
25
33
  assert klass.new.true!
34
+ assert klass.new.veritable!
26
35
  end
27
- it "has no method missing shenanigans" do
36
+
37
+ it "returns an array of symbols of the bangified methods" do
28
38
  klass = test_class
29
- Interrobang.bangify_method(klass, :true?)
30
- assert klass.new.respond_to?(:true!)
39
+ assert_equal method_block.call(klass).sort, [:true!, :veritable!, :false!, :with_argument!].sort
31
40
  end
32
- end
33
41
 
34
- describe "with a method that does not end in a ?" do
35
- it "adds a ! method" do
42
+ it "converts all methods according to the provided prefix and suffix" do
36
43
  klass = test_class
37
- Interrobang.bangify_method(klass, :so_true)
44
+ method_block.call(klass, prefix: 'prefix_', suffix: '_suffix')
45
+ assert klass.new.prefix_true_suffix!
46
+ assert klass.new.prefix_veritable_suffix!
38
47
  end
39
- end
40
48
 
41
- it "returns the symbol of the bangified method" do
42
- klass = test_class
43
- assert_equal Interrobang.bangify_method(klass, :true?), :true!
44
- end
49
+ it "converts all methods that match the provided pattern" do
50
+ klass = test_class
51
+ method_block.call(klass, matching: %r{\Aso_.*\z})
52
+ assert klass.new.so_true!
53
+ assert klass.new.so_very_true!
54
+ -> { klass.new.true! }.must_raise NoMethodError
55
+ end
45
56
 
46
- it "works on methods with arguments" do
47
- klass = test_class
48
- Interrobang.bangify_method(klass, :with_argument?)
49
- assert klass.new.with_argument!(true)
50
- -> { klass.new.with_argument!(false) }.must_raise Interrobang::FalsePredicate
51
- end
57
+ it "converts all methods that match the provided pattern respected except" do
58
+ klass = test_class
59
+ method_block.call(klass, matching: %r{\Aso_.*\z}, except: [:so_very_true])
60
+ assert klass.new.so_true!
61
+ -> { klass.new.so_very_true! }.must_raise NoMethodError
62
+ -> { klass.new.true! }.must_raise NoMethodError
63
+ end
52
64
 
53
- it "does not convert assignment methods" do
54
- klass = test_class
55
- Interrobang.bangify_method klass, :assignment_=
56
- -> { klass.new.assignment_! }.must_raise NoMethodError
57
- end
65
+ it "except option accepts a singular symbol" do
66
+ klass = test_class
67
+ method_block.call(klass, matching: %r{\Aso_.*\z}, except: :so_very_true)
68
+ assert klass.new.so_true!
69
+ -> { klass.new.so_very_true! }.must_raise NoMethodError
70
+ -> { klass.new.true! }.must_raise NoMethodError
71
+ end
58
72
 
59
- it "does not convert bang methods" do
60
- klass = test_class
61
- Interrobang.bangify_method klass, :bang!
62
- assert_equal klass.new.bang!, '!'
63
- end
73
+ it "converts only the methods specified in the only option" do
74
+ klass = test_class
75
+ method_block.call(klass, only: [:so_true])
76
+ assert klass.new.so_true!
77
+ -> { klass.new.so_very_true! }.must_raise NoMethodError
78
+ -> { klass.new.true! }.must_raise NoMethodError
79
+ end
64
80
 
65
- describe "options" do
66
- it "adds any provided prefix or suffix to the bang method" do
81
+ it "except option accepts a singular symbol" do
67
82
  klass = test_class
68
- Interrobang.bangify_method(klass, :true?, prefix: 'prefix_', suffix: '_suffix')
69
- assert klass.new.prefix_true_suffix!
83
+ method_block.call(klass, only: :so_true)
84
+ assert klass.new.so_true!
85
+ -> { klass.new.so_very_true! }.must_raise NoMethodError
86
+ -> { klass.new.true! }.must_raise NoMethodError
70
87
  end
71
- end
72
88
 
73
- describe "falsey predicates" do
74
- describe "without a custom block" do
75
- it "raises a FalsePredicate error" do
76
- klass = test_class
77
- Interrobang.bangify_method klass, :false?
78
- err = -> { klass.new.false! }.must_raise Interrobang::FalsePredicate
79
- assert_equal err.message, 'false? is false'
89
+ it "converts only the methods specified in the only option with a block" do
90
+ klass = test_class
91
+ method_block.call(klass, only: [:so_false]) do
92
+ raise SomeError
80
93
  end
94
+ -> { klass.new.so_false! }.must_raise SomeError
95
+ -> { klass.new.so_true! }.must_raise NoMethodError
96
+ -> { klass.new.true! }.must_raise NoMethodError
81
97
  end
82
98
 
83
- describe "with a provided block" do
84
- it "performs the provided block for the bang method" do
85
- klass = test_class
86
- Interrobang.bangify_method klass, :false? do
87
- raise SomeError
88
- end
89
- -> { klass.new.false! }.must_raise SomeError
99
+ it "performs the provided block for the bang method" do
100
+ klass = test_class
101
+ method_block.call(klass) do
102
+ raise SomeError
90
103
  end
104
+ assert klass.new.true!
105
+ -> { klass.new.false! }.must_raise SomeError
106
+ end
91
107
 
92
- it "allows the provided block to take the predicate method as an argument" do
93
- klass = test_class
94
- Interrobang.bangify_method klass, :false? do |predicate_method|
95
- raise SomeError, "#{predicate_method} isn't true"
96
- end
97
- err = -> { klass.new.false! }.must_raise SomeError
98
- assert_equal err.message, "false? isn't true"
99
- end
108
+ it "converts super methods when specified" do
109
+ klass = test_class
110
+ method_block.call(klass, include_super: true, prefix: 'ensure_')
111
+ -> { klass.new.ensure_nil! }.must_raise Interrobang::FalsePredicate
100
112
  end
101
113
  end
102
114
  end
103
115
 
104
- describe '.bangify' do
105
- it "converts all predicate? methods by default" do
106
- klass = test_class
107
- Interrobang.bangify klass
108
- assert klass.new.true!
109
- assert klass.new.veritable!
110
- end
116
+ bangify_method_signatures = {
117
+ '#Interrobang' =>
118
+ -> (*args, &block) { Interrobang(*args, &block) },
119
+ '.bangify' =>
120
+ -> (*args, &block) { Interrobang.bangify(*args, &block) },
121
+ '.bangify_method' =>
122
+ -> (*args, &block) { Interrobang.bangify_method(*args, &block) }
123
+ }
124
+ bangify_method_signatures.each do |method_call, method_block|
125
+ describe method_call do
126
+ describe "with a method that ends in a ?" do
127
+ it "adds a ! method dropping the ?" do
128
+ klass = test_class
129
+ method_block.call(klass, :true?)
130
+ assert klass.new.true!
131
+ end
132
+ it "has no method missing shenanigans" do
133
+ klass = test_class
134
+ method_block.call(klass, :true?)
135
+ assert klass.new.respond_to?(:true!)
136
+ end
137
+ end
111
138
 
112
- it "returns an array of symbols of the bangified methods" do
113
- klass = test_class
114
- assert_equal Interrobang.bangify(klass), [:true!, :veritable!, :false!, :with_argument!]
115
- end
139
+ describe "with a method that does not end in a ?" do
140
+ it "adds a ! method" do
141
+ klass = test_class
142
+ method_block.call(klass, :so_true)
143
+ end
144
+ end
116
145
 
117
- it "converts all methods according to the provided prefix and suffix" do
118
- klass = test_class
119
- Interrobang.bangify klass, prefix: 'prefix_', suffix: '_suffix'
120
- assert klass.new.prefix_true_suffix!
121
- assert klass.new.prefix_veritable_suffix!
122
- end
146
+ it "returns the symbol of the bangified method" do
147
+ klass = test_class
148
+ assert_equal method_block.call(klass, :true?), :true!
149
+ end
123
150
 
124
- it "converts all methods that match the provided pattern" do
125
- klass = test_class
126
- Interrobang.bangify klass, matching: %r{\Aso_.*\z}
127
- assert klass.new.so_true!
128
- assert klass.new.so_very_true!
129
- -> { klass.new.true! }.must_raise NoMethodError
130
- end
151
+ it "works on methods with arguments" do
152
+ klass = test_class
153
+ method_block.call(klass, :with_argument?)
154
+ assert klass.new.with_argument!(true)
155
+ -> { klass.new.with_argument!(false) }.must_raise Interrobang::FalsePredicate
156
+ end
131
157
 
132
- it "converts all methods that match the provided pattern respected except" do
133
- klass = test_class
134
- Interrobang.bangify klass, matching: %r{\Aso_.*\z}, except: [:so_very_true]
135
- assert klass.new.so_true!
136
- -> { klass.new.so_very_true! }.must_raise NoMethodError
137
- -> { klass.new.true! }.must_raise NoMethodError
138
- end
158
+ it "does not convert assignment methods" do
159
+ klass = test_class
160
+ method_block.call(klass, :assignment_=)
161
+ -> { klass.new.assignment_! }.must_raise NoMethodError
162
+ end
139
163
 
140
- it "except option accepts a singular symbol" do
141
- klass = test_class
142
- Interrobang.bangify klass, matching: %r{\Aso_.*\z}, except: :so_very_true
143
- assert klass.new.so_true!
144
- -> { klass.new.so_very_true! }.must_raise NoMethodError
145
- -> { klass.new.true! }.must_raise NoMethodError
146
- end
164
+ it "does not convert bang methods" do
165
+ klass = test_class
166
+ method_block.call(klass, :bang!)
167
+ assert_equal klass.new.bang!, '!'
168
+ end
147
169
 
148
- it "converts only the methods specified in the only option" do
149
- klass = test_class
150
- Interrobang.bangify klass, only: [:so_true]
151
- assert klass.new.so_true!
152
- -> { klass.new.so_very_true! }.must_raise NoMethodError
153
- -> { klass.new.true! }.must_raise NoMethodError
154
- end
170
+ describe "options" do
171
+ it "adds any provided prefix or suffix to the bang method" do
172
+ klass = test_class
173
+ method_block.call(klass, :true?, prefix: 'prefix_', suffix: '_suffix')
174
+ assert klass.new.prefix_true_suffix!
175
+ end
176
+ end
155
177
 
156
- it "except option accepts a singular symbol" do
157
- klass = test_class
158
- Interrobang.bangify klass, only: :so_true
159
- assert klass.new.so_true!
160
- -> { klass.new.so_very_true! }.must_raise NoMethodError
161
- -> { klass.new.true! }.must_raise NoMethodError
162
- end
178
+ describe "falsey predicates" do
179
+ describe "without a custom block" do
180
+ it "raises a FalsePredicate error" do
181
+ klass = test_class
182
+ method_block.call(klass, :false?)
183
+ err = -> { klass.new.false! }.must_raise Interrobang::FalsePredicate
184
+ assert_equal err.message, 'false? is false'
185
+ end
186
+ end
163
187
 
164
- it "converts only the methods specified in the only option with a block" do
165
- klass = test_class
166
- Interrobang.bangify klass, only: [:so_false] do
167
- raise SomeError
168
- end
169
- -> { klass.new.so_false! }.must_raise SomeError
170
- -> { klass.new.so_true! }.must_raise NoMethodError
171
- -> { klass.new.true! }.must_raise NoMethodError
172
- end
188
+ describe "with a provided block" do
189
+ it "performs the provided block for the bang method" do
190
+ klass = test_class
191
+ method_block.call(klass, :false?) do
192
+ raise SomeError
193
+ end
194
+ -> { klass.new.false! }.must_raise SomeError
195
+ end
173
196
 
174
- it "performs the provided block for the bang method" do
175
- klass = test_class
176
- Interrobang.bangify klass do
177
- raise SomeError
197
+ it "allows the provided block to take the predicate method as an argument" do
198
+ klass = test_class
199
+ method_block.call(klass, :false?) do |predicate_method|
200
+ raise SomeError, "#{predicate_method} isn't true"
201
+ end
202
+ err = -> { klass.new.false! }.must_raise SomeError
203
+ assert_equal err.message, "false? isn't true"
204
+ end
205
+ end
178
206
  end
179
- assert klass.new.true!
180
- -> { klass.new.false! }.must_raise SomeError
181
207
  end
208
+ end
182
209
 
183
- it "converts super methods when specified" do
184
- klass = test_class
185
- Interrobang.bangify klass, include_super: true, prefix: 'ensure_'
186
- -> { klass.new.ensure_nil! }.must_raise Interrobang::FalsePredicate
210
+ it "is extendable" do
211
+ class Answer
212
+ extend Interrobang
213
+ def correct?; end
214
+ bangify(self)
215
+ bangify_class(self)
216
+ bangify_method(self, :correct?)
187
217
  end
218
+ -> { Answer.new.correct! }.must_raise(Interrobang::FalsePredicate)
188
219
  end
189
- end
220
+
221
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: interrobang
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Faraz Yashar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-27 00:00:00.000000000 Z
11
+ date: 2015-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler