named_parameter 0.0.4 → 0.0.5
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.
- data/README.md +19 -1
- data/Rakefile +1 -1
- data/lib/.named_parameter.rb.swo +0 -0
- data/lib/named_parameter.rb +2 -0
- data/lib/named_parameter/named_above.rb +28 -0
- data/lib/named_parameter/named_inline.rb +21 -0
- data/lib/named_parameter/named_parameter.rb +29 -11
- data/named_parameter.gemspec +17 -11
- data/spec/features/named_above/class_self_named_method_feature_spec.rb +211 -0
- data/spec/features/named_above/individual_named_method_feature_spec.rb +185 -0
- data/spec/features/named_above/singleton_named_method_feature_spec.rb +185 -0
- data/spec/features/named_inline/class_self_named_method_feature_spec.rb +199 -0
- data/spec/features/named_inline/individual_named_method_feature_spec.rb +166 -0
- data/spec/features/named_inline/singleton_named_method_feature_spec.rb +173 -0
- metadata +15 -9
- data/spec/features/class_self_named_method_feature_spec.rb +0 -197
- data/spec/features/individual_named_method_feature_spec.rb +0 -164
- data/spec/features/singleton_named_method_feature_spec.rb +0 -171
@@ -0,0 +1,173 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "inline named" do
|
4
|
+
describe "singleton named method feature" do
|
5
|
+
describe "becomes possible:" do
|
6
|
+
describe 'Named Parameter' do
|
7
|
+
specify %q{
|
8
|
+
class People
|
9
|
+
extend NamedParameter
|
10
|
+
|
11
|
+
named def self.say(phrase)
|
12
|
+
phrase
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
People.say phrase: "Hi!"
|
17
|
+
# => "Hi!"
|
18
|
+
} do
|
19
|
+
class People
|
20
|
+
extend NamedParameter
|
21
|
+
|
22
|
+
named def self.say(phrase)
|
23
|
+
phrase
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
phrase = People.say phrase: "Hi!"
|
28
|
+
phrase.should be == "Hi!"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe 'Optional Named Parameter' do
|
33
|
+
specify %q{
|
34
|
+
class People
|
35
|
+
extend NamedParameter
|
36
|
+
|
37
|
+
named def self.say(phrase="I'm mute")
|
38
|
+
phrase
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
People.say
|
43
|
+
# => "I'm mute"
|
44
|
+
} do
|
45
|
+
class People
|
46
|
+
extend NamedParameter
|
47
|
+
|
48
|
+
named def self.say(phrase="I'm mute")
|
49
|
+
phrase
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
phrase = People.say
|
54
|
+
phrase.should be == "I'm mute"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe 'Multiple Named Parameter (in any order)' do
|
59
|
+
specify %q{
|
60
|
+
class Point
|
61
|
+
extend NamedParameter
|
62
|
+
|
63
|
+
named def self.move_to(x,y)
|
64
|
+
[x,y]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
Point.move_to x: 1,y: 2
|
69
|
+
# => [1,2]
|
70
|
+
|
71
|
+
Point.move_to y: 2, x: 1
|
72
|
+
# => [1,2]
|
73
|
+
} do
|
74
|
+
class Point
|
75
|
+
extend NamedParameter
|
76
|
+
|
77
|
+
named def self.move_to(x,y)
|
78
|
+
[x,y]
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
position = Point.move_to x: 1,y: 2
|
83
|
+
position.should be == [1,2]
|
84
|
+
|
85
|
+
position = Point.move_to y: 2, x: 1
|
86
|
+
position.should be == [1,2]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe 'ArgumentError when given undefined args' do
|
91
|
+
specify %q{
|
92
|
+
class People
|
93
|
+
extend NamedParameter
|
94
|
+
|
95
|
+
named def self.say(phrase)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
People.say phrase: "hi!",undefined: "test"
|
100
|
+
#=> ArgumentError
|
101
|
+
} do
|
102
|
+
class People
|
103
|
+
extend NamedParameter
|
104
|
+
|
105
|
+
named def self.say(phrase)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
lambda{People.say(phrase: "hi!",undefined: "hugo")}.should raise_error ArgumentError, /'undefined'[\w\s]*'say'/
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe 'ArgumentError when not given required args' do
|
114
|
+
specify %q{
|
115
|
+
class People
|
116
|
+
extend NamedParameter
|
117
|
+
|
118
|
+
named def self.say(phrase)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
People.say
|
123
|
+
#=> ArgumentError
|
124
|
+
} do
|
125
|
+
class People
|
126
|
+
extend NamedParameter
|
127
|
+
|
128
|
+
named def self.say(phrase)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
lambda {People.say}.should raise_error ArgumentError, /'phrase'[\w\s]*'say'/
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
describe 'ArgumentError when given a non Hash argument' do
|
137
|
+
specify %q{
|
138
|
+
class People
|
139
|
+
extend NamedParameter
|
140
|
+
|
141
|
+
named def self.say(phrase)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
People.say
|
146
|
+
#=> ArgumentError
|
147
|
+
} do
|
148
|
+
class People
|
149
|
+
extend NamedParameter
|
150
|
+
|
151
|
+
named def self.say(phrase)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
lambda {People.say("non Hash argument")}.should raise_error ArgumentError, /"non Hash argument"[\w\s]*'say'/
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
describe "no named method" do
|
161
|
+
it "can be called with normal parameters" do
|
162
|
+
class People
|
163
|
+
def self.no_named_say(phrase)
|
164
|
+
phrase
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
phrase = People.no_named_say "Hi!"
|
169
|
+
phrase.should be == "Hi!"
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: named_parameter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: &
|
16
|
+
requirement: &70482540 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.0.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70482540
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jeweler
|
27
|
-
requirement: &
|
27
|
+
requirement: &70481580 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 1.6.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70481580
|
36
36
|
description: Allows named parameter in ruby
|
37
37
|
email: hugolnx@gmail.com
|
38
38
|
executables: []
|
@@ -43,20 +43,26 @@ files:
|
|
43
43
|
- Gemfile
|
44
44
|
- README.md
|
45
45
|
- Rakefile
|
46
|
+
- lib/.named_parameter.rb.swo
|
46
47
|
- lib/named_parameter.rb
|
47
48
|
- lib/named_parameter/error.rb
|
48
49
|
- lib/named_parameter/errors.rb
|
49
50
|
- lib/named_parameter/errors/not_hash.rb
|
50
51
|
- lib/named_parameter/errors/required_parameters.rb
|
51
52
|
- lib/named_parameter/errors/undefined_parameters.rb
|
53
|
+
- lib/named_parameter/named_above.rb
|
54
|
+
- lib/named_parameter/named_inline.rb
|
52
55
|
- lib/named_parameter/named_method.rb
|
53
56
|
- lib/named_parameter/named_method_transmuter.rb
|
54
57
|
- lib/named_parameter/named_parameter.rb
|
55
58
|
- lib/named_parameter/parameters.rb
|
56
59
|
- named_parameter.gemspec
|
57
|
-
- spec/features/
|
58
|
-
- spec/features/
|
59
|
-
- spec/features/
|
60
|
+
- spec/features/named_above/class_self_named_method_feature_spec.rb
|
61
|
+
- spec/features/named_above/individual_named_method_feature_spec.rb
|
62
|
+
- spec/features/named_above/singleton_named_method_feature_spec.rb
|
63
|
+
- spec/features/named_inline/class_self_named_method_feature_spec.rb
|
64
|
+
- spec/features/named_inline/individual_named_method_feature_spec.rb
|
65
|
+
- spec/features/named_inline/singleton_named_method_feature_spec.rb
|
60
66
|
- spec/spec_helper.rb
|
61
67
|
- spec/unit/error_spec.rb
|
62
68
|
- spec/unit/errors/not_hash_spec.rb
|
@@ -1,197 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "singleton named method feature" do
|
4
|
-
describe "becomes possible:" do
|
5
|
-
describe 'Named Parameter' do
|
6
|
-
specify %q{
|
7
|
-
class People
|
8
|
-
extend NamedParameter
|
9
|
-
|
10
|
-
class << self
|
11
|
-
named def say(phrase)
|
12
|
-
phrase
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
People.say phrase: "Hi!"
|
18
|
-
# => "Hi!"
|
19
|
-
} do
|
20
|
-
class People
|
21
|
-
extend NamedParameter
|
22
|
-
|
23
|
-
class << self
|
24
|
-
named def say(phrase)
|
25
|
-
phrase
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
phrase = People.say phrase: "Hi!"
|
31
|
-
phrase.should be == "Hi!"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe 'Optional Named Parameter' do
|
36
|
-
specify %q{
|
37
|
-
class People
|
38
|
-
extend NamedParameter
|
39
|
-
|
40
|
-
class << self
|
41
|
-
named def say(phrase="I'm mute")
|
42
|
-
phrase
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
People.say
|
48
|
-
# => "I'm mute"
|
49
|
-
} do
|
50
|
-
class People
|
51
|
-
extend NamedParameter
|
52
|
-
|
53
|
-
class << self
|
54
|
-
named def say(phrase="I'm mute")
|
55
|
-
phrase
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
phrase = People.say
|
61
|
-
phrase.should be == "I'm mute"
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe 'Multiple Named Parameter (in any order)' do
|
66
|
-
specify %q{
|
67
|
-
class Point
|
68
|
-
extend NamedParameter
|
69
|
-
|
70
|
-
class << self
|
71
|
-
named def move_to(x,y)
|
72
|
-
[x,y]
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
Point.move_to x: 1,y: 2
|
78
|
-
# => [1,2]
|
79
|
-
|
80
|
-
Point.move_to y: 2, x: 1
|
81
|
-
# => [1,2]
|
82
|
-
} do
|
83
|
-
class Point
|
84
|
-
extend NamedParameter
|
85
|
-
|
86
|
-
class << self
|
87
|
-
named def move_to(x,y)
|
88
|
-
[x,y]
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
position = Point.move_to x: 1,y: 2
|
94
|
-
position.should be == [1,2]
|
95
|
-
|
96
|
-
position = Point.move_to y: 2, x: 1
|
97
|
-
position.should be == [1,2]
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
describe 'ArgumentError when given undefined args' do
|
102
|
-
specify %q{
|
103
|
-
class People
|
104
|
-
extend NamedParameter
|
105
|
-
|
106
|
-
class << self
|
107
|
-
named def say(phrase)
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
People.say phrase: "hi!",undefined: "test"
|
113
|
-
#=> ArgumentError
|
114
|
-
} do
|
115
|
-
class People
|
116
|
-
extend NamedParameter
|
117
|
-
|
118
|
-
class << self
|
119
|
-
named def say(phrase)
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
lambda{People.say(phrase: "hi!",undefined: "hugo")}.should raise_error ArgumentError, /'undefined'[\w\s]*'say'/
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
describe 'ArgumentError when not given required args' do
|
129
|
-
specify %q{
|
130
|
-
class People
|
131
|
-
extend NamedParameter
|
132
|
-
|
133
|
-
class << self
|
134
|
-
named def say(phrase)
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
People.say
|
140
|
-
#=> ArgumentError
|
141
|
-
} do
|
142
|
-
class People
|
143
|
-
extend NamedParameter
|
144
|
-
|
145
|
-
class << self
|
146
|
-
named def say(phrase)
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
lambda {People.say}.should raise_error ArgumentError, /'phrase'[\w\s]*'say'/
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
describe 'ArgumentError when given a non Hash argument' do
|
156
|
-
specify %q{
|
157
|
-
class People
|
158
|
-
extend NamedParameter
|
159
|
-
|
160
|
-
class << self
|
161
|
-
named def say(phrase)
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
People.say
|
167
|
-
#=> ArgumentError
|
168
|
-
} do
|
169
|
-
class People
|
170
|
-
extend NamedParameter
|
171
|
-
|
172
|
-
class << self
|
173
|
-
named def say(phrase)
|
174
|
-
end
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
lambda {People.say("non Hash argument")}.should raise_error ArgumentError, /"non Hash argument"[\w\s]*'say'/
|
179
|
-
end
|
180
|
-
end
|
181
|
-
end
|
182
|
-
|
183
|
-
describe "no named method" do
|
184
|
-
it "can be called with normal parameters" do
|
185
|
-
class People
|
186
|
-
class << self
|
187
|
-
def no_named_say(phrase)
|
188
|
-
phrase
|
189
|
-
end
|
190
|
-
end
|
191
|
-
end
|
192
|
-
|
193
|
-
phrase = People.no_named_say "Hi!"
|
194
|
-
phrase.should be == "Hi!"
|
195
|
-
end
|
196
|
-
end
|
197
|
-
end
|
@@ -1,164 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "individual named method feature" do
|
4
|
-
describe "becomes possible:" do
|
5
|
-
describe 'Named Parameter' do
|
6
|
-
specify %q{
|
7
|
-
class People
|
8
|
-
extend NamedParameter
|
9
|
-
|
10
|
-
named def say(phrase)
|
11
|
-
phrase
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
People.new.say phrase: "Hi!"
|
16
|
-
# => "Hi!"
|
17
|
-
} do
|
18
|
-
class People
|
19
|
-
extend NamedParameter
|
20
|
-
|
21
|
-
named def say(phrase)
|
22
|
-
phrase
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
phrase = People.new.say phrase: "Hi!"
|
27
|
-
phrase.should be == "Hi!"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe 'Optional Named Parameter' do
|
32
|
-
specify %q{
|
33
|
-
class People
|
34
|
-
extend NamedParameter
|
35
|
-
|
36
|
-
named def say(phrase="I'm mute")
|
37
|
-
phrase
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
People.new.say
|
42
|
-
# => "I'm mute"
|
43
|
-
} do
|
44
|
-
class People
|
45
|
-
extend NamedParameter
|
46
|
-
|
47
|
-
named def say(phrase="I'm mute")
|
48
|
-
phrase
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
phrase = People.new.say
|
53
|
-
phrase.should be == "I'm mute"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
describe 'Multiple Named Parameter (in any order)' do
|
58
|
-
specify %q{
|
59
|
-
class Point
|
60
|
-
extend NamedParameter
|
61
|
-
|
62
|
-
named def move_to(x,y)
|
63
|
-
[x,y]
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
Point.new.move_to x: 1,y: 2
|
68
|
-
# => [1,2]
|
69
|
-
|
70
|
-
Point.new.move_to y: 2, x: 1
|
71
|
-
# => [1,2]
|
72
|
-
} do
|
73
|
-
class Point
|
74
|
-
extend NamedParameter
|
75
|
-
|
76
|
-
named def move_to(x,y)
|
77
|
-
[x,y]
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
position = Point.new.move_to x: 1,y: 2
|
82
|
-
position.should be == [1,2]
|
83
|
-
|
84
|
-
position = Point.new.move_to y: 2, x: 1
|
85
|
-
position.should be == [1,2]
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
describe 'ArgumentError when given undefined args' do
|
90
|
-
specify %q{
|
91
|
-
class People
|
92
|
-
extend NamedParameter
|
93
|
-
named def say(phrase)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
People.new.say phrase: "hi!",undefined: "test"
|
98
|
-
#=> ArgumentError
|
99
|
-
} do
|
100
|
-
class People
|
101
|
-
named def say(phrase)
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
lambda{People.new.say(phrase: "hi!",undefined: "hugo")}.should raise_error ArgumentError, /'undefined'[\w\s]*'say'/
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
describe 'ArgumentError when not given required args' do
|
110
|
-
specify %q{
|
111
|
-
class People
|
112
|
-
extend NamedParameter
|
113
|
-
named def say(phrase)
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
People.new.say
|
118
|
-
#=> ArgumentError
|
119
|
-
} do
|
120
|
-
class People
|
121
|
-
extend NamedParameter
|
122
|
-
named def say(phrase)
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
lambda {People.new.say}.should raise_error ArgumentError, /'phrase'[\w\s]*'say'/
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
describe 'ArgumentError when given a non Hash argument' do
|
131
|
-
specify %q{
|
132
|
-
class People
|
133
|
-
extend NamedParameter
|
134
|
-
named def say(phrase)
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
People.new.say
|
139
|
-
#=> ArgumentError
|
140
|
-
} do
|
141
|
-
class People
|
142
|
-
extend NamedParameter
|
143
|
-
named def say(phrase)
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
lambda {People.new.say("non Hash argument")}.should raise_error ArgumentError, /"non Hash argument"[\w\s]*'say'/
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
describe "no named method" do
|
153
|
-
it "can be called with normal parameters" do
|
154
|
-
class People
|
155
|
-
def no_named_say(phrase)
|
156
|
-
phrase
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
phrase = People.new.no_named_say "Hi!"
|
161
|
-
phrase.should be == "Hi!"
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|