objectreload-simple_enumerations 0.1.2 → 0.1.3

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/.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