smart_properties 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,7 +22,7 @@
22
22
  #
23
23
  module SmartProperties
24
24
 
25
- VERSION = "1.2.2"
25
+ VERSION = "1.2.3"
26
26
 
27
27
  class Property
28
28
 
@@ -252,7 +252,7 @@ module SmartProperties
252
252
  # Assign attributes or default values
253
253
  properties.each do |_, property|
254
254
  value = attrs.fetch(property.name, property.default(self))
255
- send(:"#{property.name}=", value) if value
255
+ send(:"#{property.name}=", value) unless value.nil?
256
256
  end
257
257
 
258
258
  # Exectue configuration block
@@ -620,4 +620,51 @@ describe SmartProperties do
620
620
 
621
621
  end
622
622
 
623
+ context "when building a class that has a property which is required and has false as default" do
624
+
625
+ subject(:klass) do
626
+ Class.new.tap do |c|
627
+ c.send(:include, described_class)
628
+ c.send(:property, :flag, :required => true, :default => false)
629
+
630
+ def c.name; "Dummy"; end
631
+ end
632
+ end
633
+
634
+ context 'instances of that class' do
635
+
636
+ context 'when created with a set of attributes that explicitly contains nil for the title' do
637
+
638
+ subject(:instance) { klass.new :flag => true }
639
+
640
+ it "should have no title" do
641
+ instance.flag.should be_true
642
+ end
643
+
644
+ end
645
+
646
+ context 'when created with an block specifying that property' do
647
+
648
+ subject(:instance) { klass.new { |i| i.flag = true } }
649
+
650
+ it "should have the default title" do
651
+ instance.flag.should be_true
652
+ end
653
+
654
+ end
655
+
656
+ context "when created with no arguments" do
657
+
658
+ subject(:instance) { klass.new }
659
+
660
+ it "should have false as default flag" do
661
+ instance.flag.should be_false
662
+ end
663
+
664
+ end
665
+
666
+ end
667
+
668
+ end
669
+
623
670
  end
metadata CHANGED
@@ -1,59 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_properties
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
5
4
  prerelease:
5
+ version: 1.2.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Konstantin Tennhard
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-25 00:00:00.000000000 Z
12
+ date: 2012-11-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rspec
16
- requirement: !ruby/object:Gem::Requirement
15
+ type: :development
16
+ version_requirements: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: '2.12'
22
- type: :development
22
+ name: rspec
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
29
  version: '2.12'
30
30
  - !ruby/object:Gem::Dependency
31
- name: rake
32
- requirement: !ruby/object:Gem::Requirement
31
+ type: :development
32
+ version_requirements: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0.8'
38
- type: :development
38
+ name: rake
39
39
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
40
+ requirement: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0.8'
46
46
  - !ruby/object:Gem::Dependency
47
- name: guard-rspec
48
- requirement: !ruby/object:Gem::Requirement
47
+ type: :development
48
+ version_requirements: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0.7'
54
- type: :development
54
+ name: guard-rspec
55
55
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
56
+ requirement: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
59
  - - ~>
@@ -92,19 +92,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - ! '>='
94
94
  - !ruby/object:Gem::Version
95
- version: '0'
96
95
  segments:
97
96
  - 0
98
- hash: 1846347248225497114
97
+ hash: -4042209003338815638
98
+ version: '0'
99
99
  required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  none: false
101
101
  requirements:
102
102
  - - ! '>='
103
103
  - !ruby/object:Gem::Version
104
- version: '0'
105
104
  segments:
106
105
  - 0
107
- hash: 1846347248225497114
106
+ hash: -4042209003338815638
107
+ version: '0'
108
108
  requirements: []
109
109
  rubyforge_project:
110
110
  rubygems_version: 1.8.24