applix 0.4.11 → 0.4.12

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: d3e0cc3a63efd54a150fc9261fedad236cf2e5d1
4
- data.tar.gz: 1703a149b57fcfd93b5cdee98c66a4f53a0f9809
3
+ metadata.gz: 54a476e8df75c875f08de5e5ac9a0a952d20fb50
4
+ data.tar.gz: 22f80002098e75c8a0ed9e492aecf5e12b31a2a5
5
5
  SHA512:
6
- metadata.gz: fda903579759622f6e4854c0bd61581d030908fd798202c1c7b5d81fbeeaf94e565b1e963765c12fd72457b3ecafe5131a2e2a5929aca8d0e059b232ff69e236
7
- data.tar.gz: 5080cd1efba36a17b0386afe2d8b350c54d9815fddf822f5514b32d78350292275c4eb86175cdd58d9fd99b71159b798842efd1df83c9a276a15f4b4e7fcbea8
6
+ metadata.gz: 9657b4faae0275463346437eabd2fcb8d7058fdce52ba2330b9c1f53257080e2442c9429a94b67b39ebef7cca559e69170633b4cd96458dd2f9e21c0e9ee2059
7
+ data.tar.gz: 221e610a1609fb16d73591cce387b1e73655accdff8928f0a56d638ea6b6d599c591c58f3042975ef66527e4d7a5e17c2fc293738931acd42990679a6630f75d
data/.rspec CHANGED
@@ -1 +1 @@
1
- --color --backtrace --format documentation --debug
1
+ --color --backtrace
data/Guardfile CHANGED
@@ -1,7 +1,7 @@
1
1
  # A sample Guardfile
2
2
  # More info at https://github.com/guard/guard#readme
3
3
 
4
- guard :rspec, all_on_start: true, cli: '--format nested --debug --color' do
4
+ guard(:rspec, all_on_start: true) do
5
5
  watch(%r{^spec/.+_spec\.rb$})
6
6
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
7
  watch('spec/spec_helper.rb') { "spec" }
data/README.mkd CHANGED
@@ -52,6 +52,58 @@ becomes:
52
52
 
53
53
  { :foo => true, :bar => 'loo', :args => ["123", "now"] }
54
54
 
55
+ ## Command line micro DSLs with @argsloop@
56
+
57
+ Imagine you have an app which could perform multiple operations on a excel
58
+ sheet. Like reading, validating and reporting. You could put all variations in
59
+ a single command which to call directly from a command line. A better is to
60
+ break down such a procedure into single steps which can be performed
61
+ independently and combined freely on the command line. Example procedure:
62
+
63
+ load <filename>
64
+ select <sheetname>
65
+ validate
66
+ print
67
+
68
+ Now you can make this an applix command line DSL like this:
69
+
70
+ Applix.main(ARGV) do
71
+ any(argsloop: MyExcelApp.new)
72
+ end
73
+
74
+ and calling it like:
75
+
76
+ $ my_app load <filename> select <sheetname> validate print
77
+
78
+ Now to make applix call your app with the right commands and parameters the
79
+ commands just have to take its parameters off the arg vector like this:
80
+
81
+ app.load(args)
82
+ filename = args.shift
83
+ ...
84
+ args
85
+ end
86
+
87
+ app.select(args)
88
+ sheetname = args.shift
89
+ ...
90
+ args
91
+ end
92
+
93
+ app.validate(args)
94
+ ...
95
+ args
96
+ end
97
+
98
+ app.print(args)
99
+ ...
100
+ args
101
+ end
102
+
103
+ Adding new steps now is easy, like instead of print you could make an upload
104
+ to another database for example without the need touch existing code.
105
+
106
+
55
107
  ## Note on Patches/Pull Requests
56
108
 
57
109
  * Fork the project.
data/applix.gemspec CHANGED
@@ -42,10 +42,8 @@ Gem::Specification.new do |s|
42
42
  s.add_development_dependency 'rspec-mocks'
