named_parameters 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README +40 -8
  2. data/lib/named_parameters.rb +12 -2
  3. metadata +2 -2
data/README CHANGED
@@ -39,8 +39,6 @@ Surprisingly it is this easy:
39
39
  b: 42)
40
40
 
41
41
 
42
-
43
- ---
44
42
  == Optional parameters
45
43
  You may also define optional parameters with defaults values:
46
44
  class AnyClass
@@ -103,39 +101,73 @@ actual named parameters hash. Use the super mode like this:
103
101
 
104
102
  class SomeLibraryClass
105
103
  def setup(options)
106
- #manual options parsing here
107
- options
104
+ @d = options[:d]
108
105
  end
109
106
  end
110
107
 
111
108
  class AnyClass
112
109
  named_parameters_super
113
110
  def setup(a,b,c)
114
- #do something with a, b and c
111
+ @a = a
112
+ @b = b
113
+ @c = c
115
114
  end
116
115
  end
117
116
 
118
117
  any_object.setup(a: "a",
119
118
  b: "b",
120
119
  c: "c",
121
- d: "d") # => {:a => "a", :b => "b", :c => "c", :d => "d"}
120
+ d: "d")
121
+ any_object.a # => "a"
122
+ any_object.b # => "b"
123
+ any_object.c # => "c"
124
+ any_object.d # => "d"
122
125
 
123
126
  == Combine super and strict
124
127
  In case you need to combine super and strict mode, do:
125
128
 
126
129
  class AnyClass < SomeLibraryClass
127
- named_parameters_strict_super # or named_parmeters_super_strict
130
+ named_parameters_strict_super # or named_parameters_super_strict
128
131
  def some_method(a,b,c)
129
132
  # do something with a and b, maybe something with c will be done in super
130
133
  end
131
134
  end
132
135
 
136
+
137
+ == <my_method>_has_named_parameters
138
+ There are actually two ways to make a your method accessible with named parameters. You can either declare the named
139
+ parameters just before the method definition (this is done above) or you can define them anytime after the method
140
+ definition:
141
+
142
+ class AnyClass
143
+ def some_method(a,b,c)
144
+ # do something with a, b and c
145
+ end
146
+
147
+ # lots of other code, if you like so
148
+ # ...
149
+
150
+ some_method_has_named_parameters(a: "a", b: "b")
151
+ end
152
+
153
+ This will do the same as:
154
+
155
+ class AnyClass
156
+ named_parameters(a: "a", b: "b")
157
+ def some_method(a,b,c)
158
+ # do something with a, b and c
159
+ end
160
+ end
161
+
162
+ With this method you can also use super and strict mode as usual
163
+
133
164
  == Acknowledgements
134
165
 
135
166
  Kudos to Juris Galang and his gem named-parameters. (http://www.rubygems.org/gems/named-parameters)
136
- Defenitely have a look at this gem also, if you want to use named parameters.
167
+ Definitely have a look at this gem also, if you want to use named parameters.
137
168
 
138
169
  == Changelog
170
+ [1.1.1] * Added documentation for ghost methods "my_method_has_named_parameters"
139
171
  [1.1.0] * Added ghost methods "my_method_has_named_parameters"
140
172
  [1.0.2] * Removed unimportant methods from documentation (again)
141
173
  [1.0.1] * Removed unimportant methods from documentation
@@ -1,8 +1,19 @@
1
1
  #
2
- # Include this module to enable the NamedParameters#named_parameters macro
2
+ # Include this module to enable the NamedParameters#named_parameters macros
3
3
  #
4
4
  module NamedParameters
5
5
 
6
+ # Works like NamedParameters#named_parameters, but instead of using it right before a method definition,
7
+ # you use it afterwards. You can also add the strict and super mode. Replace the +my_method+ with the name of the
8
+ # method that you want to have named parameters
9
+ # @see NamedParameters#named_parameters
10
+ # @see NamedParameters#named_parameters_strict
11
+ # @see NamedParameters#named_parameters_super
12
+ # @see NamedParameters#named_parameters_strict_super
13
+ def my_method_has_named_parameters(optionals = { })
14
+ # Empty method just for the documentation. Those methods are realized in NamedParameters#method_missing
15
+ end
16
+
6
17
  # Makes the next method callable via named parameters (options hash)
7
18
  # The caller hash may contain keys that are not contained in the parameters of the next method
8
19
  # @param [Hash[Symbol,Object]] optionals Optional default values for the parameters
@@ -33,7 +44,6 @@ module NamedParameters
33
44
  _named_parameters optionals, true, true
34
45
  end
35
46
 
36
-
37
47
  alias_method :named_parameters_super_strict, :named_parameters_strict_super
38
48
 
39
49
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: named_parameters
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-06 00:00:00.000000000 Z
12
+ date: 2012-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec