objectreload-simple_enumerations 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/VERSION.yml +1 -1
- data/lib/simple_enumerations/simple_enumerations.rb +14 -11
- data/objectreload-simple_enumerations.gemspec +5 -4
- metadata +19 -9
data/.gitignore
ADDED
data/VERSION.yml
CHANGED
@@ -2,48 +2,51 @@ module Wijet
|
|
2
2
|
module SimpleEnumerations
|
3
3
|
def self.included(base)
|
4
4
|
base.extend ClassMethods
|
5
|
+
EnumerationString::Enumeration.setup
|
5
6
|
end
|
6
|
-
|
7
|
+
|
7
8
|
module ClassMethods
|
8
9
|
def has_enumerated(name)
|
9
10
|
name = name.to_s
|
10
|
-
|
11
|
+
|
11
12
|
define_method("#{name}=") do |value|
|
12
13
|
value = value.to_s
|
13
14
|
unless Enumeration[name].include?(value) or value.blank?
|
14
|
-
raise ArgumentError, "'#{value}' is not a value of enumeration '#{name}'"
|
15
|
+
raise ArgumentError, "'#{value}' is not a value of enumeration '#{name}'"
|
15
16
|
end
|
16
17
|
write_attribute(name, value)
|
17
18
|
end
|
18
|
-
|
19
|
+
|
19
20
|
define_method(name) do
|
20
21
|
EnumerationString::Enumeration.new(attributes[name])
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
24
|
-
|
25
|
+
|
25
26
|
module EnumerationString
|
26
27
|
class Enumeration < String
|
27
28
|
def initialize(value = "")
|
28
29
|
super(value)
|
29
30
|
end
|
30
|
-
|
31
|
+
|
31
32
|
class << self
|
33
|
+
def setup
|
34
|
+
all.values.flatten.uniq.each do |value|
|
35
|
+
define_method("#{value.gsub(/[^[:alnum:]]/, '_')}?") { self == value }
|
36
|
+
end unless all.blank?
|
37
|
+
end
|
38
|
+
|
32
39
|
def [](name)
|
33
40
|
raise ArgumentError, "Enumeration '#{name}' doesn't exist" unless all.has_key?(name.to_s)
|
34
41
|
all[name.to_s]
|
35
42
|
end
|
36
|
-
|
43
|
+
|
37
44
|
def all
|
38
45
|
Rails.cache.fetch('_simple_enumerations_') do
|
39
46
|
YAML::load(File.read(File.join(RAILS_ROOT, 'config', 'enumerations.yml')))
|
40
47
|
end
|
41
48
|
end
|
42
49
|
end
|
43
|
-
|
44
|
-
all.values.flatten.uniq.each do |value|
|
45
|
-
define_method("#{value.gsub(/[^[:alnum:]]/, '_')}?") { self == value }
|
46
|
-
end unless all.blank?
|
47
50
|
|
48
51
|
def ==(object)
|
49
52
|
super(object.to_s)
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{objectreload-simple_enumerations}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Mariusz Pietrzyk", "Mateusz Drozdzynski"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2010-03-24}
|
13
13
|
s.description = %q{Provides simple and clean enumerations system for rails apps. Enumerations are defined in one file and stored in the database, as strings.}
|
14
14
|
s.email = %q{gems@objectreload.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -17,7 +17,8 @@ Gem::Specification.new do |s|
|
|
17
17
|
"README.markdown"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
|
-
"
|
20
|
+
".gitignore",
|
21
|
+
"LICENSE",
|
21
22
|
"README.markdown",
|
22
23
|
"Rakefile",
|
23
24
|
"VERSION.yml",
|
@@ -44,7 +45,7 @@ Gem::Specification.new do |s|
|
|
44
45
|
s.homepage = %q{http://github.com/objectreload/simple_enumerations}
|
45
46
|
s.rdoc_options = ["--charset=UTF-8"]
|
46
47
|
s.require_paths = ["lib"]
|
47
|
-
s.rubygems_version = %q{1.3.
|
48
|
+
s.rubygems_version = %q{1.3.6}
|
48
49
|
s.summary = %q{Simple enumerations system for rails apps}
|
49
50
|
s.test_files = [
|
50
51
|
"spec/app_root/app/models/group.rb",
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: objectreload-simple_enumerations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Mariusz Pietrzyk
|
@@ -10,19 +15,21 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date:
|
18
|
+
date: 2010-03-24 00:00:00 +01:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
17
22
|
name: rspec
|
18
|
-
|
19
|
-
|
20
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
25
|
requirements:
|
22
26
|
- - ">="
|
23
27
|
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
24
30
|
version: "0"
|
25
|
-
|
31
|
+
type: :development
|
32
|
+
version_requirements: *id001
|
26
33
|
description: Provides simple and clean enumerations system for rails apps. Enumerations are defined in one file and stored in the database, as strings.
|
27
34
|
email: gems@objectreload.com
|
28
35
|
executables: []
|
@@ -33,6 +40,7 @@ extra_rdoc_files:
|
|
33
40
|
- LICENSE
|
34
41
|
- README.markdown
|
35
42
|
files:
|
43
|
+
- .gitignore
|
36
44
|
- LICENSE
|
37
45
|
- README.markdown
|
38
46
|
- Rakefile
|
@@ -69,18 +77,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
69
77
|
requirements:
|
70
78
|
- - ">="
|
71
79
|
- !ruby/object:Gem::Version
|
80
|
+
segments:
|
81
|
+
- 0
|
72
82
|
version: "0"
|
73
|
-
version:
|
74
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
84
|
requirements:
|
76
85
|
- - ">="
|
77
86
|
- !ruby/object:Gem::Version
|
87
|
+
segments:
|
88
|
+
- 0
|
78
89
|
version: "0"
|
79
|
-
version:
|
80
90
|
requirements: []
|
81
91
|
|
82
92
|
rubyforge_project:
|
83
|
-
rubygems_version: 1.3.
|
93
|
+
rubygems_version: 1.3.6
|
84
94
|
signing_key:
|
85
95
|
specification_version: 3
|
86
96
|
summary: Simple enumerations system for rails apps
|