smart_properties 1.2.2 → 1.2.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.
@@ -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