raph 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,47 +1,47 @@
1
- require 'spec_helper'
2
-
3
- module Raph
4
- module Parser
5
- describe BaseParser do
6
- describe '#id' do
7
- it 'returns correct value for base class' do
8
- expect(subject.id).to eql :bases
9
- end
10
-
11
- it 'returns correct value for child class' do
12
- class BaseArgumentParser < BaseParser; end
13
- expect(BaseArgumentParser.new.id).to eql :base_arguments
14
- end
15
-
16
- it 'returns correct value for modulized class' do
17
- module A
18
- module B
19
- class TestParser < BaseParser; end
20
- end
21
- end
22
- expect(A::B::TestParser.new.id).to eql :tests
23
- end
24
-
25
- it 'is correct when no name convention' do
26
- class Plural < BaseParser; end
27
- expect(Plural.new.id).to eql :plurals
28
- end
29
-
30
- it 'can be redefined' do
31
- class Plural < BaseParser
32
- def id
33
- :tests
34
- end
35
- end
36
- expect(Plural.new.id).to eql :tests
37
- end
38
- end
39
-
40
- describe '#parse' do
41
- it 'returns args' do
42
- expect(subject.parse [1, 2, 3]).to be nil
43
- end
44
- end
45
- end
46
- end
47
- end
1
+ require 'spec_helper'
2
+
3
+ module Raph
4
+ module Parser
5
+ describe BaseParser do
6
+ describe '#id' do
7
+ it 'returns correct value for base class' do
8
+ expect(subject.id).to eql :bases
9
+ end
10
+
11
+ it 'returns correct value for child class' do
12
+ class BaseArgumentParser < BaseParser; end
13
+ expect(BaseArgumentParser.new.id).to eql :base_arguments
14
+ end
15
+
16
+ it 'returns correct value for modulized class' do
17
+ module A
18
+ module B
19
+ class TestParser < BaseParser; end
20
+ end
21
+ end
22
+ expect(A::B::TestParser.new.id).to eql :tests
23
+ end
24
+
25
+ it 'is correct when no name convention' do
26
+ class Plural < BaseParser; end
27
+ expect(Plural.new.id).to eql :plurals
28
+ end
29
+
30
+ it 'can be redefined' do
31
+ class Plural < BaseParser
32
+ def id
33
+ :tests
34
+ end
35
+ end
36
+ expect(Plural.new.id).to eql :tests
37
+ end
38
+ end
39
+
40
+ describe '#parse' do
41
+ it 'returns args' do
42
+ expect(subject.parse [1, 2, 3]).to be nil
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -1,25 +1,25 @@
1
- require 'spec_helper'
2
-
3
- require 'raph/parser/file_parser'
4
-
5
- module Raph
6
- module Parser
7
- describe FileParser do
8
- describe '#parse' do
9
- it 'detects files' do
10
- expect(subject.parse(['**/*.rb'])).to include(Dir["**/file_parser_spec.rb"].join)
11
- end
12
-
13
- it 'does not detect non files' do
14
- expect(subject.parse(['no-such-file.py'])).to be_empty
15
- end
16
- end
17
-
18
- describe '#id' do
19
- it 'has correct form' do
20
- expect(subject.id).to eql :files
21
- end
22
- end
23
- end
24
- end
25
- end
1
+ require 'spec_helper'
2
+
3
+ require 'raph/parser/file_parser'
4
+
5
+ module Raph
6
+ module Parser
7
+ describe FileParser do
8
+ describe '#parse' do
9
+ it 'detects files' do
10
+ expect(subject.parse(['**/*.rb'])).to include(Dir["**/file_parser_spec.rb"].join)
11
+ end
12
+
13
+ it 'does not detect non files' do
14
+ expect(subject.parse(['no-such-file.py'])).to be_empty
15
+ end
16
+ end
17
+
18
+ describe '#id' do
19
+ it 'has correct form' do
20
+ expect(subject.id).to eql :files
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,48 +1,48 @@
1
- require 'spec_helper'
2
-
3
- module Raph
4
- module Parser
5
- describe FlagParser do
6
- describe '#id' do
7
- it 'has correct form' do
8
- expect(subject.id).to eq :flags
9
- end
10
- end
11
-
12
- describe '#parse' do
13
- it 'returns flags only' do
14
- expect(subject.parse(['-h', '-9', '123', '--config', 'config.xml'])).
15
- to match_array([:h, :'9', :config])
16
- end
17
-
18
- it 'has no flags here' do
19
- expect(subject.parse(['true', '-', '123'])).to match_array([])
20
- expect(subject.parse([])).to match_array([])
21
- end
22
- end
23
-
24
- describe '#flag?' do
25
- def flag?(option)
26
- !subject.flag?(option).nil?
27
- end
28
-
29
- it 'is a flag' do
30
- expect(flag? '-h').to be true
31
- expect(flag? '-T').to be true
32
- expect(flag? '--config').to be true
33
- expect(flag? '--my-flag').to be true
34
- end
35
-
36
- it 'is not a flag?' do
37
- expect(flag? '').to be false
38
- expect(flag? '-').to be false
39
- expect(flag? '--').to be false
40
- expect(flag? '---').to be false
41
- expect(flag? '--h').to be false
42
- expect(flag? 'option').to be false
43
- expect(flag? '---option').to be false
44
- end
45
- end
46
- end
47
- end
48
- end
1
+ require 'spec_helper'
2
+
3
+ module Raph
4
+ module Parser
5
+ describe FlagParser do
6
+ describe '#id' do
7
+ it 'has correct form' do
8
+ expect(subject.id).to eq :flags
9
+ end
10
+ end
11
+
12
+ describe '#parse' do
13
+ it 'returns flags only' do
14
+ expect(subject.parse(['-h', '-9', '123', '--config', 'config.xml'])).
15
+ to match_array([:h, :'9', :config])
16
+ end
17
+
18
+ it 'has no flags here' do
19
+ expect(subject.parse(['true', '-', '123'])).to match_array([])
20
+ expect(subject.parse([])).to match_array([])
21
+ end
22
+ end
23
+
24
+ describe '#flag?' do
25
+ def flag?(option)
26
+ subject.flag?(option)
27
+ end
28
+
29
+ it 'is a flag' do
30
+ expect(flag? '-h').to be true
31
+ expect(flag? '-T').to be true
32
+ expect(flag? '--config').to be true
33
+ expect(flag? '--my-flag').to be true
34
+ end
35
+
36
+ it 'is not a flag?' do
37
+ expect(flag? '').to be false
38
+ expect(flag? '-').to be false
39
+ expect(flag? '--').to be false
40
+ expect(flag? '---').to be false
41
+ expect(flag? '--h').to be false
42
+ expect(flag? 'option').to be false
43
+ expect(flag? '---option').to be false
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ module Raph
4
+ module Parser
5
+ describe GroupedArgParser do
6
+ describe '#id' do
7
+ it 'has correct form' do
8
+ expect(subject.id).to eq :grouped_args
9
+ end
10
+ end
11
+
12
+ describe '#parse' do
13
+ it 'returns groups' do
14
+ parsed = subject.parse(['-s', '1', '2', '3', '--assignment=one'])
15
+ expect(parsed.size).to be 2
16
+ expect(parsed).to include(:s => ['1', '2', '3'])
17
+ expect(parsed).to include(:'assignment=one' => [])
18
+ end
19
+
20
+ it 'returns empty hash when group not found' do
21
+ parsed = subject.parse(['1', '2', '3', 'one', 'two'])
22
+ expect(parsed).to be_a Hash
23
+ expect(parsed).to be_empty
24
+ end
25
+
26
+ it 'returns empty hash when there are no parameters' do
27
+ parsed = subject.parse([])
28
+ expect(parsed).to be_a Hash
29
+ expect(parsed).to be_empty
30
+ end
31
+
32
+ it 'selects only arguments that belongs to the group' do
33
+ parsed = subject.parse(['one', 'two', '-f', 'three', 'four'])
34
+ expect(parsed.size).to be 1
35
+ expect(parsed).to include(:f => ['three', 'four'])
36
+ end
37
+ end
38
+
39
+ describe '#group?' do
40
+ def group?(option)
41
+ subject.group?(option)
42
+ end
43
+
44
+ it 'is a group' do
45
+ positive_options = ['-h', '--help', '--assignment=true']
46
+ positive_options.each do |option|
47
+ expect(group? option).to be true
48
+ end
49
+ end
50
+
51
+ it 'is not a group' do
52
+ negative_options = ['', '-', '--', ' ', 'option', '1', '-assign=', '=']
53
+ negative_options.each do |option|
54
+ expect(group? option).to be false
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -1,56 +1,78 @@
1
- require 'spec_helper'
2
- require 'fileutils'
3
-
4
- module Raph
5
- describe Raph do
6
-
7
- class NumberParser
8
- attr_accessor :id, :max
9
-
10
- def initialize(id, max=100)
11
- @id = id
12
- @max = max
13
- end
14
-
15
- def parse(args)
16
- args.select { |x| x <= max }
17
- end
18
- end
19
-
20
- describe '#parse' do
21
- let (:numbers) { (1..100) }
22
- let (:parser1) { NumberParser.new(:first, 5) }
23
- let (:parser2) { NumberParser.new(:second, 6) }
24
-
25
- it 'should parse nothing if parsers not added' do
26
- raph = Raph.new.tap { |r| r.parse numbers }
27
- expect(raph.all).to match_array numbers
28
- end
29
-
30
- it 'should have correspoding attribute if parser added' do
31
- raph = Raph.new.tap do |r|
32
- r.add_parser(parser1)
33
- r.add_parser(parser2)
34
- r.parse(numbers)
35
- end
36
- expect(raph.all).to match_array numbers
37
- expect(raph.send(parser1.id)).to match_array (1..parser1.max)
38
- expect(raph.send(parser2.id)).to match_array (1..parser2.max)
39
- end
40
- end
41
- end
42
-
43
- context 'when we include Raph' do
44
- it 'loads global variable' do
45
- expect($raph).to be_a Raph
46
- end
47
-
48
- it 'has proper attributes' do
49
- raph = $raph
50
- expect(raph.all).not_to be nil
51
- expect(raph.send(FlagParser.new.id)).not_to be nil
52
- expect(raph.send(FileParser.new.id)).not_to be nil
53
- expect(raph.send(AssignmentParser.new.id)).not_to be nil
54
- end
55
- end
56
- end
1
+ require 'spec_helper'
2
+ require 'fileutils'
3
+
4
+ module Raph
5
+ class NumberParser
6
+ attr_accessor :id, :max
7
+
8
+ def initialize(id, max=100)
9
+ @id = id
10
+ @max = max
11
+ end
12
+
13
+ def parse(args)
14
+ args.select { |x| x <= max }
15
+ end
16
+ end
17
+
18
+ describe Raph do
19
+ let (:numbers) { (1..100) }
20
+ let (:parser1) { NumberParser.new(:first, 5) }
21
+ let (:parser2) { NumberParser.new(:second, 6) }
22
+
23
+ describe '#parse' do
24
+ it 'should parse nothing if parsers not added' do
25
+ raph = Raph.new.tap { |r| r.parse numbers }
26
+ expect(raph.all).to match_array numbers
27
+ end
28
+
29
+ it 'should have correspoding attribute if parser added' do
30
+ raph = Raph.new.tap do |r|
31
+ r.add_parser(parser1)
32
+ r.add_parser(parser2)
33
+ r.parse(numbers)
34
+ end
35
+ expect(raph.all).to match_array numbers
36
+ expect(raph.send(parser1.id)).to match_array (1..parser1.max)
37
+ expect(raph.send(parser2.id)).to match_array (1..parser2.max)
38
+ end
39
+ end
40
+
41
+ describe '#method_missing' do
42
+ it 'should throw when argument passed' do
43
+ raph = Raph.new.tap do |r|
44
+ r.add_parser(parser1)
45
+ r.parse(numbers)
46
+ end
47
+ expect{ raph.send(parser1.id, 'argument') }.to raise_error
48
+ end
49
+
50
+ it 'should throw when block passed' do
51
+ raph = Raph.new.tap do |r|
52
+ r.add_parser(parser1)
53
+ r.parse(numbers)
54
+ end
55
+ expect{ raph.send(parser1.id) { 'my block' } }.to raise_error
56
+ end
57
+
58
+ it 'should throw when wrong id given' do
59
+ raph = Raph.new.tap { |r| r.parse numbers }
60
+ expect{ raph.send(:wrong_id) }.to raise_error
61
+ end
62
+ end
63
+ end
64
+
65
+ context 'when we include Raph' do
66
+ it 'loads global variable' do
67
+ expect($raph).to be_a Raph
68
+ end
69
+
70
+ it 'has proper attributes' do
71
+ raph = $raph
72
+ expect(raph.all).not_to be nil
73
+ expect(raph.send(FlagParser.new.id)).not_to be nil
74
+ expect(raph.send(FileParser.new.id)).not_to be nil
75
+ expect(raph.send(AssignmentParser.new.id)).not_to be nil
76
+ end
77
+ end
78
+ end
@@ -1 +1 @@
1
- require 'raph'
1
+ require 'raph'
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: raph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vitalii Elenhaupt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-17 00:00:00.000000000 Z
11
+ date: 2015-03-22 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.7'
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.7'
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: '10.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: '10.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: '3.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: '3.0'
55
55
  description: |2
