named_parameter 0.0.2 → 0.0.3
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/lib/named_parameter/named_parameter.rb +7 -2
- data/named_parameter.gemspec +3 -3
- data/spec/features/singleton_named_method_feature_spec.rb +173 -0
- data/spec/spec_helper.rb +0 -1
- data/spec/unit/errors/not_hash_spec.rb +0 -16
- data/spec/unit/errors/required_parameters_spec.rb +0 -25
- data/spec/unit/errors/undefined_parameters_spec.rb +0 -26
- metadata +32 -43
- data/lib/.named_parameter.rb.swo +0 -0
@@ -1,10 +1,15 @@
|
|
1
1
|
module NamedParameter
|
2
2
|
def named(def_return)
|
3
|
-
method =
|
3
|
+
method = @last_method_added
|
4
4
|
NamedParameter::NamedMethodTransmuter.transmute method
|
5
5
|
end
|
6
6
|
|
7
7
|
def method_added(method_name)
|
8
|
-
@last_method_added = method_name
|
8
|
+
@last_method_added = self.instance_method(method_name)
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
def singleton_method_added(method_name)
|
13
|
+
@last_method_added = self.method(method_name)
|
9
14
|
end
|
10
15
|
end
|
data/named_parameter.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{named_parameter}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Hugo Roque (a.k.a HugoLnx)"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2012-08-02}
|
13
13
|
s.description = %q{Allows named parameter in ruby}
|
14
14
|
s.email = %q{hugolnx@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
|
|
19
19
|
"Gemfile",
|
20
20
|
"README.md",
|
21
21
|
"Rakefile",
|
22
|
-
"lib/.named_parameter.rb.swo",
|
23
22
|
"lib/named_parameter.rb",
|
24
23
|
"lib/named_parameter/error.rb",
|
25
24
|
"lib/named_parameter/errors.rb",
|
@@ -33,6 +32,7 @@ Gem::Specification.new do |s|
|
|
33
32
|
"named_parameter.gemspec",
|
34
33
|
"spec/features/collective_named_methods_feature_spec.rb",
|
35
34
|
"spec/features/individual_named_method_feature_spec.rb",
|
35
|
+
"spec/features/singleton_named_method_feature_spec.rb",
|
36
36
|
"spec/spec_helper.rb",
|
37
37
|
"spec/unit/error_spec.rb",
|
38
38
|
"spec/unit/errors/not_hash_spec.rb",
|
@@ -0,0 +1,173 @@
|
|
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
|
+
class << self
|
163
|
+
def no_named_say(phrase)
|
164
|
+
phrase
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
phrase = People.no_named_say "Hi!"
|
170
|
+
phrase.should be == "Hi!"
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -66,22 +66,6 @@ module NamedParameter::Errors
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
describe 'integrations' do
|
73
|
-
after :each do
|
74
|
-
instance.raise_args
|
75
|
-
end
|
76
|
-
|
77
|
-
specify '@error.argument_name' do
|
78
|
-
@error.should_receive :argument_name
|
79
|
-
end
|
80
|
-
|
81
|
-
specify '@error.named_method' do
|
82
|
-
@error.should_receive :named_method
|
83
|
-
end
|
84
|
-
end
|
85
69
|
end
|
86
70
|
|
87
71
|
describe '.all_when(named_method,{called_with:arg})' do
|
@@ -66,22 +66,6 @@ module NamedParameter::Errors
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
describe 'integrations' do
|
73
|
-
after :each do
|
74
|
-
instance.raise_args
|
75
|
-
end
|
76
|
-
|
77
|
-
specify '@error.argument_name' do
|
78
|
-
@error.should_receive :argument_name
|
79
|
-
end
|
80
|
-
|
81
|
-
specify '@error.named_method' do
|
82
|
-
@error.should_receive :named_method
|
83
|
-
end
|
84
|
-
end
|
85
69
|
end
|
86
70
|
|
87
71
|
describe '.all_when(named_method,{called_with:arg})' do
|
@@ -116,15 +100,6 @@ module NamedParameter::Errors
|
|
116
100
|
end
|
117
101
|
end
|
118
102
|
end
|
119
|
-
|
120
|
-
describe 'integrations' do
|
121
|
-
specify "named_method.required_parameters" do
|
122
|
-
named_method = stub(:named_method)
|
123
|
-
named_method.should_receive(:required_parameters)
|
124
|
-
.and_return([])
|
125
|
-
RequiredParameters.all_when(named_method,:called_with => [])
|
126
|
-
end
|
127
|
-
end
|
128
103
|
end
|
129
104
|
end
|
130
105
|
end
|
@@ -66,22 +66,6 @@ module NamedParameter::Errors
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
describe 'integrations' do
|
73
|
-
after :each do
|
74
|
-
instance.raise_args
|
75
|
-
end
|
76
|
-
|
77
|
-
specify '@error.argument_name' do
|
78
|
-
@error.should_receive :argument_name
|
79
|
-
end
|
80
|
-
|
81
|
-
specify '@error.named_method' do
|
82
|
-
@error.should_receive :named_method
|
83
|
-
end
|
84
|
-
end
|
85
69
|
end
|
86
70
|
|
87
71
|
describe '.all_when(named_method,{called_with:args})' do
|
@@ -115,16 +99,6 @@ module NamedParameter::Errors
|
|
115
99
|
end
|
116
100
|
end
|
117
101
|
end
|
118
|
-
|
119
|
-
describe 'integrations' do
|
120
|
-
specify "named_method.have_a_parameter_like?(arg)" do
|
121
|
-
named_method = stub(:named_method)
|
122
|
-
args = {:arg_name => :value}
|
123
|
-
named_method.should_receive(:have_a_parameter_like?)
|
124
|
-
.with(:arg_name)
|
125
|
-
UndefinedParameters.all_when(named_method,:called_with => args)
|
126
|
-
end
|
127
|
-
end
|
128
102
|
end
|
129
103
|
end
|
130
104
|
end
|
metadata
CHANGED
@@ -1,53 +1,48 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: named_parameter
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
4
5
|
prerelease:
|
5
|
-
version: 0.0.2
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Hugo Roque (a.k.a HugoLnx)
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-08-02 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: bundler
|
18
|
-
requirement: &
|
16
|
+
requirement: &70006660 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
20
|
+
- !ruby/object:Gem::Version
|
23
21
|
version: 1.0.0
|
24
22
|
type: :development
|
25
23
|
prerelease: false
|
26
|
-
version_requirements: *
|
27
|
-
- !ruby/object:Gem::Dependency
|
24
|
+
version_requirements: *70006660
|
25
|
+
- !ruby/object:Gem::Dependency
|
28
26
|
name: jeweler
|
29
|
-
requirement: &
|
27
|
+
requirement: &70005210 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
29
|
+
requirements:
|
32
30
|
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
31
|
+
- !ruby/object:Gem::Version
|
34
32
|
version: 1.6.0
|
35
33
|
type: :development
|
36
34
|
prerelease: false
|
37
|
-
version_requirements: *
|
35
|
+
version_requirements: *70005210
|
38
36
|
description: Allows named parameter in ruby
|
39
37
|
email: hugolnx@gmail.com
|
40
38
|
executables: []
|
41
|
-
|
42
39
|
extensions: []
|
43
|
-
|
44
|
-
extra_rdoc_files:
|
40
|
+
extra_rdoc_files:
|
45
41
|
- README.md
|
46
|
-
files:
|
42
|
+
files:
|
47
43
|
- Gemfile
|
48
44
|
- README.md
|
49
45
|
- Rakefile
|
50
|
-
- lib/.named_parameter.rb.swo
|
51
46
|
- lib/named_parameter.rb
|
52
47
|
- lib/named_parameter/error.rb
|
53
48
|
- lib/named_parameter/errors.rb
|
@@ -61,6 +56,7 @@ files:
|
|
61
56
|
- named_parameter.gemspec
|
62
57
|
- spec/features/collective_named_methods_feature_spec.rb
|
63
58
|
- spec/features/individual_named_method_feature_spec.rb
|
59
|
+
- spec/features/singleton_named_method_feature_spec.rb
|
64
60
|
- spec/spec_helper.rb
|
65
61
|
- spec/unit/error_spec.rb
|
66
62
|
- spec/unit/errors/not_hash_spec.rb
|
@@ -68,36 +64,29 @@ files:
|
|
68
64
|
- spec/unit/errors/undefined_parameters_spec.rb
|
69
65
|
- spec/unit/named_method_spec.rb
|
70
66
|
- spec/unit/named_method_transmuter_spec.rb
|
71
|
-
has_rdoc: true
|
72
67
|
homepage: http://github.com/hugolnx/named_parameter
|
73
|
-
licenses:
|
68
|
+
licenses:
|
74
69
|
- MIT
|
75
70
|
post_install_message:
|
76
71
|
rdoc_options: []
|
77
|
-
|
78
|
-
require_paths:
|
72
|
+
require_paths:
|
79
73
|
- lib
|
80
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
75
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
|
87
|
-
- 0
|
88
|
-
version: "0"
|
89
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
81
|
none: false
|
91
|
-
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version:
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
95
86
|
requirements: []
|
96
|
-
|
97
87
|
rubyforge_project:
|
98
|
-
rubygems_version: 1.
|
88
|
+
rubygems_version: 1.8.15
|
99
89
|
signing_key:
|
100
90
|
specification_version: 3
|
101
91
|
summary: Allows named parameter in ruby
|
102
92
|
test_files: []
|
103
|
-
|
data/lib/.named_parameter.rb.swo
DELETED
Binary file
|