enumbler 0.6.14 → 0.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66bbc4c564df073b9bc20f03c8910c4f20c41d807c263f07184ad858e9cb96eb
4
- data.tar.gz: cedfcee8d80c6a453c8ddea9954c40405da2558d3be9e603fc0d5f6d8bf42986
3
+ metadata.gz: bd8d1d86b3abe14b9454f4b36519d41c7d21e6544c749e5db19215d790a4b3dc
4
+ data.tar.gz: 44a694212c3feaa9aad8ea5dacd0ca370105e8dc69fe6196b67b158fd0f4ba63
5
5
  SHA512:
6
- metadata.gz: e3ed4b05cd073b3586922f4836e7529ae8f9360c8bf5231d4ba436abe176c788577db93215af9ef9d675da48ae15ffe796db81cdefb3c55f1d8f8ae741f4390d
7
- data.tar.gz: dba88529dafd834bf7c5dbd522b52fadb6ab18b975493e091ba349c1a10dee5652dac21ad5b70e50f231e6620bca909768a0fa3219eb105a59ebafc75389d30d
6
+ metadata.gz: 374e370ed1e6ff6575b0d494d57f20b95ebf25116382dbabe723a4450a06e4bf53a1ae688576e632fbbaabd97c4d5aa35f8a048fc71d76caf7d739a2a7d5676a
7
+ data.tar.gz: 51772747de3d1e9e3ac2012c1a91223c68470f7caa96127807b30c398870965e781fa813f297fc2a28fa8dfe25bc8a4174836ab8035ce2bcb6eae4e7d41ddf9a
data/.gitignore CHANGED
@@ -9,5 +9,6 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ .byebug_history
12
13
 
13
14
  tags*
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- enumbler (0.6.14)
4
+ enumbler (0.7.0)
5
5
  activerecord (>= 5.2.3, < 6.1)
6
6
  activesupport (>= 5.2.3, < 6.1)
7
7
 
@@ -19,7 +19,8 @@ GEM
19
19
  minitest (~> 5.1)
20
20
  tzinfo (~> 1.1)
21
21
  zeitwerk (~> 2.2, >= 2.2.2)
22
- ast (2.4.0)
22
+ ast (2.4.1)
23
+ coderay (1.1.2)
23
24
  concurrent-ruby (1.1.6)
24
25
  database_cleaner (1.8.5)
25
26
  database_cleaner-active_record (1.8.0)
@@ -31,13 +32,17 @@ GEM
31
32
  ruby-progressbar (~> 1.4)
32
33
  i18n (1.8.2)
33
34
  concurrent-ruby (~> 1.0)
34
- jaro_winkler (1.5.4)
35
+ method_source (1.0.0)
35
36
  minitest (5.14.1)
36
37
  parallel (1.19.1)
37
- parser (2.7.1.3)
38
- ast (~> 2.4.0)
38
+ parser (2.7.1.4)
39
+ ast (~> 2.4.1)
40
+ pry (0.13.1)
41
+ coderay (~> 1.1)
42
+ method_source (~> 1.0)
39
43
  rainbow (3.0.0)
40
44
  rake (12.3.3)
45
+ regexp_parser (1.7.1)
41
46
  rexml (3.2.4)
42
47
  rspec (3.9.0)
43
48
  rspec-core (~> 3.9.0)
@@ -52,14 +57,17 @@ GEM
52
57
  diff-lcs (>= 1.2.0, < 2.0)
53
58
  rspec-support (~> 3.9.0)
54
59
  rspec-support (3.9.3)
55
- rubocop (0.81.0)
56
- jaro_winkler (~> 1.5.1)
60
+ rubocop (0.91.0)
57
61
  parallel (~> 1.10)
58
- parser (>= 2.7.0.1)
62
+ parser (>= 2.7.1.1)
59
63
  rainbow (>= 2.2.2, < 4.0)
64
+ regexp_parser (>= 1.7)
60
65
  rexml
66
+ rubocop-ast (>= 0.4.0, < 1.0)
61
67
  ruby-progressbar (~> 1.7)
62
68
  unicode-display_width (>= 1.4.0, < 2.0)
69
+ rubocop-ast (0.4.0)
70
+ parser (>= 2.7.1.4)
63
71
  ruby-progressbar (1.10.1)
64
72
  sqlite3 (1.4.2)
65
73
  thread_safe (0.3.6)
@@ -75,9 +83,10 @@ DEPENDENCIES
75
83
  database_cleaner-active_record (~> 1.8.0)
76
84
  enumbler!
77
85
  fuubar (~> 2.5)
86
+ pry
78
87
  rake (~> 12.0)
79
88
  rspec (~> 3.9.0)
80
- rubocop (~> 0.81.0)
89
+ rubocop (~> 0.91.0)
81
90
  sqlite3 (~> 1.4.0)
82
91
 
83
92
  BUNDLED WITH
data/README.md CHANGED
@@ -108,12 +108,14 @@ House.color(Color.black, :white) # => ActiveRecord::Relation<house, house2>
108
108
 
109
109
  ### Use a column other than `label`
110
110
 
