parameters 0.3.0 → 0.3.1
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/ChangeLog.md +8 -0
- data/lib/parameters/class_methods.rb +10 -3
- data/lib/parameters/param.rb +4 -10
- data/lib/parameters/parameters.rb +1 -1
- data/lib/parameters/types/boolean.rb +1 -1
- data/lib/parameters/version.rb +1 -1
- data/spec/types/boolean_spec.rb +0 -4
- metadata +8 -8
data/ChangeLog.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
### 0.3.1 / 2011-12-16
|
2
|
+
|
3
|
+
* Do not coerce `nil` values.
|
4
|
+
* Instance reader/writer methods for parameters now use
|
5
|
+
{Parameters::InstanceParam#value} and {Parameters::InstanceParam#value=}.
|
6
|
+
* Renamed the internal `@params` instance variables to `@_params` to avoid
|
7
|
+
collisions.
|
8
|
+
|
1
9
|
### 0.3.0 / 2011-12-13
|
2
10
|
|
3
11
|
* Added {Parameters::ClassMethods#set_param}.
|
@@ -13,7 +13,7 @@ module Parameters
|
|
13
13
|
# Parameters for the class.
|
14
14
|
#
|
15
15
|
def params
|
16
|
-
@
|
16
|
+
@_params ||= {}
|
17
17
|
end
|
18
18
|
|
19
19
|
#
|
@@ -77,8 +77,15 @@ module Parameters
|
|
77
77
|
get_param(name).value = value
|
78
78
|
end
|
79
79
|
|
80
|
-
# define the
|
81
|
-
|
80
|
+
# define the reader instance methods for the parameter
|
81
|
+
define_method(name) do
|
82
|
+
get_param(name).value
|
83
|
+
end
|
84
|
+
|
85
|
+
# define the writter instance methods for the parameter
|
86
|
+
define_method("#{name}=") do |value|
|
87
|
+
get_param(name).value = value
|
88
|
+
end
|
82
89
|
|
83
90
|
# create the new parameter
|
84
91
|
new_param = Parameters::ClassParam.new(
|
data/lib/parameters/param.rb
CHANGED
@@ -18,7 +18,7 @@ module Parameters
|
|
18
18
|
# @param [Symbol, String] name
|
19
19
|
# The name of the parameter.
|
20
20
|
#
|
21
|
-
# @param [Class] type
|
21
|
+
# @param [Class, nil] type
|
22
22
|
# The enforced type of the parameter.
|
23
23
|
#
|
24
24
|
# @param [String, nil] description
|
@@ -26,15 +26,9 @@ module Parameters
|
|
26
26
|
#
|
27
27
|
def initialize(name,type=nil,description=nil)
|
28
28
|
@name = name.to_sym
|
29
|
-
@type =
|
30
|
-
|
29
|
+
@type = if (type.kind_of?(Types::Type)) ||
|
30
|
+
(type.kind_of?(Class) && (type < Types::Type))
|
31
31
|
type
|
32
|
-
when Class
|
33
|
-
if type < Types::Type
|
34
|
-
type
|
35
|
-
else
|
36
|
-
Types[type]
|
37
|
-
end
|
38
32
|
else
|
39
33
|
Types[type]
|
40
34
|
end
|
@@ -54,7 +48,7 @@ module Parameters
|
|
54
48
|
# The coerced value.
|
55
49
|
#
|
56
50
|
def coerce(value)
|
57
|
-
if @type === value
|
51
|
+
if (value.nil? || (@type === value))
|
58
52
|
value
|
59
53
|
else
|
60
54
|
@type.coerce(value)
|
data/lib/parameters/version.rb
CHANGED
data/spec/types/boolean_spec.rb
CHANGED
@@ -31,10 +31,6 @@ describe Parameters::Types::Boolean do
|
|
31
31
|
subject.coerce(:false).should == false
|
32
32
|
end
|
33
33
|
|
34
|
-
it "should map nil to false" do
|
35
|
-
subject.coerce(nil).should == false
|
36
|
-
end
|
37
|
-
|
38
34
|
it "should map everything else to true" do
|
39
35
|
subject.coerce(:foo).should == true
|
40
36
|
end
|
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.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ore-tasks
|
16
|
-
requirement: &
|
16
|
+
requirement: &14692280 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.4'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14692280
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &14691740 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.4'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14691740
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: yard
|
38
|
-
requirement: &
|
38
|
+
requirement: &14691220 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0.7'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14691220
|
47
47
|
description: Parameters allows you to add annotated variables to your classes which
|
48
48
|
may have configurable default values.
|
49
49
|
email: postmodern.mod3@gmail.com
|