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.
@@ -1,171 +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
- named def self.say(phrase)
11
- phrase
12
- end
13
- end
14
-
15
- People.say phrase: "Hi!"
16
- # => "Hi!"
17
- } do
18
- class People
19
- extend NamedParameter
20
-
21
- named def self.say(phrase)
22
- phrase
23
- end
24
- end
25
-
26
- phrase = People.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 self.say(phrase="I'm mute")
37
- phrase
38
- end
39
- end
40
-
41
- People.say
42
- # => "I'm mute"
43
- } do
44
- class People
45
- extend NamedParameter
46
-
47
- named def self.say(phrase="I'm mute")
48
- phrase
49
- end
50
- end
51
-
52
- phrase = People.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 self.move_to(x,y)
63
- [x,y]
64
- end
65
- end
66
-
67
- Point.move_to x: 1,y: 2
68
- # => [1,2]
69
-
70
- Point.move_to y: 2, x: 1
71
- # => [1,2]
72
- } do
73
- class Point
74
- extend NamedParameter
75
-
76
- named def self.move_to(x,y)
77
- [x,y]
78
- end
79
- end
80
-
81
- position = Point.move_to x: 1,y: 2
82
- position.should be == [1,2]
83
-
84
- position = Point.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
-
94
- named def self.say(phrase)
95
- end
96
- end
97
-
98
- People.say phrase: "hi!",undefined: "test"
99
- #=> ArgumentError
100
- } do
101
- class People
102
- extend NamedParameter
103
-
104
- named def self.say(phrase)
105
- end
106
- end
107
-
108
- lambda{People.say(phrase: "hi!",undefined: "hugo")}.should raise_error ArgumentError, /'undefined'[\w\s]*'say'/
109
- end
110
- end
111
-
112
- describe 'ArgumentError when not given required args' do
113
- specify %q{
114
- class People
115
- extend NamedParameter
116
-
117
- named def self.say(phrase)
118
- end
119
- end
120
-
121
- People.say
122
- #=> ArgumentError
123
- } do
124
- class People
125
- extend NamedParameter
126
-
127
- named def self.say(phrase)
128
- end
129
- end
130
-
131
- lambda {People.say}.should raise_error ArgumentError, /'phrase'[\w\s]*'say'/
132
- end
133
- end
134
-
135
- describe 'ArgumentError when given a non Hash argument' do
136
- specify %q{
137
- class People
138
- extend NamedParameter
139
-
140
- named def self.say(phrase)
141
- end
142
- end
143
-
144
- People.say
145
- #=> ArgumentError
146
- } do
147
- class People
148
- extend NamedParameter
149
-
150
- named def self.say(phrase)
151
- end
152
- end
153
-
154
- lambda {People.say("non Hash argument")}.should raise_error ArgumentError, /"non Hash argument"[\w\s]*'say'/
155
- end
156
- end
157
- end
158
-
159
- describe "no named method" do
160
- it "can be called with normal parameters" do
161
- class People
162
- def self.no_named_say(phrase)
163
- phrase
164
- end
165
- end
166
-
167
- phrase = People.no_named_say "Hi!"
168
- phrase.should be == "Hi!"
169
- end
170
- end
171
- end