111
- By default, the Enumbler expects a table in the database with a column `label`. However, you can change this to another underlying column name. Note that the enumbler still treats it as a `label` column; however it will be saved to the correct place in the database.
111
+ By default, the Enumbler expects a table in the database with a column `label`. However, you can change this to another underlying column name. Note that the enumbler still treats it as a `label` column; however it will be saved to the correct place in the database. Your model now can have its own `label` separate from whatever attribute/column was
112
+ specified for Enumbler usage.
112
113
 
113
114
  ```ruby
114
115
  ActiveRecord::Schema.define do
115
116
  create_table :feelings, force: true do |t|
116
117
  t.string :emotion, null: false, index: { unique: true }
118
+ t.string :label
117
119
  end
118
120
  end
119
121
 
@@ -125,8 +127,15 @@ class Feeling < ApplicationRecord
125
127
 
126
128
  enumble :sad, 1
127
129
  enumble :happy, 2
128
- enumble :verklempt, 3, label: 'overcome with emotion'
130
+ enumble :verklempt, 3, label: "Verklempt!", emotion: 'overcome with emotion'
129
131
  end
132
+
133
+ # Now the `Feeling` model can use `label` if it wants to
134
+ # and not conflict with Enumbler usage (:emotion in this case)
135
+ # .enumble.label & .emotion is used internally by Enumbler
136
+ Feeling.verklempt.label # => 'Verklempt!'
137
+ Feeling.verklempt.enumble.label # => 'overcome with emotion'
138
+ Feeling.verklempt.emotion # => 'overcome with emotion'
130
139
  ```
131
140
 
132
141
  ## Core ext
@@ -140,6 +149,7 @@ when :black
140
149
  when :blue, :purple
141
150
  'very surprised'
142
151
  end
152
+ ```
143
153
 
144
154
  ## Development
145
155
 
@@ -34,8 +34,9 @@ Gem::Specification.new do |spec|
34
34
 
35
35
  spec.add_development_dependency 'database_cleaner-active_record', '~> 1.8.0'
36
36
  spec.add_development_dependency 'fuubar', '~> 2.5'
37
+ spec.add_development_dependency 'pry'
37
38
  spec.add_development_dependency 'rake', '~> 12.0'
38
39
  spec.add_development_dependency 'rspec', '~> 3.9.0'
39
- spec.add_development_dependency 'rubocop', '~> 0.81.0'
40
+ spec.add_development_dependency 'rubocop', '~> 0.91.0'
40
41
  spec.add_development_dependency 'sqlite3', '~> 1.4.0'
41
42
  end
@@ -8,9 +8,10 @@ module Enumbler
8
8
  def initialize(enum, id, label: nil, label_column_name: :label, **attributes)
9
9
  @id = id
10
10
  @enum = enum
11
- @label = label || enum.to_s.dasherize
12
11
  @label_column_name = label_column_name
12
+ @label = (label_col_specified? ? attributes[label_column_name] : label) || enum.to_s.dasherize
13
13
  @additional_attributes = attributes || {}
14
+ @additional_attributes.merge!({ label: label }) if label_col_specified?
14
15
  end
15
16
 
16
17
  def ==(other)
@@ -19,10 +20,9 @@ module Enumbler
19
20
  end
20
21
 
21
22
  def attributes
22
- @additional_attributes.merge({
23
- id: id,
24
- label_column_name => label,
25
- })
23
+ hash = { id: id, label_column_name => label }
24
+ hash.merge!({ label: @additional_attributes[:label] }) if label_col_specified?
25
+ @additional_attributes.merge(hash)
26
26
  end
27
27
 
28
28
  # Used to return itself from a class method.
@@ -50,5 +50,11 @@ module Enumbler
50
50
  def to_s
51
51
  enum
52
52
  end
53
+
54
+ private
55
+
56
+ def label_col_specified?
57
+ label_column_name != :label
58
+ end
53
59
  end
54
60
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Enumbler
4
- VERSION = '0.6.14'
4
+ VERSION = '0.7.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumbler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.14
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damon Timm
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-29 00:00:00.000000000 Z
11
+ date: 2020-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -78,6 +78,20 @@ dependencies:
78
78
  - - "~>"
79
79
  - !ruby/object:Gem::Version
80
80
  version: '2.5'
81
+ - !ruby/object:Gem::Dependency
82
+ name: pry
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
81
95
  - !ruby/object:Gem::Dependency
82
96
  name: rake
83
97
  requirement: !ruby/object:Gem::Requirement
@@ -112,14 +126,14 @@ dependencies:
112
126
  requirements:
113
127
  - - "~>"
114
128
  - !ruby/object:Gem::Version
115
- version: 0.81.0
129
+ version: 0.91.0
116
130
  type: :development
117
131
  prerelease: false
118
132
  version_requirements: !ruby/object:Gem::Requirement
119
133
  requirements:
120
134
  - - "~>"
121
135
  - !ruby/object:Gem::Version
122
- version: 0.81.0
136
+ version: 0.91.0
123
137
  - !ruby/object:Gem::Dependency
124
138
  name: sqlite3
125
139
  requirement: !ruby/object:Gem::Requirement