enumlogic 1.0.4 → 2.0.0

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.
@@ -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=