parameters 0.1.2 → 0.1.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/History.txt +5 -0
- data/README.txt +14 -3
- data/lib/parameters/parameters.rb +5 -1
- data/lib/parameters/version.rb +1 -1
- data/spec/parameters_spec.rb +11 -0
- metadata +4 -4
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -6,12 +6,14 @@
|
|
6
6
|
|
7
7
|
== DESCRIPTION:
|
8
8
|
|
9
|
-
Parameters allows you to add
|
9
|
+
Parameters allows you to add annotated variables to your classes which may
|
10
10
|
have configurable default values.
|
11
11
|
|
12
12
|
== FEATURES:
|
13
13
|
|
14
14
|
* Give parameters default values.
|
15
|
+
* Default values maybe either objects or lambdas used to generate the
|
16
|
+
default value.
|
15
17
|
* Change default values of parameters.
|
16
18
|
* Give descriptions to parameters.
|
17
19
|
|
@@ -21,24 +23,33 @@ have configurable default values.
|
|
21
23
|
|
22
24
|
include Parameters
|
23
25
|
|
24
|
-
parameter :x, :
|
26
|
+
parameter :x, :default => 0
|
25
27
|
|
26
|
-
parameter :y, :
|
28
|
+
parameter :y, :default => 0.5
|
27
29
|
|
28
30
|
parameter :radius, :description => 'The radius of the Octagon'
|
31
|
+
|
32
|
+
parameter :opacity,
|
33
|
+
:default => lambda { rand },
|
34
|
+
:description => 'The opacity of the Octagon'
|
29
35
|
|
30
36
|
end
|
31
37
|
|
32
38
|
oct = Octagon.new
|
33
39
|
oct.x # => 0
|
34
40
|
oct.y # => 0.5
|
41
|
+
oct.opacity # => 0.25
|
35
42
|
|
36
43
|
oct = Octagon.new(:radius => 10)
|
37
44
|
oct.radius # => 10
|
45
|
+
oct.opacity # => 0.7
|
38
46
|
|
39
47
|
Octagon.radius = 33
|
48
|
+
Octagon.opacity = 0.3
|
49
|
+
|
40
50
|
oct = Octagon.new
|
41
51
|
oct.radius # => 33
|
52
|
+
oct.opacity # => 0.3
|
42
53
|
|
43
54
|
== INSTALL:
|
44
55
|
|
@@ -148,7 +148,11 @@ module Parameters
|
|
148
148
|
# do not override existing instance value if present
|
149
149
|
unless instance_variable_get("@#{param.name}")
|
150
150
|
begin
|
151
|
-
|
151
|
+
if param.value.kind_of?(Proc)
|
152
|
+
value = param.value.call()
|
153
|
+
else
|
154
|
+
value = param.value.clone
|
155
|
+
end
|
152
156
|
rescue TypeError
|
153
157
|
value = param.value
|
154
158
|
end
|
data/lib/parameters/version.rb
CHANGED
data/spec/parameters_spec.rb
CHANGED
@@ -15,6 +15,10 @@ describe Parameters do
|
|
15
15
|
|
16
16
|
parameter :var_without_default,
|
17
17
|
:description => 'This parameter does not have a default value'
|
18
|
+
|
19
|
+
parameter :var_with_lambda,
|
20
|
+
:default => lambda { rand },
|
21
|
+
:description => 'This parameter uses a lambda instead of a default value'
|
18
22
|
end
|
19
23
|
|
20
24
|
class InheritedParameters < TestParameters
|
@@ -101,6 +105,13 @@ describe Parameters do
|
|
101
105
|
@test.instance_variable_get('@var').should == 3
|
102
106
|
end
|
103
107
|
|
108
|
+
it "should allow using lambdas for the default values of parameters" do
|
109
|
+
test1 = TestParameters.new
|
110
|
+
test2 = TestParameters.new
|
111
|
+
|
112
|
+
test1.var_with_lambda.should_not == test2.var_with_lambda
|
113
|
+
end
|
114
|
+
|
104
115
|
it "should contain the parameters from all ancestors" do
|
105
116
|
@test_inherited.has_param?(:var).should == true
|
106
117
|
@test_inherited.has_param?(:child_var).should == true
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parameters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-14 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 1.8.2
|
24
24
|
version:
|
25
|
-
description: Parameters allows you to add
|
25
|
+
description: Parameters allows you to add annotated variables to your classes which may have configurable default values.
|
26
26
|
email:
|
27
27
|
- postmodern.mod3@gmail.com
|
28
28
|
executables: []
|
@@ -79,6 +79,6 @@ rubyforge_project: parameters
|
|
79
79
|
rubygems_version: 1.3.1
|
80
80
|
signing_key:
|
81
81
|
specification_version: 2
|
82
|
-
summary: Parameters allows you to add
|
82
|
+
summary: Parameters allows you to add annotated variables to your classes which may have configurable default values.
|
83
83
|
test_files: []
|
84
84
|
|