docile 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 57d90aa5d94c06fab36bcf2ad9c058e8b3c7ec3b
4
- data.tar.gz: c73f0d3af5a1d87fcc3ae562e2c90bdd7e06b724
3
+ metadata.gz: fb7581d7fa7a2ace7257cb7d0fac9732c80480a5
4
+ data.tar.gz: 1fab351868ad13d87ceb0882460aa059428b29f0
5
5
  SHA512:
6
- metadata.gz: 2ed37d882ad062a8ae1dc02963582c57ed51383b7916176964a55ad4833ee34e93a98743382d527113554f8cef5774ef96e8e681396de00b11bfdcb4bda80bef
7
- data.tar.gz: a000461e5ffe9649801875b2d0228d1a5d61510813713a90fe5cfb4aa594abaaa52e7f2554ec57113eb0b679712f39be469664ccbe82f0ed9afbb9c1f1324d8b
6
+ metadata.gz: 762a98e99139ca515bd787e794be284c1a3a4dd1be805869736ce8f19bb6cadbcedf6a35b9fb72f71bce5806b45171190cf63b58b02754ebaf400b705971e338
7
+ data.tar.gz: 5825352e7d6d819b557909f296e2d23ba8bb8807a212bb24781d758f2c59ab030f977bf9f2cb7af5dae7709d86fde8e306a77e1f56f0accb5b5c5b939427a215
@@ -1 +1 @@
1
- ruby-2.0.0-p247
1
+ ruby-2.0.0
@@ -8,5 +8,4 @@ rvm:
8
8
  - ree
9
9
  - jruby-18mode
10
10
  - jruby-19mode
11
- - rbx-18mode
12
- - rbx-19mode
11
+ - rbx-2.2.0
data/Gemfile CHANGED
@@ -1,11 +1,17 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify gem's dependencies in docile.gemspec
4
4
  gemspec
5
5
 
6
6
  # Explicitly require test gems for Travis CI, since we're excluding dev dependencies
7
7
  group :test do
8
- gem "rake", ">= 0.9.2"
9
- gem "rspec", ">= 2.11.0"
10
- gem "coveralls", :require => false
8
+ gem 'rake', '~> 0.9.2'
9
+ gem 'rspec', '~> 2.11.0'
10
+ gem 'mime-types', '~> 1.25.1'
11
+ gem 'coveralls', :require => false
12
+
13
+ platform :rbx do
14
+ gem 'rubysl' # Since 2.2.0, Rubinius needs Ruby standard lib as gem
15
+ gem 'rubinius-coverage' # Coverage tooling for SimpleCov on Rubinius
16
+ end
11
17
  end
data/HISTORY.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # HISTORY
2
2
 
3
+ ## [v1.1.1 (Nov 26, 2013)](http://github.com/ms-ati/docile/compare/v1.1.0...v1.1.1)
4
+
5
+ - documentation updates and corrections
6
+ - fix Rubinius build in Travis CI
7
+
3
8
  ## [v1.1.0 (Jul 29, 2013)](http://github.com/ms-ati/docile/compare/v1.0.5...v1.1.0)
4
9
 
5
10
  - add functional-style DSL objects via `Docile#dsl_eval_immutable`
data/README.md CHANGED
@@ -16,7 +16,9 @@ coding a bit more docile...
16
16
 
17
17
  [1]: http://www.google.com/search?q=docile+definition "Google"
18
18
 
19
- ## Basic Usage
19
+ ## Usage
20
+
21
+ ### Basic
20
22
 
21
23
  Let's say that we want to make a DSL for modifying Array objects.
22
24
  Wouldn't it be great if we could just treat the methods of Array as a DSL?
@@ -41,7 +43,7 @@ end
41
43
 
42
44
  Easy!
43
45
 
44
- ## Advanced Usage
46
+ ### Advanced
45
47
 
46
48
  Mutating (changing) an Array instance is fine, but what usually makes a good DSL is a [Builder Pattern][2].
47
49
 
@@ -64,10 +66,10 @@ And let's say we have a PizzaBuilder, which builds a Pizza like this:
64
66
  Pizza = Struct.new(:cheese, :pepperoni, :bacon, :sauce)
