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.
@@ -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