43
43
  s.add_development_dependency 'guard-rspec'
44
44
 
45
- if RUBY_PLATFORM.match /java/i
46
- s.add_development_dependency 'ruby-debug'
47
- else
48
- s.add_development_dependency 'debugger'
45
+ unless RUBY_PLATFORM.match /java/i
46
+ s.add_development_dependency 'byebug'
49
47
  end
50
48
 
51
49
  # version class is read from
data/lib/applix.rb CHANGED
@@ -105,17 +105,29 @@ usage: #{$0} <args...>
105
105
  @epilog_cb = blk
106
106
  end
107
107
 
108
+ # opts[:argsloop], the target for any, may be be class or an object. In case
109
+ # of class we instantiate an object from it, other we use the object itself
108
110
  def any(opts = {}, &blk)
109
111
  if(app = opts[:argsloop])
112
+
110
113
  blk = lambda do |*args, opts|
114
+ # instantiate or assign target object before first usage
115
+ target = (app.is_a? Class) ? app.new(opts) : app
116
+
111
117
  while(args && 0 < args.size) do
112
118
  args = begin
113
119
  if(op = args.shift)
114
120
  puts " --(#{op})-- (#{args.join ', '})"
115
- app.send(op, args, opts)
121
+ if(target == app)
122
+ # object target
123
+ target.send(op, args, opts)
124
+ else
125
+ # object instance created from class target
126
+ target.send(op, *args)
127
+ end
116
128
  end
117
129
  rescue ArgumentError => e
118
- app.send(op, opts)
130
+ target.send(op, opts)
119
131
  end
120
132
  end
121
133
  end
@@ -1,5 +1,5 @@
1
1
  # gem version is extracted automatically from this class during the build
2
2
  # process
3
3
  class Applix
4
- VERSION = '0.4.11'
4
+ VERSION = '0.4.12'
5
5
  end
@@ -2,19 +2,21 @@ require 'spec_helper'
2
2
 
3
3
  describe ApplixHash do
4
4
  it 'parses dashed string options' do
5
- (ApplixHash.parse '--foo-bar').should == ["foo-bar".to_sym, true]
6
- (ApplixHash.parse '--foo-bar=321').should == ["foo-bar".to_sym, '321']
5
+ #(ApplixHash.parse '--foo-bar').should == ["foo-bar".to_sym, true]
6
+ expect(ApplixHash.parse '--foo-bar').to eq(["foo-bar".to_sym, true])
7
+ #(ApplixHash.parse '--foo-bar=321').should == ["foo-bar".to_sym, '321']
8
+ expect(ApplixHash.parse '--foo-bar=321').to eq(["foo-bar".to_sym, '321'])
7
9
  end
8
10
 
9
11
  it "parses the old unit test..." do
10
12
  # -f becomes { :f => true }
11
13
  # --flag becomes { :flag => true }
12
- (ApplixHash.parse '-f').should == [:f, true]
13
- (ApplixHash.parse '--flag').should == [:flag, true]
14
+ expect(ApplixHash.parse '-f').to eq([:f, true])
15
+ expect(ApplixHash.parse '--flag').to eq([:flag, true])
14
16
  # --flag:false becomes { :flag => false }
15
- (ApplixHash.parse '--flag:false').should == [:flag, false]
17
+ expect(ApplixHash.parse '--flag:false').to eq([:flag, false])
16
18
 
17
19
  # --option=value becomes { :option => "value" }
18
- (ApplixHash.parse '--opt=val').should == [:opt, 'val']
20
+ expect(ApplixHash.parse '--opt=val').to eq([:opt, 'val'])
19
21
  end
20
22
  end
data/spec/applix_spec.rb CHANGED
@@ -4,28 +4,28 @@ describe Applix do
4
4
 
5
5
  context 'main' do
6
6
  it 'catches unknown task errors' do
