labelizer 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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YWI4ZjBkZDczNDk4ZTZjNjMwNmJhNmUzMTU5NDU2ODFiYWUzNGI1MA==
4
+ N2EzMmY1OTlhZGExMDUyNTM3NWYwNjY4MzA2ZDMwOTBkNThiZDUzMg==
5
5
  data.tar.gz: !binary |-
6
- N2QyYmNmNDBiMjUwNTU3NDQ1YjIwZDhmNWFjNWMwNmU4ZjY3NDY4OQ==
6
+ MGU1OGM5MjZjNjkwZTE3YzI2YmM5OTc2ZjI0NGRlOTM4Yjk2YzAyYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YmFmODhjZDA5MzFlMzcxMTBjYzYxZjk4ZjNhODFhODg5ZjJjMjBkNzdlMWNj
10
- MGMyYjk5ZTYyZjRlZDZmZmI0OWEyZjFkZjFjNmQzNTFhYWZkM2UwNGU2MDZj
11
- NmY3ZGZiODVjNGJiZmQyZmE0OThlMTQzNDQzNjgzNmFlNDJjNGU=
9
+ MTIzMjc5YjAyNDAyMTk5YThlNTI3YzU3ZGVhNjM0ZTk5NDFlNWRjNzRjMDdk
10
+ MjY5MTU1Yjk5YzEzY2JhOWJkODM1NGUzODhmNTc5MjdiOWM4MjlmOTdhZmM3
11
+ MDIxODNmNzU3M2Y3ZmUwZGU4MDVhMTY0NTMxZGZmZjNiMDgwZmE=
12
12
  data.tar.gz: !binary |-
13
- MzJkOGExZjZjNmI1YTI0Y2M4NjFmOGFjZjM2N2Y0YWQ5NjA5ZjRjZWFkYjQ0
14
- NTc2ZDFlZTg0OWFkNDRhNjlkMDQ3ZDIwYzk5MzE1NWQzM2NmNWVhM2FmYmY0
15
- MGIwYjZmZWI4MTk5NTY2ZDQ4M2E4N2VjYTdjNTE4MWJmM2U5NTU=
13
+ YzY2ZDMzZTYxMTM3M2IwZmQ4ZjdjZjgzNWUyYmEyOTUyNjY0NGI3YTFhMzU1
14
+ ZjViNjk1MzNhN2UzMzRlNWRjOWM3YTY2ZTJmZjJlZGU0MWI1OGY0ZjE2ZTYx
15
+ YzkzNzk0ZTU2NmNjZDY1NzY1ZTk3Y2QyNDJhZGM3MjRjODg2NDY=
data/lib/labelizer.rb CHANGED
@@ -24,6 +24,9 @@ module Labelizer
24
24
 
25
25
  def labelize(attr_name, label_types, converter: {})
26
26
  label_types = label_types.map(&:to_sym)
27
+ raise ArgumentError, "label types can't include :value" if label_types.include?(:value)
28
+
29
+ label_types << :value
27
30
 
28
31
  define_method :"#{attr_name}_labelized" do
29
32
  labelized[attr_name]
@@ -44,22 +47,38 @@ module Labelizer
44
47
  }
45
48
  else
46
49
  value_labelized[value] = Container.new(label_types){|h,label_type|
47
- result = ::I18n.translate(
48
- "labelizer.#{model}.#{attr}.#{value}.#{label_type}",
49
- default: [
50
- :"labelizer.#{model}.#{attr}.#{label_type}",
51
- :"labelizer.#{model}.#{label_type}",
52
- :"labelizer.#{label_type}",
53
- "",
54
- ],
55
- )
56
- if c = converter[label_type]
57
- result = c[result]
50
+ if label_type == :value
51
+ result = value
52
+ else
53
+ result = ::I18n.translate(
54
+ "labelizer.#{model}.#{attr}.#{value}.#{label_type}",
55
+ default: [
56
+ :"labelizer.#{model}.#{attr}.#{label_type}",
57
+ :"labelizer.#{model}.#{label_type}",
58
+ :"labelizer.#{label_type}",
59
+ "",
60
+ ],
61
+ )
62
+ if c = converter[label_type]
63
+ result = c[result]
64
+ end
58
65
  end
59
66
  h[label_type] = result
60
67
  }
61
68
  end
62
69
  }
70
+
71
+ attr_labelized[attr].singleton_class.class_eval do
72
+ define_method :pluck do |*require_label_types|
73
+ map{|value,label_type_labelized|
74
+ require_label_types.map{|require_label_type|
75
+ label_type_labelized[require_label_type]
76
+ }
77
+ }
78
+ end
79
+ end
80
+
81
+ attr_labelized[attr]
63
82
  }
64
83
 
65
84
  @labelized.instance_variable_get(:@keys) << attr_name
@@ -1,3 +1,3 @@
1
1
  module Labelizer
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/version.txt CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
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.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - shun