named_parameter 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,15 @@
1
1
  module NamedParameter
2
2
  def named(def_return)
3
- method = self.instance_method(@last_method_added)
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
@@ -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.2"
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{2011-05-13}
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
@@ -1,2 +1 @@
1
1
  require 'named_parameter'
2
- require 'support/interface_helper'
@@ -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
- date: 2011-05-13 00:00:00 -03:00
14
- default_executable:
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: &id001 !ruby/object:Gem::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: *id001
27
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70006660
25
+ - !ruby/object:Gem::Dependency
28
26
  name: jeweler
29
- requirement: &id002 !ruby/object:Gem::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: *id002
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
- hash: 215367841
86
- segments:
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: "0"
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
95
86
  requirements: []
96
-
97
87
  rubyforge_project:
98
- rubygems_version: 1.6.2
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
-
Binary file