65
67
 
66
68
  class PizzaBuilder
67
- def cheese(v=true); @cheese = v; end
68
- def pepperoni(v=true); @pepperoni = v; end
69
- def bacon(v=true); @bacon = v; end
70
- def sauce(v=nil); @sauce = v; end
69
+ def cheese(v=true); @cheese = v; self; end
70
+ def pepperoni(v=true); @pepperoni = v; self; end
71
+ def bacon(v=true); @bacon = v; self; end
72
+ def sauce(v=nil); @sauce = v; self; end
71
73
  def build
72
74
  Pizza.new(!!@cheese, !!@pepperoni, !!@bacon, @sauce)
73
75
  end
@@ -89,7 +91,7 @@ It's just that easy!
89
91
 
90
92
  [2]: http://stackoverflow.com/questions/328496/when-would-you-use-the-builder-pattern "Builder Pattern"
91
93
 
92
- ## Block parameters
94
+ ### Block parameters
93
95
 
94
96
  Parameters can be passed to the DSL block.
95
97
 
@@ -149,7 +151,7 @@ end
149
151
 
150
152
  [3]: http://www.sinatrarb.com "Sinatra"
151
153
 
152
- ## Functional-Style DSL Objects
154
+ ### Functional-Style DSL Objects
153
155
 
154
156
  Sometimes, you want to use an object as a DSL, but it doesn't quite fit the
