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 ADDED
@@ -0,0 +1,2 @@
1
+ *.log
2
+ pkg/
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 1
4
- :patch: 2
4
+ :patch: 3
5
5
  :build:
@@ -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.2"
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{2009-12-30}
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
- "LICENSE",
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.5}
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
- version: 0.1.2
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: 2009-12-30 00:00:00 +01:00
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
- type: :development
19
- version_requirement:
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
- version:
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.5
93
+ rubygems_version: 1.3.6
84
94
  signing_key:
85
95
  specification_version: 3
86
96
  summary: Simple enumerations system for rails apps