enumlogic 1.0.4 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ == 2.0.0 release 2013-05-13
2
+
3
+ * Reversed the namespace order: enum :car, ['truck', 'suv'] will now be car_truck? instead of truck_car?
4
+ * Namespacing is now enabled by default, turn it off with enum :car, ['truck', 'suv'], :namespace => false
5
+
1
6
  == 1.0.1 relased 2009-09-01
2
7
 
3
8
  * Allow nils
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
  gemspec
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- enumlogic (1.0.4)
4
+ enumlogic (2.0.0)
5
5
  activesupport (>= 2.3.0)
6
6
 
7
7
  GEM
8
- remote: http://rubygems.org/
8
+ remote: https://rubygems.org/
9
9
  specs:
10
10
  activemodel (3.2.13)
11
11
  activesupport (= 3.2.13)
@@ -21,8 +21,8 @@ GEM
21
21
  arel (3.0.2)
22
22
  builder (3.0.4)
23
23
  i18n (0.6.1)
24
- multi_json (1.7.1)
25
- rake (10.0.3)
24
+ multi_json (1.7.3)
25
+ rake (10.0.4)
26
26
  rspec (1.3.2)
27
27
  sqlite3 (1.3.7)
28
28
  tzinfo (0.3.37)
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "enumlogic"
6
- s.version = "1.0.4"
6
+ s.version = "2.0.0"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Ben Johnson"]
9
9
  s.email = ["bjohnson@binarylogic.com"]
@@ -6,6 +6,7 @@ module Enumlogic
6
6
  #
7
7
  # class Computer < ActiveRecord::Base
8
8
  # enum :kind, ["apple", "dell", "hp"]
9
+ # # or....
9
10
  # enum :kind, {"apple" => "Apple", "dell" => "Dell", "hp" => "HP"}
10
11
  # end
11
12
  #
@@ -16,11 +17,13 @@ module Enumlogic
16
17
  # Computer.new(:kind => "unknown").valid? # false, automatically validates inclusion of the enum field
17
18
  #
18
19
  # c = Computer.new(:kind => "apple")
19
- # c.apple? # true
20
+ # c.kind_apple? # true, or c.apple? if :namespace => false
20
21
  # c.kind_key # :apple
21
22
  # c.kind_text # "apple" or "Apple" if you gave a hash with a user friendly text value
22
23
  # c.enum?(:kind) # true
23
24
  def enum(field, values, options = {})
25
+ namespace = options.key?(:namespace) ? options[:namespace] : true
26
+
24
27
  values_hash = if values.is_a?(Array)
25
28
  hash = {}
26
29
  values.each { |value| hash[value] = value }
@@ -52,7 +55,7 @@ module Enumlogic
52
55
 
53
56
  values_array.each do |value|
54
57
  method_name = value.underscore.gsub(/[-\s]/, '_')
55
- method_name = "#{method_name}_#{field}" if options[:namespace]
58
+ method_name = "#{field}_#{method_name}" if namespace
56
59
  define_method("#{method_name}?") do
57
60
  self.send(field) == value
58
61
  end
@@ -57,7 +57,7 @@ describe "Enumlogic" do
57
57
  end
58
58
 
59
59
  it "should create boolean methods" do
60
- Computer.enum :kind, ["apple", "dell", "hp", "HelloThere"]
60
+ Computer.enum :kind, ["apple", "dell", "hp", "HelloThere"], :namespace => false
61
61
  c = Computer.new(:kind => "apple")
62
62
  c.should be_apple
63
63
  c = Computer.new(:kind => "HelloThere")
@@ -67,7 +67,7 @@ describe "Enumlogic" do
67
67
  it "should namespace boolean methods" do
68
68
  Computer.enum :kind, ["apple", "dell", "hp"], :namespace => true
69
69
  c = Computer.new(:kind => "apple")
70
- c.should be_apple_kind
70
+ c.should be_kind_apple
71
71
  end
72
72
 
73
73
  it "should validate inclusion" do
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumlogic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 2.0.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Ben Johnson
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-03-20 00:00:00.000000000 Z
12
+ date: 2013-05-13 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activesupport
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: activerecord
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rake
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rspec
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ~>
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ~>
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: sqlite3
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -100,26 +111,27 @@ files:
100
111
  - spec/spec_helper.rb
101
112
  homepage: http://github.com/binarylogic/enumlogic
102
113
  licenses: []
103
- metadata: {}
104
114
  post_install_message:
105
115
  rdoc_options: []
106
116
  require_paths:
107
117
  - lib
108
118
  required_ruby_version: !ruby/object:Gem::Requirement
119
+ none: false
109
120
  requirements:
110
121
  - - ! '>='
111
122
  - !ruby/object:Gem::Version
112
123
  version: '0'
113
124
  required_rubygems_version: !ruby/object:Gem::Requirement
125
+ none: false
114
126
  requirements:
115
127
  - - ! '>='
116
128
  - !ruby/object:Gem::Version
117
129
  version: '0'
118
130
  requirements: []
119
131
  rubyforge_project:
120
- rubygems_version: 2.0.3
132
+ rubygems_version: 1.8.25
121
133
  signing_key:
122
- specification_version: 4
134
+ specification_version: 3
123
135
  summary: Adds enumerations to your models
124
136
  test_files:
125
137
  - spec/enumlogic_spec.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YWUxNDcwYzJkNmVjYmI0YWZkYjg2NDhjZGE1ZTU5MGZjZjU5OTA5MQ==
5
- data.tar.gz: !binary |-
6
- MjViMmM3MDFmOTgyZDc0ZmViNjE4YWJiNzk4ZjNiMDAwMzM0MDRjZA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZGQ3MTIyYTQxMTQxODkxNGUyNGM5YWEwODNkZWVlMWRmMDMyOWM0OTk5OTJk
10
- YWFiZDFjMmMyNTY0OTAwMjk4Y2I5MTFiOGI1MjczMmQyZWIwNDkxMTkxZjMw
11
- YThjNWNhZDI5ZWMyOGY4YTM4OTZmOTQ3NDliYTUyYzYzOTMxODE=
12
- data.tar.gz: !binary |-
13
- YTZlNWY1Y2E2NWEwZGM1MTg4NTg4ZWIxNzhkMTU0MGUwZWUxMGRiNDI5MmU2
14
- MTIwZjRiZjc5YjI2YTZiNDc5NzBjYTAyNWFlZWM5MjFmYjIzOWJlODEwODAy
15
- YjZjYjEyYTZmMWYyOGJjNGQ3ZTY4NDAxNzNlMWY4N2M3ZDUzMGQ=