parameters 0.1.5 → 0.1.6

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.
@@ -1,3 +1,10 @@
1
+ === 0.1.6 / 2009-05-11
2
+
3
+ * Fixed a bug in Parameters.params= and Parameters#params=, where they
4
+ were not handling Parameters::ClassParam or Parameters::InstanceParam
5
+ objects properly.
6
+ * Added more specs.
7
+
1
8
  === 0.1.5 / 2009-05-06
2
9
 
3
10
  * Added Parameters::Parser for parsing parameter values passed in from
@@ -17,7 +17,8 @@ lib/parameters/parameters.rb
17
17
  lib/parameters/version.rb
18
18
  tasks/spec.rb
19
19
  spec/spec_helper.rb
20
- spec/helpers/test_parameters.rb
21
- spec/helpers/inherited_parameters.rb
20
+ spec/classes/test_parameters.rb
21
+ spec/classes/inherited_parameters.rb
22
+ spec/classes/other_parameters.rb
22
23
  spec/parser_spec.rb
23
24
  spec/parameters_spec.rb
data/README.txt CHANGED
@@ -16,6 +16,7 @@ have configurable default values.
16
16
  default value.
17
17
  * Change default values of parameters.
18
18
  * Give descriptions to parameters.
19
+ * Set parameters en-mass.
19
20
 
20
21
  == EXAMPLES:
21
22
 
@@ -24,6 +24,10 @@ module Parameters
24
24
  def params=(values)
25
25
  values.each do |name,value|
26
26
  if has_param?(name)
27
+ if (value.kind_of?(Parameters::ClassParam) || value.kind_of?(Parameters::InstanceParam))
28
+ value = value.value
29
+ end
30
+
27
31
  get_param(name).value = value
28
32
  end
29
33
  end
@@ -238,8 +242,14 @@ module Parameters
238
242
  #
239
243
  def params=(values)
240
244
  values.each do |name,value|
245
+ name = name.to_sym
246
+
241
247
  if has_param?(name)
242
- self.params[name.to_sym].value = value
248
+ if (value.kind_of?(Parameters::ClassParam) || value.kind_of?(Parameters::InstanceParam))
249
+ value = value.value
250
+ end
251
+
252
+ self.params[name].value = value
243
253
  end
244
254
  end
245
255
  end
@@ -1,3 +1,3 @@
1
1
  module Parameters
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.6'
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'helpers/test_parameters'
1
+ require 'classes/test_parameters'
2
2
 
3
3
  class InheritedParameters < TestParameters
4
4
 
@@ -0,0 +1,10 @@
1
+ class OtherParameters
2
+ include Parameters
3
+
4
+ parameter :var, :description => 'Test parameter'
5
+
6
+ parameter :var_with_default,
7
+ :default => 'other',
8
+ :description => 'This parameter has a default value'
9
+
10
+ end
@@ -2,8 +2,9 @@ require 'parameters/parameters'
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- require 'helpers/test_parameters'
6
- require 'helpers/inherited_parameters'
5
+ require 'classes/test_parameters'
6
+ require 'classes/inherited_parameters'
7
+ require 'classes/other_parameters'
7
8
 
8
9
  describe Parameters do
9
10
  describe "in a Class" do
@@ -49,7 +50,7 @@ describe Parameters do
49
50
  end
50
51
 
51
52
  describe "in an Object" do
52
- before(:all) do
53
+ before(:each) do
53
54
  @test = TestParameters.new
54
55
  @test_inherited = InheritedParameters.new
55
56
  end
@@ -59,14 +60,6 @@ describe Parameters do
59
60
  @test.params[:var_with_default].should_not be_nil
60
61
  end
61
62
 
62
- it "should allow for mass assignment of parameters" do
63
- test2 = TestParameters.new
64
- test2.params = {:var => 5, :var_with_default => 'hello'}
65
-
66
- test2.var.should == 5
67
- test2.var_with_default.should == 'hello'
68
- end
69
-
70
63
  it "can have default values for parameters" do
71
64
  @test.param_value(:var_with_default).should == 'thing'
72
65
  end
@@ -84,10 +77,9 @@ describe Parameters do
84
77
  end
85
78
 
86
79
  it "should allow using lambdas for the default values of parameters" do
87
- test1 = TestParameters.new
88
80
  test2 = TestParameters.new
89
81
 
90
- test1.var_with_lambda.should_not == test2.var_with_lambda
82
+ @test.var_with_lambda.should_not == test2.var_with_lambda
91
83
  end
92
84
 
93
85
  it "should contain the parameters from all ancestors" do
@@ -113,6 +105,21 @@ describe Parameters do
113
105
  @test.param_value(:var_with_default).should == 7
114
106
  end
115
107
 
108
+ it "should allow for setting parameters en-mass from another object" do
109
+ obj = TestParameters.new(:var => 5, :var_with_default => 'hello')
110
+ @test.params = obj.params
111
+
112
+ @test.var.should == 5
113
+ @test.var_with_default.should == 'hello'
114
+ end
115
+
116
+ it "should allow for setting parameters en-mass from another class" do
117
+ @test.params = OtherParameters.params
118
+
119
+ @test.var.should be_nil
120
+ @test.var_with_default.should == 'other'
121
+ end
122
+
116
123
  it "should provide descriptions for parameters" do
117
124
  @test.describe_param(:var).should_not be_empty
118
125
  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.1.5
4
+ version: 0.1.6
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-05-06 00:00:00 -07:00
12
+ date: 2009-05-11 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -53,8 +53,9 @@ files:
53
53
  - lib/parameters/version.rb
54
54
  - tasks/spec.rb
55
55
  - spec/spec_helper.rb
56
- - spec/helpers/test_parameters.rb
57
- - spec/helpers/inherited_parameters.rb
56
+ - spec/classes/test_parameters.rb
57
+ - spec/classes/inherited_parameters.rb
58
+ - spec/classes/other_parameters.rb
58
59
  - spec/parser_spec.rb
59
60
  - spec/parameters_spec.rb
60
61
  has_rdoc: true