7
- expect { Applix.main(%w(no-such-task)) {} }.not_to raise_error
7
+ expect { Applix.main(%w(0no-such-task)) {} }.not_to raise_error
8
8
  end
9
9
 
10
10
  context 'with captured I/O streams' do
11
11
  it 'prints a minimal (better than nothing?) usage line on errors' do
12
- output = capture(:stdout) { Applix.main(%w(no-such-task)) {} }
13
- output.should =~ /usage: /
12
+ output = capture(:stdout) { Applix.main(%w(1no-such-task)) {} }
13
+ expect(output).to match(/usage: /)
14
14
  end
15
15
 
16
16
  it 'suppresses the callstack on errors' do
17
- output = capture(:stdout) { Applix.main(%w(no-such-task)) {} }
18
- output.should =~ / ## no such task:/
19
- output.should_not =~ / !! no such task:/
17
+ output = capture(:stdout) { Applix.main(%w(expected-task-error-output)) {} }
18
+ expect(output).to match(/ ## no such task:/)
19
+ expect(output).not_to match(/ !! no such task:/)
20
20
  end
21
21
 
22
22
  it 'shows callstack on --debug option' do
23
- output = capture(:stdout) { Applix.main(%w(--debug no-such-task)) {} }
24
- output.should =~ / !! no such task:/
23
+ output = capture(:stdout) { Applix.main(%w(--debug 2no-such-task)) {} }
24
+ expect(output).to match(/ !! no such task:/)
25
25
  end
26
26
 
27
27
  it 'dumps a stacktrace on main with a !' do
28
- expect { Applix.main!(%w(no-such-task)) {} }.
28
+ expect { Applix.main!(%w(3no-such-task)) {} }.
29
29
  to raise_error /no such task:/
30
30
  end
31
31
  end
@@ -46,7 +46,7 @@ describe Applix do
46
46
  end
47
47
 
48
48
  it 'calls cluster prolog' do
49
- Applix.main(%w(foo a b)) do
49
+ expect(Applix.main(%w(foo a b)) do
50
50
  cluster(:foo) do
51
51
  prolog { |args, options|
52
52
  args.should == %w(a b)
@@ -55,12 +55,12 @@ describe Applix do
55
55
  handle(:a) { raise 'should not be called!' }
56
56
  handle(:b) { :b_was_called }
57
57
  end
58
- end.should == :b_was_called
58
+ end).to be(:b_was_called)
59
59
  end
60
60
 
61
61
  it 'support :cluster for nesting' do
62
62
  args = %w(-a -b:2 foo bar p1 p2)
63
- Applix.main(args) do
63
+ expect(Applix.main(args) do
64
64
  handle(:foo) do
65
65
  raise 'should not be called!'
66
66
  end
@@ -71,12 +71,12 @@ describe Applix do
71
71
  args
72
72
  end
73
73
  end
74
- end.should == %w{p1 p2}
74
+ end).to eq(%w{p1 p2})
75
75
  end
76
76
 
77
77
  it 'can even cluster clusters' do
78
78
  args = %w(foo bar f p1 p2)
79
- Applix.main(args) do
79
+ expect(Applix.main(args) do
80
80
  cluster(:foo) do
81
81
  cluster(:bar) do
82
82
  handle(:f) do |*args, options|
@@ -86,36 +86,58 @@ describe Applix do
86
86
  end
87
87
  end
88
88
  end
89
- end.should == %w{p1 p2}
89
+ end).to eq(%w{p1 p2})
90
90
  end
91
91
  end #.cluster
92
92
 
93
- it 'prolog can even temper with arguments to modify the handle sequence' do
94
- Applix.main(['a', 'b']) do
95
- prolog { |args, options|
96
- args.should == ['a', 'b']
97
- args.reverse!
98
- }
99
- handle(:a) { raise 'should not be called!' }
100
- handle(:b) { :b_was_called }
101
- end.should == :b_was_called
102
- end
93
+ context 'prolog invokations' do
94
+ it 'prolog can even temper with arguments to modify the handle sequence' do
95
+ expect(Applix.main(['a', 'b']) do
96
+ prolog { |args, options|
97
+ args.should == ['a', 'b']
98
+ args.reverse!
99
+ }
100
+ handle(:a) { raise 'should not be called!' }
101
+ handle(:b) { :b_was_called }
102
+ end).to eq(:b_was_called)
103
+ end
103
104
 
104
- it 'prolog has read/write access to args and options' do
105
- Applix.main(['func']) do
106
- prolog { |args, options|
107
- args.should == ['func']
108
- options[:prolog] = Time.now
109
- }
105
+ it 'prolog has read/write access to args and options' do
106
+ Applix.main(['func']) do
107
+ prolog { |args, options|
108
+ args.should == ['func']
109
+ options[:prolog] = Time.now
110
+ }
111
+
112
+ handle(:func) { |*_, options|
113
+ options[:prolog]
114
+ }
115
+ end.should_not be_nil
116
+ end
110
117
 
111
- handle(:func) { |*_, options|
112
- options[:prolog]
113
- }
114
- end.should_not == nil
118
+ it 'runs before callback before handle calls' do
119
+ expect(Applix.main(['func']) do
120
+
121
+ # @prolog will be available in handle invocations
122
+ prolog {
123
+ @prolog = :prolog
124
+ }
125
+
126
+ # @epilog will NOT make it into the handle invocation
127
+ epilog { |rc, *_|
128
+ @epilog = :epilog
129
+ rc
130
+ }
131
+
132
+ handle(:func) {
133
+ [@prolog, @epilog]
134
+ }
135
+ end).to eq([:prolog, nil])
136
+ end
115
137
  end
116
138
 
117
139
  it 'epilog has access to task handler results' do
118
- Applix.main(['func']) do
140
+ expect(Applix.main(['func']) do
119
141
  # @epilog will NOT make it into the handle invocation
120
142
  epilog { |rc, *_|
121
143
  rc.should == [1, 2, 3]
@@ -123,27 +145,7 @@ describe Applix do
123
145
  }
124
146
  handle(:func) { [1, 2, 3] }
125
147
 
126
- end.should == [3, 2, 1]
127
- end
128
-
129
- it 'runs before callback before handle calls' do
130
- Applix.main(['func']) do
131
-
132
- # @prolog will be available in handle invocations
133
- prolog {
134
- @prolog = :prolog
135
- }
136
-
137
- # @epilog will NOT make it into the handle invocation
138
- epilog { |rc, *_|
139
- @epilog = :epilog
140
- rc
141
- }
142
-
143
- handle(:func) {
144
- [@prolog, @epilog]
145
- }
146
- end.should == [:prolog, nil]
148
+ end).to eq([3, 2, 1])
147
149
  end
148
150
 
149
151
  it 'runs epilog callback after handle' do
@@ -160,7 +162,7 @@ describe Applix do
160
162
  last_action = :handle
161
163
  }
162
164
  end
163
- last_action.should == :epilog
165
+ expect(last_action).to be(:epilog)
164
166
  end
165
167
 
166
168
  it 'supports :any as fallback on command lines without matching task' do
@@ -194,46 +196,63 @@ describe Applix do
194
196
  end
195
197
  end
196
198
 
197
- it 'loops over args with argsloop app option to any' do
198
- # stubbed app simulates consuming the args while looping over app calls
199
- app = double(:app)
200
- app.should_receive(:a).with(%w(1 b 2 3 c 4 5 6), {}).and_return(%w(b 2 3))
201
- app.should_receive(:b).with(%w(2 3), {}).and_return(%w(c 4 5 6))
202
- app.should_receive(:c).with(%w(4 5 6), {}).and_return([])
203
- Applix.main(%w(a 1 b 2 3 c 4 5 6)) do
204
- handle(:not_called) { raise "can't possible happen" }
205
- any(argsloop: app)
199
+ describe 'any with argsloop' do
200
+ it 'loops over args' do
201
+ # stubbed app simulates consuming the args while looping over app calls
202
+ app = double(:app)
203
+ #app.should_receive(:op1).with(%w(p1 op2 2 3 op3 4 5 6), {}).and_return(%w(op2 2 3))
204
+ expect(app).to receive(:op1).with(%w(p1 op2 2 3 op3 4 5 6), {}).and_return(%w(op2 2 3))
205
+ #app.should_receive(:op2).with(%w(2 3), {}).and_return(%w(op3 4 5 6))
206
+ expect(app).to receive(:op2).with(%w(2 3), {}).and_return(%w(op3 4 5 6))
207
+ #app.should_receive(:op3).with(%w(4 5 6), {}).and_return([])
208
+ expect(app).to receive(:op3).with(%w(4 5 6), {}).and_return([])
209
+ Applix.main(%w(op1 p1 op2 2 3 op3 4 5 6)) do
210
+ handle(:not_called) { raise "can't possible happen" }
211
+ any(argsloop: app)
212
+ end
213
+ end
214
+
215
+ it 'instantiates a class instance' do
216
+ obj = double(:obj)
217
+ clazz = Class.new
218
+ expect(clazz).to receive(:new).with({o: true}).and_return(obj)
219
+ expect(obj).to receive(:p).with('a1', 'a2').and_return([])
220
+ Applix.main(%w(-o p a1 a2)) do
221
+ handle(:not_called) { raise "can't possible happen" }
222
+ any(argsloop: clazz)
223
+ end
206
224
  end
207
225
  end
208
226
 
209
227
  it 'should call actions by first argument names' do
210
228
  argv = ['func']
211
- Applix.main(argv) do
229
+ expect(Applix.main(argv) do
212
230
  handle(:func) { :func_return }
213
- end.should == :func_return
231
+ end).to be(:func_return)
214
232
  end
215
233
 
216
234
  it 'passes arguments to function' do
217
235
  argv = ['func', 'p1', 'p2']
218
236
  subject = Applix.main(argv) { handle(:func) {|*args, options| args} }
219
- subject.should eq(%w(p1 p2))
237
+ expect(subject).to eq(%w(p1 p2))
220
238
  end
221
239
 
222
240
  it 'passes a default options hash to function' do
223
241
  argv = %w(func)
224
- Applix.main(argv) do
242
+ expect(Applix.main(argv) do
225
243
  handle(:func) { |*_, options| options }
226
- end.should eq({})
244
+ end).to eq({})
227
245
  end
228
246
 
229
247
  it 'should pass a processed options hash' do
230
248
  argv = %w(-a --bar func)
231
- Applix.main(argv) do
249
+ expect(Applix.main(argv) do
232
250
  handle(:func) { |*_, options| options }
233
- end.should include(:a => true, :bar => true)
251
+ end).to include(:a => true, :bar => true)
234
252
  end
235
253
 
236
254
  pending 'parses dashes in string options' do
255
+ fail '?'
237
256
  end
238
257
 
239
258
  it "should parse the old unit test..." do
@@ -244,22 +263,22 @@ describe Applix do
244
263
  # --float=2.3 becomes { :float => "2.3" }
245
264
  # --float:2.3 becomes { :float => 2.3 }
246
265
  # -f:1.234 becomes { :f => 1.234 }
247
- (Hash.from_argv ["--int=1"])[:int].should == "1"
248
- (Hash.from_argv ["--int:1"])[:int].should == 1
249
- (Hash.from_argv ["--float=2.3"])[:float].should == "2.3"
250
- (Hash.from_argv ["--float:2.3"])[:float].should == 2.3
251
- (Hash.from_argv ["-f:2.345"])[:f].should == 2.345
266
+ expect((Hash.from_argv ["--int=1"])[:int]).to eq("1")
267
+ expect((Hash.from_argv ["--int:1"])[:int]).to eq(1)
268
+ expect((Hash.from_argv ["--float=2.3"])[:float]).to eq("2.3")
269
+ expect((Hash.from_argv ["--float:2.3"])[:float]).to eq(2.3)
270
+ expect((Hash.from_argv ["-f:2.345"])[:f]).to eq(2.345)
252
271
 
253
272
  # --txt="foo bar" becomes { :txt => "foo bar" }
254
273
  # --txt:'"foo bar"' becomes { :txt => "foo bar" }
255
274
  # --txt:%w{foo bar} becomes { :txt => ["foo", "bar"] }
256
- (Hash.from_argv ['--txt="foo bar"'])[:txt].should == "foo bar"
257
- (Hash.from_argv [%q|--txt:'"foo bar"'|])[:txt].should == "foo bar"
258
- (Hash.from_argv [%q|--txt:'%w{foo bar}'|])[:txt].should == ["foo", "bar"]
275
+ expect((Hash.from_argv ['--txt="foo bar"'])[:txt]).to eq("foo bar")
276
+ expect((Hash.from_argv [%q|--txt:'"foo bar"'|])[:txt]).to eq("foo bar")
277
+ expect((Hash.from_argv [%q|--txt:'%w{foo bar}'|])[:txt]).to eq(["foo", "bar"])
259
278
 
260
279
  # --now:Time.now becomes { :now => Mon Jul 09 01:30:21 0200 2007 }
261
280
  #dt = Time.now - H.parse("--now:Time.now")[1]
262
- (t = (Hash.from_argv ["--now:Time.now"])[:now]).should_not == nil
281
+ expect((t = (Hash.from_argv ["--now:Time.now"])[:now])).to be
263
282
  end
264
283
  end
265
284
 
data/spec/spec_helper.rb CHANGED
@@ -4,6 +4,7 @@ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
  #require 'rspec/mocks'
5
5
  require 'applix'
6
6
  require 'applix/oattr'
7
+ require 'byebug'
7
8
 
8
9
  RSpec.configure do |config|
9
10
  config.before :each do
@@ -11,6 +12,13 @@ RSpec.configure do |config|
11
12
 
12
13
  config.after :each do
13
14
  end
15
+
16
+ # disable $crux debug flag after each test
17
+ config.after(:each) { $crux = false }
18
+
19
+ config.expect_with :rspec do |c|
20
+ c.syntax = [:should, :expect]
21
+ end
14
22
  end
15
23
 
16
24
  # captures standard output streams to help testing console I/O
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: applix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.11
4
+ version: 0.4.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - art+com/dirk luesebrink
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-23 00:00:00.000000000 Z
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: daemons
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
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'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
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: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
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
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec-mocks
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: guard-rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: debugger
98
+ name: byebug
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: "\n ApplixHash#from_argv builds hashes from ARGV like argument vectors\n
@@ -127,11 +127,11 @@ executables: []
127
127
  extensions: []
128
128
  extra_rdoc_files: []
129
129
  files:
130
- - .autotest
131
- - .document
132
- - .gitignore
133
- - .rspec
134
- - .travis.yml
130
+ - ".autotest"
131
+ - ".document"
132
+ - ".gitignore"
133
+ - ".rspec"
134
+ - ".travis.yml"
135
135
  - Gemfile
136
136
  - Guardfile
137
137
  - LICENSE
@@ -155,17 +155,17 @@ require_paths:
155
155
  - lib
156
156
  required_ruby_version: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - '>='
158
+ - - ">="
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  required_rubygems_version: !ruby/object:Gem::Requirement
162
162
  requirements:
163
- - - '>='
163
+ - - ">="
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  requirements: []
167
167
  rubyforge_project:
168
- rubygems_version: 2.0.3
168
+ rubygems_version: 2.4.2
169
169
  signing_key:
170
170
  specification_version: 4
171
171
  summary: extracting typed option hashes from command line arguments