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 +1 -0
- data/VERSION +1 -1
- data/degu.gemspec +6 -3
- data/lib/degu/has_set.rb +10 -2
- data/lib/degu/version.rb +1 -1
- data/test/has_set_test.rb +7 -0
- metadata +107 -60
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
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.
|
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-
|
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.
|
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.
|
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
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
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2011-12-14 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: gem_hadar
|
16
|
-
|
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
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
26
37
|
name: mocha
|
27
|
-
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
40
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
33
48
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
37
51
|
name: sqlite3
|
38
|
-
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
54
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
44
62
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
63
|
+
version_requirements: *id003
|
64
|
+
- !ruby/object:Gem::Dependency
|
48
65
|
name: rspec
|
49
|
-
|
66
|
+
prerelease: false
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
68
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
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
|
-
|
58
|
-
|
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
|
-
|
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
|
-
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
hash: 7
|
101
|
+
segments:
|
102
|
+
- 3
|
103
|
+
- 0
|
104
|
+
version: "3.0"
|
66
105
|
type: :runtime
|
67
|
-
|
68
|
-
|
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
|
-
|
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
|
-
|
123
|
-
|
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
|
-
|
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.
|
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
|