enumerated_type 0.1.0 → 0.1.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.
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["rafer@ralua.com"]
11
11
  spec.description = %q{Simple enumerated types}
12
12
  spec.summary = %q{Simple enumerated types}
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/rafer/enumerated_type"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -1,3 +1,3 @@
1
1
  module EnumeratedType
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -26,7 +26,7 @@ module EnumeratedType
26
26
 
27
27
  def initialize(name, properties)
28
28
  @name = name
29
- properties.each { |k, v| send(:"#{k}=", v) }
29
+ properties.each { |k, v| send(:"#{k}=", v.freeze) }
30
30
  end
31
31
 
32
32
  def self.new(*names)
@@ -74,7 +74,7 @@ module EnumeratedType
74
74
  end
75
75
  end
76
76
 
77
- enumerated = new(name, options)
77
+ enumerated = new(name, options).freeze
78
78
 
79
79
  @all << enumerated
80
80
  const_set(name.to_s.upcase, enumerated)
@@ -72,10 +72,18 @@ describe EnumeratedType do
72
72
  lambda { Gender.send(:declare, duplicate_name) }.must_raise(ArgumentError, /duplicate name/)
73
73
  end
74
74
 
75
+ it "produces frozen instances" do
76
+ Gender.all?(&:frozen?).must_equal true
77
+ end
78
+
75
79
  it "assigns properties and makes them accessible" do
76
80
  Gender.map(&:planet).must_equal ["mars", "venus"]
77
81
  end
78
82
 
83
+ it "freezes properties" do
84
+ lambda { Gender::MALE.planet.replace("pluto") }.must_raise(RuntimeError, /can't modify frozen/)
85
+ end
86
+
79
87
  it "does not expose public setters for properties" do
80
88
  Gender::MALE.respond_to?(:planet=).must_equal false
81
89
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumerated_type
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -75,7 +75,7 @@ files:
75
75
  - lib/enumerated_type.rb
76
76
  - lib/enumerated_type/version.rb
77
77
  - test/enumerated_type_spec.rb
78
- homepage: ''
78
+ homepage: https://github.com/rafer/enumerated_type
79
79
  licenses:
80
80
  - MIT
81
81
  post_install_message:
@@ -90,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  segments:
92
92
  - 0
93
- hash: 37053798746470730
93
+ hash: -396384872220614621
94
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  segments:
101
101
  - 0
102
- hash: 37053798746470730
102
+ hash: -396384872220614621
103
103
  requirements: []
104
104
  rubyforge_project:
105
105
  rubygems_version: 1.8.26