named_parameter 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
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-07 00:00:00.000000000 Z
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: &85151400 !ruby/object:Gem::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: *85151400
24
+ version_requirements: *70482540
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jeweler
27
- requirement: &85149780 !ruby/object:Gem::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: *85149780
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/individual_named_method_feature_spec.rb
58
- - spec/features/singleton_named_method_feature_spec.rb
59
- - spec/features/class_self_named_method_feature_spec.rb
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