labelizer 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/labelizer.rb +30 -11
- data/lib/labelizer/version.rb +1 -1
- data/version.txt +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
N2EzMmY1OTlhZGExMDUyNTM3NWYwNjY4MzA2ZDMwOTBkNThiZDUzMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MGU1OGM5MjZjNjkwZTE3YzI2YmM5OTc2ZjI0NGRlOTM4Yjk2YzAyYQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTIzMjc5YjAyNDAyMTk5YThlNTI3YzU3ZGVhNjM0ZTk5NDFlNWRjNzRjMDdk
|
10
|
+
MjY5MTU1Yjk5YzEzY2JhOWJkODM1NGUzODhmNTc5MjdiOWM4MjlmOTdhZmM3
|
11
|
+
MDIxODNmNzU3M2Y3ZmUwZGU4MDVhMTY0NTMxZGZmZjNiMDgwZmE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
:
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
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
|
data/lib/labelizer/version.rb
CHANGED
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|