labelizer 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTQ0N2QyMDA2NDY5NDYwYjgxY2IzZjJhZTg3ODM3ZDEzOWUyNTcxMQ==
4
+ NjdiNzMyY2I5YzkzZTI4NDcwMmQ4Y2Q2YzM0ODM5MWIzZWZjZjRlZQ==
5
5
  data.tar.gz: !binary |-
6
- MmQ5MWY2YTNjYjI5ODljN2FkYjIwNzE3ZDI5MmU1YmVmYzViZDljYw==
6
+ YmQyMDAwZjViOTAwMThiMGJlZDgyMGQwZmFlZmE2M2U5MWMwZWU0MQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OTQxY2EwOWMyYTQ5Y2JlNjQ1OTkzMzkyYzE5ZTA1NTQzMjEwMjZkOGVkZDMz
10
- MmM0YTRlOWI2ZmUzMmE0MGQ1MjQ5MjJjYzlmYTFiOTg4MGVkMjFjY2Y0OTBl
11
- NDg5NWIzNDEyMzgwMDc3OWYwYmE0ZTYzZWY1YWJkZTNmNmIzY2M=
9
+ Mjc0ZjFjODY5OWNiNmEzYzNlYjExZDg5MzllNTA1NDk5MDc5YmQ2NWE1OGNj
10
+ YzMwYTFjYzFhOTcxMDhhNmU3MGQ3ZDdiZDJkMzJlZmRlMjJhMzRhMWU1YmIw
11
+ Mjc3ZjU1YjA1ODU3NGYzYmNkNDA0NjA0NGI3ZDk5ZmVmODhmNjg=
12
12
  data.tar.gz: !binary |-
13
- M2ZiY2UyYzBmODliYWU4NGFhOWU3ODUzNmY4NjMxMDY5MjRmZTRjMWQ3OWUy
14
- ZmNjNjI4NTU0MjAyN2M5MGEyMmVjMjFjOTljZjg3ODM0MjViZTJmMTNjZmU1
15
- YmJlMDQ2NGY5ZGFlYmMzN2E1MWZjMWM3ZDk4NTI4ZDA2ZDcxNjk=
13
+ OTNiOTIyZmMxYzcwZDkyMDIzN2UyMGRmZDdhNmI4NDc2YWM5ZmViMjlmN2Jj
14
+ NjA3Y2MxOWMwYzViNmRmNzQ2Zjc5NDQ2Mjk4NDNiNDM1M2Q2OGVmYjZmMTAy
15
+ MzM3N2E5ZmYyMTc3YmM0ZDQyOTdkZmM4MDM1OGEzODkzYzJiNGE=
data/README.md CHANGED
@@ -24,9 +24,17 @@ Or install it yourself as:
24
24
  ## Usage
25
25
 
26
26
  ```ruby
27
- # config/initializers/labelizer.rb
28
- Labelizer.configure do |config|
29
- config.labels = %w(label description color)
27
+ # app/models/my_model.rb
28
+ class Customer < ApplicationModel
29
+ enum registration_state: {
30
+ starting: 0,
31
+ confirming: 1,
32
+ completed: 2,
33
+ }
34
+
35
+ include Labelizer
36
+
37
+ labelize :registration_state, %w(label description color)
30
38
  end
31
39
  ```
32
40
 
@@ -50,21 +58,6 @@ ja:
50
58
  color: label label-success
51
59
  ```
52
60
 
53
- ```ruby
54
- # app/models/my_model.rb
55
- class Customer < ApplicationModel
56
- enum registration_state: {
57
- starting: 0,
58
- confirming: 1,
59
- completed: 2,
60
- }
61
-
62
- include Labelizer
63
-
64
- labelize :registration_state
65
- end
66
- ```
67
-
68
61
  ```erb
69
62
  # app/views/customers/show.html.erb
70
63
  <% customer = Customer.find id %>
@@ -93,15 +86,12 @@ end
93
86
  Convert label:
94
87
 
95
88
  ```ruby
96
- # config/initializers/labelizer.rb
97
- Labelizer.configure do |config|
98
- config.converter = {
99
- color: ->(value){
100
- # value : attribute value
101
- "label label-#{value}"
102
- },
103
- }
104
- end
89
+ labelize :registration_state, %w(label description color), converter: {
90
+ color: ->(value){
91
+ # value : attribute value
92
+ "label label-#{value}"
93
+ },
94
+ }
105
95
  ```
106
96
 
107
97
  ```yaml
data/lib/labelizer.rb CHANGED
@@ -3,39 +3,29 @@ require "i18n"
3
3
  require "labelizer/version"
4
4
 
5
5
  module Labelizer
6
- class << self
7
- def configure
8
- yield config
9
- end
10
-
11
- private
12
-
13
- def config
14
- @config ||= OpenStruct.new
15
- end
16
- end
17
-
18
6
  def self.included(base)
19
7
  base.send :extend, ClassMethods
20
8
  end
21
9
 
22
10
  module ClassMethods
23
- def labelize(*attrs)
24
- attrs.each do |attr|
25
- define_method :"#{attr}_labelized" do
26
- self.class.labelized[attr][__send__(attr)]
27
- end
11
+ def labelize(attr, labels, converter: {})
12
+ @labelizer_converters ||= {}
13
+ @labelizer_converters[attr.to_sym] = converter
14
+
15
+ define_method :"#{attr}_labelized" do
16
+ self.class.labelized[attr][__send__(attr)]
17
+ end
28
18
 
29
- (Labelizer.__send__(:config).labels || []).each do |label|
30
- define_method :"#{attr}_#{label}" do
31
- self.class.labelized[attr][__send__(attr)][label]
32
- end
19
+ labels.each do |label|
20
+ define_method :"#{attr}_#{label}" do
21
+ self.class.labelized[attr][__send__(attr)][label]
33
22
  end
34
23
  end
35
24
  end
36
25
  def labelized
37
26
  model = model_name.i18n_key
38
27
  @labelized ||= Hash.new{|h,attr|
28
+ converters = @labelizer_converters && @labelizer_converters[attr.to_sym]
39
29
  h[attr] = Hash.new{|h,value|
40
30
  h[value] = Hash.new{|h,label|
41
31
  result = ::I18n.translate(
@@ -48,7 +38,7 @@ module Labelizer
48
38
  ],
49
39
  raise: true,
50
40
  ) rescue value
51
- if converter = (Labelizer.__send__(:config).converter || {})[label.to_sym]
41
+ if converter = converters && converters[label.to_sym]
52
42
  result = converter[result]
53
43
  end
54
44
  h[value] = result
@@ -1,3 +1,3 @@
1
1
  module Labelizer
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/version.txt CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: labelizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - shun