155
157
  [imperative](http://en.wikipedia.org/wiki/Imperative_programming) pattern shown
@@ -166,11 +168,16 @@ order to enforce [immutability](http://en.wikipedia.org/wiki/Immutable_object).
166
168
  Wouldn't it be great if we could just treat these methods as a DSL as well?
167
169
 
168
170
  ```ruby
169
- with_immutable_string("I'm immutable!".freeze) do
171
+ s = "I'm immutable!".freeze
172
+
173
+ with_immutable_string(s) do
170
174
  reverse
171
175
  upcase
172
176
  end
173
177
  #=> "!ELBATUMMI M'I"
178
+
179
+ s
180
+ #=> "I'm immutable!"
174
181
  ```
175
182
 
176
183
  No problem, just define the method `with_immutable_string` like this:
@@ -199,15 +206,14 @@ All set!
199
206
  $ gem install docile
200
207
  ```
201
208
 
202
- ## Documentation
203
-
204
- Documentation hosted on *rubydoc.info*: [Docile Documentation](http://rubydoc.info/gems/docile)
205
-
206
- Or, read the code hosted on *github.com*: [Docile Code](https://github.com/ms-ati/docile)
209
+ ## Links
210
+ * [Source](https://github.com/ms-ati/docile)
211
+ * [Documentation](http://rubydoc.info/gems/docile)
212
+ * [Bug Tracker](https://github.com/ms-ati/docile/issues)
207
213
 
208
214
  ## Status
209
215
 
210
- Version 1.0.x works on [all ruby versions since 1.8.7](https://github.com/ms-ati/docile/blob/master/.travis.yml).
216
+ Works on [all ruby versions since 1.8.7](https://github.com/ms-ati/docile/blob/master/.travis.yml).
211
217
 
212
218
  ## Note on Patches/Pull Requests
213
219
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require "rake/clean"
2
- require "bundler/gem_tasks"
3
- require "rspec/core/rake_task"
1
+ require 'rake/clean'
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
4
4
 
5
5
  # Default task for `rake` is to run rspec
6
6
  task :default => [:spec]
@@ -9,7 +9,7 @@ task :default => [:spec]
9
9
  RSpec::Core::RakeTask.new
10
10
 
11
11
  # Configure `rake clobber` to delete all generated files
12
- CLOBBER.include("pkg", "doc", "coverage")
12
+ CLOBBER.include('pkg', 'doc', 'coverage')
13
13
 
14
14
  # Only configure yard doc generation when *not* on Travis
15
15
  if ENV['CI'] != 'true'
@@ -1,33 +1,33 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "docile/version"
1
+ $:.push File.expand_path('../lib', __FILE__)
2
+ require 'docile/version'
4
3
 
5
4
  Gem::Specification.new do |s|
6
- s.name = "docile"
5
+ s.name = 'docile'
7
6
  s.version = Docile::VERSION
8
- s.authors = ["Marc Siegel"]
9
- s.email = ["msiegel@usainnov.com"]
10
- s.homepage = "http://ms-ati.github.com/docile/"
11
- s.summary = "Docile keeps your Ruby DSL's tame and well-behaved"
12
- s.description = "Docile turns any Ruby object into a DSL. Especially useful with the Builder pattern."
7
+ s.authors = ['Marc Siegel']
8
+ s.email = %w(msiegel@usainnov.com)
9
+ s.homepage = 'http://ms-ati.github.com/docile/'
10
+ s.summary = 'Docile keeps your Ruby DSLs tame and well-behaved'
11
+ s.description = 'Docile turns any Ruby object into a DSL. Especially useful with the Builder pattern.'
12
+ s.license = 'MIT'
13
13
 
14
- s.rubyforge_project = "docile"
14
+ s.rubyforge_project = 'docile'
15
15
 
16
16
  s.files = `git ls-files`.split("\n")
17
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
- s.require_paths = ["lib"]
19
+ s.require_paths = %w(lib)
20
20
 
21
21
  # Running rspec tests from rake
22
- s.add_development_dependency "rake", ">= 0.9.2"
23
- s.add_development_dependency "rspec", ">= 2.11.0"
22
+ s.add_development_dependency 'rake', '~> 0.9.2'
23
+ s.add_development_dependency 'rspec', '~> 2.11.0'
24
24
 
25
25
  # Github flavored markdown in YARD documentation
26
26
  # http://blog.nikosd.com/2011/11/github-flavored-markdown-in-yard.html
27
- s.add_development_dependency "yard"
28
- s.add_development_dependency "redcarpet"
29
- s.add_development_dependency "github-markup"
27
+ s.add_development_dependency 'yard'
28
+ s.add_development_dependency 'redcarpet'
29
+ s.add_development_dependency 'github-markup'
30
30
 
31
31
  # Coveralls test coverage tool
32
- s.add_development_dependency "coveralls"
32
+ s.add_development_dependency 'coveralls'
33
33
  end
@@ -1,7 +1,7 @@
1
- require "docile/version"
2
- require "docile/execution"
3
- require "docile/fallback_context_proxy"
4
- require "docile/chaining_fallback_context_proxy"
1
+ require 'docile/version'
2
+ require 'docile/execution'
3
+ require 'docile/fallback_context_proxy'
4
+ require 'docile/chaining_fallback_context_proxy'
5
5
 
6
6
  # Docile keeps your Ruby DSLs tame and well-behaved.
7
7
  module Docile
@@ -36,7 +36,7 @@ module Docile
36
36
  #
37
37
  # @param dsl [Object] context object whose methods make up the DSL
38
38
  # @param args [Array] arguments to be passed to the block
39
- # @yield the block of DSL commands to be executed against the
39
+ # @param block [Proc] the block of DSL commands to be executed against the
40
40
  # `dsl` context object
41
41
  # @return [Object] the `dsl` context object after executing the block
42
42
  def dsl_eval(dsl, *args, &block)
@@ -74,7 +74,7 @@ module Docile
74
74
  # @param dsl [Object] immutable context object whose methods make up the
75
75
  # initial DSL
76
76
  # @param args [Array] arguments to be passed to the block
77
- # @yield the block of DSL commands to be executed against the
77
+ # @param block [Proc] the block of DSL commands to be executed against the
78
78
  # `dsl` context object and successor return values
79
79
  # @return [Object] the return value of the final command in the block
80
80
  def dsl_eval_immutable(dsl, *args, &block)
@@ -1,4 +1,4 @@
1
- require "docile/fallback_context_proxy"
1
+ require 'docile/fallback_context_proxy'
2
2
 
3
3
  module Docile
4
4
  # @api private
@@ -9,7 +9,7 @@ module Docile
9
9
  # This is useful for implementing DSL evaluation for immutable context
10
10
  # objects.
11
11
  #
12
- # @see Docile#dsl_eval_immutable
12
+ # @see Docile.dsl_eval_immutable
13
13
  class ChainingFallbackContextProxy < FallbackContextProxy
14
14
  # Proxy methods as in {FallbackContextProxy#method_missing}, replacing
15
15
  # `receiver` with the returned value.
@@ -1,7 +1,7 @@
1
1
  module Docile
2
2
  # @api private
3
3
  #
4
- # A namespace for functions relating to the execution of a block agsinst a
4
+ # A namespace for functions relating to the execution of a block against a
5
5
  # proxy object.
6
6
  module Execution
7
7
  # Execute a block in the context of an object whose methods represent the
@@ -9,14 +9,13 @@ module Docile
9
9
  #
10
10
  # @param dsl [Object] context object whose methods make up the
11
11
  # (initial) DSL
12
- # @param proxy_type [FallbackContextProxy,
13
- # ChainingFallbackContextProxy]
14
- # class to instantiate as the proxy context
12
+ # @param proxy_type [FallbackContextProxy, ChainingFallbackContextProxy]
13
+ # which class to instantiate as proxy context
15
14
  # @param args [Array] arguments to be passed to the block
16
- # @yield the block of DSL commands to be executed
15
+ # @param block [Proc] the block of DSL commands to be executed
17
16
  # @return [Object] the return value of the block
18
17
  def exec_in_proxy_context(dsl, proxy_type, *args, &block)
19
- block_context = eval("self", block.binding)
18
+ block_context = eval('self', block.binding)
20
19
  proxy_context = proxy_type.new(dsl, proxy_type.new(dsl, block_context))
21
20
  begin
22
21
  block_context.instance_variables.each do |ivar|
@@ -12,12 +12,12 @@ module Docile
12
12
  #
13
13
  # This is useful for implementing DSL evaluation in the context of an object.
14
14
  #
15
- # @see Docile#dsl_eval
15
+ # @see Docile.dsl_eval
16
16
  class FallbackContextProxy
17
17
  # The set of methods which will **not** be proxied, but instead answered
18
18
  # by this object directly.
19
19
  NON_PROXIED_METHODS = Set[:__send__, :object_id, :__id__, :==, :equal?,
20
- :"!", :"!=", :instance_exec, :instance_variables,
20
+ :'!', :'!=', :instance_exec, :instance_variables,
21
21
  :instance_variable_get, :instance_variable_set,
22
22
  :remove_instance_variable]
23
23
 
@@ -1,4 +1,4 @@
1
1
  module Docile
2
2
  # The current version of this library
3
- VERSION = "1.1.0"
3
+ VERSION = '1.1.1'
4
4
  end
@@ -1,10 +1,10 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Docile do
4
4
 
5
- describe "#dsl_eval" do
5
+ describe '.dsl_eval' do
6
6
 
7
- context "when DSL context object is an Array" do
7
+ context 'when DSL context object is an Array' do
8
8
  let(:array) { [] }
9
9
  let!(:result) { execute_dsl_against_array }
10
10
 
@@ -17,15 +17,15 @@ describe Docile do
17
17
  end
18
18
  end
19
19
 
20
- it "executes the block against the DSL context object" do
20
+ it 'executes the block against the DSL context object' do
21
21
  array.should == [1, 3]
22
22
  end
23
23
 
24
- it "returns the DSL object after executing block against it" do
24
+ it 'returns the DSL object after executing block against it' do
25
25
  result.should == array
26
26
  end
27
27
 
28
- it "doesn't proxy #__id__" do
28
+ it "doesn't proxy #__id__" do
29
29
  Docile.dsl_eval(array) { __id__.should_not == array.__id__ }
30
30
  end
31
31
 
@@ -46,7 +46,7 @@ describe Docile do
46
46
  end
47
47
  end
48
48
 
49
- context "when DSL context object is a Builder pattern" do
49
+ context 'when DSL context object is a Builder pattern' do
50
50
  let(:builder) { PizzaBuilder.new }
51
51
  let(:result) { execute_dsl_against_builder_and_call_build }
52
52
 
@@ -59,7 +59,7 @@ describe Docile do
59
59
  end.build
60
60
  end
61
61
 
62
- it "returns correctly built object" do
62
+ it 'returns correctly built object' do
63
63
  result.should == Pizza.new(true, false, true, :extra)
64
64
  end
65
65
  end
@@ -86,12 +86,12 @@ describe Docile do
86
86
  Docile.dsl_eval(OuterDSL.new, &block)
87
87
  end
88
88
 
89
- context "when given parameters for the DSL block" do
89
+ context 'when given parameters for the DSL block' do
90
90
  def parameterized(*args, &block)
91
91
  Docile.dsl_eval(OuterDSL.new, *args, &block)
92
92
  end
93
93
 
94
- it "passes parameters to the block" do
94
+ it 'passes parameters to the block' do
95
95
  parameterized(1,2,3) do |x,y,z|
96
96
  x.should == 1
97
97
  y.should == 2
@@ -99,11 +99,11 @@ describe Docile do
99
99
  end
100
100
  end
101
101
 
102
- it "finds parameters before methods" do
102
+ it 'finds parameters before methods' do
103
103
  parameterized(1) { |a| a.should == 1 }
104
104
  end
105
105
 
106
- it "find outer dsl parameters in inner dsl scope" do
106
+ it 'find outer dsl parameters in inner dsl scope' do
107
107
  parameterized(1,2,3) do |a,b,c|
108
108
  inner_with_params(c) do |d,e|
109
109
  a.should == 1
@@ -116,18 +116,18 @@ describe Docile do
116
116
  end
117
117
  end
118
118
 
119
- context "when DSL blocks are nested" do
119
+ context 'when DSL blocks are nested' do
120
120
 
121
- context "method lookup" do
122
- it "finds method of outer dsl in outer dsl scope" do
121
+ context 'method lookup' do
122
+ it 'finds method of outer dsl in outer dsl scope' do
123
123
  outer { a.should == 'a' }
124
124
  end
125
125
 
126
- it "finds method of inner dsl in inner dsl scope" do
126
+ it 'finds method of inner dsl in inner dsl scope' do
127
127
  outer { inner { b.should == 'b' } }
128
128
  end
129
129
 
130
- it "finds method of outer dsl in inner dsl scope" do
130
+ it 'finds method of outer dsl in inner dsl scope' do
131
131
  outer { inner { a.should == 'a' } }
132
132
  end
133
133
 
@@ -141,27 +141,27 @@ describe Docile do
141
141
  outer { inner { c.should == 'c' } }
142
142
  end
143
143
 
144
- it "finds method of outer dsl in preference to block context" do
144
+ it 'finds method of outer dsl in preference to block context' do
145
145
  def a; 'not a'; end
146
146
  outer { a.should == 'a' }
147
147
  outer { inner { a.should == 'a' } }
148
148
  end
149
149
  end
150
150
 
151
- context "local variable lookup" do
152
- it "finds local variable from block context in outer dsl scope" do
151
+ context 'local variable lookup' do
152
+ it 'finds local variable from block context in outer dsl scope' do
153
153
  foo = 'foo'
154
154
  outer { foo.should == 'foo' }
155
155
  end
156
156
 
157
- it "finds local variable from block definition in inner dsl scope" do
157
+ it 'finds local variable from block definition in inner dsl scope' do
158
158
  bar = 'bar'
159
159
  outer { inner { bar.should == 'bar' } }
160
160
  end
161
161
  end
162
162
 
163
- context "instance variable lookup" do
164
- it "finds instance variable from block definition in outer dsl scope" do
163
+ context 'instance variable lookup' do
164
+ it 'finds instance variable from block definition in outer dsl scope' do
165
165
  @iv1 = 'iv1'; outer { @iv1.should == 'iv1' }
166
166
  end
167
167
 
@@ -169,7 +169,7 @@ describe Docile do
169
169
  @iv1 = 'foo'; outer { @iv1 = 'bar' }; @iv1.should == 'bar'
170
170
  end
171
171
 
172
- it "finds instance variable from block definition in inner dsl scope" do
172
+ it 'finds instance variable from block definition in inner dsl scope' do
173
173
  @iv2 = 'iv2'; outer { inner { @iv2.should == 'iv2' } }
174
174
  end
175
175
 
@@ -180,7 +180,7 @@ describe Docile do
180
180
 
181
181
  end
182
182
 
183
- context "when DSL context object is a Dispatch pattern" do
183
+ context 'when DSL context object is a Dispatch pattern' do
184
184
  class DispatchScope
185
185
  def params
186
186
  { :a => 1, :b => 2, :c => 3 }
@@ -211,7 +211,7 @@ describe Docile do
211
211
  MessageDispatch.instance.dispatch(path, request)
212
212
  end
213
213
 
214
- it "dispatches correctly" do
214
+ it 'dispatches correctly' do
215
215
  @first = @second = nil
216
216
 
217
217
  respond '/path' do |request|
@@ -246,9 +246,9 @@ describe Docile do
246
246
 
247
247
  end
248
248
 
249
- describe "#dsl_eval_immutable" do
249
+ describe '.dsl_eval_immutable' do
250
250
 
251
- context "when DSL context object is a frozen String" do
251
+ context 'when DSL context object is a frozen String' do
252
252
  let(:original) { "I'm immutable!".freeze }
253
253
  let!(:result) { execute_non_mutating_dsl_against_string }
254
254
 
@@ -263,12 +263,12 @@ describe Docile do
263
263
  original.should == "I'm immutable!"
264
264
  end
265
265
 
266
- it "chains the commands in the block against the DSL context object" do
266
+ it 'chains the commands in the block against the DSL context object' do
267
267
  result.should == "!ELBATUMMI M'I"
268
268
  end
269
269
  end
270
270
 
271
- context "when DSL context object is a number" do
271
+ context 'when DSL context object is a number' do
272
272
  let(:original) { 84.5 }
273
273
  let!(:result) { execute_non_mutating_dsl_against_number }
274
274
 
@@ -279,7 +279,7 @@ describe Docile do
279
279
  end
280
280
  end
281
281
 
282
- it "chains the commands in the block against the DSL context object" do
282
+ it 'chains the commands in the block against the DSL context object' do
283
283
  result.should == 42
284
284
  end
285
285
  end
@@ -297,7 +297,7 @@ describe Docile::FallbackContextProxy do
297
297
 
298
298
  def create_fcp_and_set_one_instance_variable
299
299
  fcp = Docile::FallbackContextProxy.new(nil, nil)
300
- fcp.instance_variable_set(:@foo, "foo")
300
+ fcp.instance_variable_set(:@foo, 'foo')
301
301
  fcp
302
302
  end
303
303
 
@@ -306,7 +306,7 @@ describe Docile::FallbackContextProxy do
306
306
  instance_variables.first.class
307
307
  end
308
308
 
309
- it "returns proxied instance variables" do
309
+ it 'returns proxied instance variables' do
310
310
  subject.map(&:to_sym).should include(:@foo)
311
311
  end
312
312
 
@@ -314,7 +314,7 @@ describe Docile::FallbackContextProxy do
314
314
  subject.map(&:to_sym).should_not include(*excluded)
315
315
  end
316
316
 
317
- it "preserves the type (String or Symbol) of names on this ruby version" do
317
+ it 'preserves the type (String or Symbol) of names on this ruby version' do
318
318
  actual_type_of_names.should == expected_type_of_names
319
319
  end
320
320
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docile
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Siegel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-29 00:00:00.000000000 Z
11
+ date: 2013-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.9.2
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: 0.9.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.11.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: 2.11.0
41
41
  - !ruby/object:Gem::Dependency
@@ -123,7 +123,8 @@ files:
123
123
  - spec/docile_spec.rb
124
124
  - spec/spec_helper.rb
125
125
  homepage: http://ms-ati.github.com/docile/
126
- licenses: []
126
+ licenses:
127
+ - MIT
127
128
  metadata: {}
128
129
  post_install_message:
129
130
  rdoc_options: []
@@ -141,10 +142,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
142
  version: '0'
142
143
  requirements: []
143
144
  rubyforge_project: docile
144
- rubygems_version: 2.0.5
145
+ rubygems_version: 2.1.11
145
146
  signing_key:
146
147
  specification_version: 4
147
- summary: Docile keeps your Ruby DSL's tame and well-behaved
148
+ summary: Docile keeps your Ruby DSLs tame and well-behaved
148
149
  test_files:
149
150
  - spec/docile_spec.rb
150
151
  - spec/spec_helper.rb