degu 0.0.4 → 0.0.5

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/Rakefile CHANGED
@@ -21,6 +21,7 @@ GemHadar do
21
21
  development_dependency 'mocha'
22
22
  development_dependency 'sqlite3'
23
23
  development_dependency 'rspec'
24
+ development_dependency 'ruby-debug'
24
25
  end
25
26
 
26
27
  desc 'Run specs and tests'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
data/degu.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "degu"
5
- s.version = "0.0.4"
5
+ s.version = "0.0.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Florian Frank"]
9
- s.date = "2011-12-08"
9
+ s.date = "2011-12-14"
10
10
  s.description = "Library that includes enums, and rails support for enums and bitfield sets."
11
11
  s.email = "dev@pkw.de"
12
12
  s.extra_rdoc_files = ["README.rdoc", "lib/degu/has_enum.rb", "lib/degu/has_set.rb", "lib/degu/polite.rb", "lib/degu/renum/enumerated_value.rb", "lib/degu/renum/enumerated_value_type_factory.rb", "lib/degu/renum.rb", "lib/degu/rude.rb", "lib/degu/version.rb", "lib/degu.rb"]
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.homepage = "http://github.com/caroo/degu"
15
15
  s.rdoc_options = ["--title", "Degu - Library for enums and bitfield sets.", "--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
17
- s.rubygems_version = "1.8.11"
17
+ s.rubygems_version = "1.8.10"
18
18
  s.summary = "Library for enums and bitfield sets."
19
19
  s.test_files = ["test/has_enum_test.rb", "test/has_set_test.rb"]
20
20
 
@@ -26,12 +26,14 @@ Gem::Specification.new do |s|
26
26
  s.add_development_dependency(%q<mocha>, [">= 0"])
27
27
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
28
28
  s.add_development_dependency(%q<rspec>, [">= 0"])
29
+ s.add_development_dependency(%q<ruby-debug>, [">= 0"])
29
30
  s.add_runtime_dependency(%q<activerecord>, ["~> 3.0"])
30
31
  else
31
32
  s.add_dependency(%q<gem_hadar>, ["~> 0.1.3"])
32
33
  s.add_dependency(%q<mocha>, [">= 0"])
33
34
  s.add_dependency(%q<sqlite3>, [">= 0"])
34
35
  s.add_dependency(%q<rspec>, [">= 0"])
36
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
35
37
  s.add_dependency(%q<activerecord>, ["~> 3.0"])
36
38
  end
37
39
  else
@@ -39,6 +41,7 @@ Gem::Specification.new do |s|
39
41
  s.add_dependency(%q<mocha>, [">= 0"])
40
42
  s.add_dependency(%q<sqlite3>, [">= 0"])
41
43
  s.add_dependency(%q<rspec>, [">= 0"])
44
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
42
45
  s.add_dependency(%q<activerecord>, ["~> 3.0"])
43
46
  end
44
47
  end
data/lib/degu/has_set.rb CHANGED
@@ -33,15 +33,23 @@ module Degu
33
33
  define_method("#{set_name}=") do |argument_value|
34
34
  self[set_column] =
35
35
  unless argument_value.nil?
36
+ invalid_set_elements = []
36
37
  set_elements =
37
38
  if String === argument_value
38
39
  argument_value.split(',').map(&:strip)
39
40
  else
40
41
  Array(argument_value)
41
42
  end.map do |set_element|
42
- enum_class[set_element]
43
+ if result = enum_class[set_element]
44
+ result
45
+ else
46
+ invalid_set_elements << set_element
47
+ nil
48
+ end
43
49
  end
44
- set_elements.all? or raise ArgumentError, "element #{argument_value.inspect} contains invalid elements"
50
+ if set_elements.any? { |set_element| set_element.nil? }
51
+ raise ArgumentError, "element #{argument_value.inspect} contains invalid elements: #{invalid_set_elements.inspect}"
52
+ end
45
53
  value = 0
46
54
  set_elements.each do |set_element|
47
55
  mask = 1 << set_element.bitfield_index
data/lib/degu/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Degu
2
2
  # Degu version
3
- VERSION = '0.0.4'
3
+ VERSION = '0.0.5'
4
4
  VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/test/has_set_test.rb CHANGED
@@ -66,6 +66,13 @@ class HasSetTest < Test::Unit::TestCase
66
66
  def test_should_set_elements_by_string_names
67
67
  person = Person.new(:fullname => "Jessie Summers", :interests => "Dating, Shopping")
68
68
  assert_equal [Interests::Dating, Interests::Shopping], person.interests
69
+ person = Person.new(:fullname => "Jessie Summers", :interests => "")
70
+ assert_equal [], person.interests
71
+ end
72
+
73
+ def test_should_be_settable_to_nil
74
+ person = Person.new(:fullname => "Jessie Summers", :interests => nil)
75
+ assert_equal nil, person.interests
69
76
  end
70
77
 
71
78
  def test_should_set_elements_by_string_name
metadata CHANGED
@@ -1,77 +1,116 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: degu
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.4
3
+ version: !ruby/object:Gem::Version
4
+ hash: 21
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 5
10
+ version: 0.0.5
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Florian Frank
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-12-08 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-12-14 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: gem_hadar
16
- requirement: &2160629180 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
25
+ requirements:
19
26
  - - ~>
20
- - !ruby/object:Gem::Version
27
+ - !ruby/object:Gem::Version
28
+ hash: 29
29
+ segments:
30
+ - 0
31
+ - 1
32
+ - 3
21
33
  version: 0.1.3
22
34
  type: :development
23
- prerelease: false
24
- version_requirements: *2160629180
25
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
26
37
  name: mocha
27
- requirement: &2160628700 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
28
40
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
33
48
  type: :development
34
- prerelease: false
35
- version_requirements: *2160628700
36
- - !ruby/object:Gem::Dependency
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
37
51
  name: sqlite3
38
- requirement: &2160628280 !ruby/object:Gem::Requirement
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
39
54
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
44
62
  type: :development
45
- prerelease: false
46
- version_requirements: *2160628280
47
- - !ruby/object:Gem::Dependency
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
48
65
  name: rspec
49
- requirement: &2160573460 !ruby/object:Gem::Requirement
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
50
68
  none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
55
76
  type: :development
77
+ version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
79
+ name: ruby-debug
56
80
  prerelease: false
57
- version_requirements: *2160573460
58
- - !ruby/object:Gem::Dependency
81
+ requirement: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ hash: 3
87
+ segments:
88
+ - 0
89
+ version: "0"
90
+ type: :development
91
+ version_requirements: *id005
92
+ - !ruby/object:Gem::Dependency
59
93
  name: activerecord
60
- requirement: &2160572000 !ruby/object:Gem::Requirement
94
+ prerelease: false
95
+ requirement: &id006 !ruby/object:Gem::Requirement
61
96
  none: false
62
- requirements:
97
+ requirements:
63
98
  - - ~>
64
- - !ruby/object:Gem::Version
65
- version: '3.0'
99
+ - !ruby/object:Gem::Version
100
+ hash: 7
101
+ segments:
102
+ - 3
103
+ - 0
104
+ version: "3.0"
66
105
  type: :runtime
67
- prerelease: false
68
- version_requirements: *2160572000
69
- description: Library that includes enums, and rails support for enums and bitfield
70
- sets.
106
+ version_requirements: *id006
107
+ description: Library that includes enums, and rails support for enums and bitfield sets.
71
108
  email: dev@pkw.de
72
109
  executables: []
110
+
73
111
  extensions: []
74
- extra_rdoc_files:
112
+
113
+ extra_rdoc_files:
75
114
  - README.rdoc
76
115
  - lib/degu/has_enum.rb
77
116
  - lib/degu/has_set.rb
@@ -82,7 +121,7 @@ extra_rdoc_files:
82
121
  - lib/degu/rude.rb
83
122
  - lib/degu/version.rb
84
123
  - lib/degu.rb
85
- files:
124
+ files:
86
125
  - .gitignore
87
126
  - Gemfile
88
127
  - README.rdoc
@@ -106,32 +145,40 @@ files:
106
145
  - test_helper.rb
107
146
  homepage: http://github.com/caroo/degu
108
147
  licenses: []
148
+
109
149
  post_install_message:
110
- rdoc_options:
150
+ rdoc_options:
111
151
  - --title
112
152
  - Degu - Library for enums and bitfield sets.
113
153
  - --main
114
154
  - README.rdoc
115
- require_paths:
155
+ require_paths:
116
156
  - lib
117
- required_ruby_version: !ruby/object:Gem::Requirement
157
+ required_ruby_version: !ruby/object:Gem::Requirement
118
158
  none: false
119
- requirements:
120
- - - ! '>='
121
- - !ruby/object:Gem::Version
122
- version: '0'
123
- required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ hash: 3
163
+ segments:
164
+ - 0
165
+ version: "0"
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
167
  none: false
125
- requirements:
126
- - - ! '>='
127
- - !ruby/object:Gem::Version
128
- version: '0'
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ hash: 3
172
+ segments:
173
+ - 0
174
+ version: "0"
129
175
  requirements: []
176
+
130
177
  rubyforge_project:
131
- rubygems_version: 1.8.11
178
+ rubygems_version: 1.8.10
132
179
  signing_key:
133
180
  specification_version: 3
134
181
  summary: Library for enums and bitfield sets.
135
- test_files:
182
+ test_files:
136
183
  - test/has_enum_test.rb
137
184
  - test/has_set_test.rb