@@ -61,9 +61,10 @@ executables: []
61
61
  extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
- - .gitignore
65
- - .travis.yml
66
- - .yardopts
64
+ - ".gitignore"
65
+ - ".travis.yml"
66
+ - ".yardopts"
67
+ - CHANGELOG.md
67
68
  - Gemfile
68
69
  - LICENSE
69
70
  - LICENSE.txt
@@ -75,12 +76,14 @@ files:
75
76
  - lib/raph/parser/base_parser.rb
76
77
  - lib/raph/parser/file_parser.rb
77
78
  - lib/raph/parser/flag_parser.rb
79
+ - lib/raph/parser/grouped_arg_parser.rb
78
80
  - lib/raph/version.rb
79
81
  - raph.gemspec
80
82
  - spec/raph/parser/assinment_parser_spec.rb
81
83
  - spec/raph/parser/base_parser_spec.rb
82
84
  - spec/raph/parser/file_parser_spec.rb
83
85
  - spec/raph/parser/flag_parser_spec.rb
86
+ - spec/raph/parser/grouped_args_parser_spec.rb
84
87
  - spec/raph_spec.rb
85
88
  - spec/spec_helper.rb
86
89
  homepage: https://github.com/veelenga/raph
@@ -93,17 +96,17 @@ require_paths:
93
96
  - lib
94
97
  required_ruby_version: !ruby/object:Gem::Requirement
95
98
  requirements:
96
- - - '>='
99
+ - - ">="
97
100
  - !ruby/object:Gem::Version
98
101
  version: 1.9.3
99
102
  required_rubygems_version: !ruby/object:Gem::Requirement
100
103
  requirements:
101
- - - '>='
104
+ - - ">="
102
105
  - !ruby/object:Gem::Version
103
106
  version: '0'
104
107
  requirements: []
105
108
  rubyforge_project:
106
- rubygems_version: 2.0.14
109
+ rubygems_version: 2.4.6
107
110
  signing_key:
108
111
  specification_version: 4
109
112
  summary: Ruby Argument Parsing for Humans.
@@ -112,5 +115,7 @@ test_files:
112
115
  - spec/raph/parser/base_parser_spec.rb
113
116
  - spec/raph/parser/file_parser_spec.rb
114
117
  - spec/raph/parser/flag_parser_spec.rb
118
+ - spec/raph/parser/grouped_args_parser_spec.rb
115
119
  - spec/raph_spec.rb
116
120
  - spec/spec_helper.rb
121
+ has_rdoc: