has_constant 0.8.1 → 0.8.2
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.
- data/VERSION +1 -1
- data/has_constant.gemspec +2 -2
- data/lib/has_constant.rb +10 -2
- data/lib/has_constant/orm/mongoid.rb +18 -7
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2
|
data/has_constant.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{has_constant}
|
8
|
-
s.version = "0.8.
|
8
|
+
s.version = "0.8.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["mattbeedle"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-05-13}
|
13
13
|
s.description = %q{Allows certain fields to be limited to a set of values}
|
14
14
|
s.email = %q{mattbeedle@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/has_constant.rb
CHANGED
@@ -65,7 +65,11 @@ module HasConstant
|
|
65
65
|
end
|
66
66
|
|
67
67
|
define_method("#{singular}_is?") do |value|
|
68
|
-
send(singular) == value.to_s
|
68
|
+
truth = send(singular) == value.to_s
|
69
|
+
if !truth && I18n.locale.to_s != 'en'
|
70
|
+
truth = I18n.with_locale(:en) { send(singular) == value.to_s }
|
71
|
+
end
|
72
|
+
truth
|
69
73
|
end
|
70
74
|
|
71
75
|
define_method("#{singular}_is_not?") do |value|
|
@@ -73,7 +77,11 @@ module HasConstant
|
|
73
77
|
end
|
74
78
|
|
75
79
|
define_method("#{singular}_in?") do |value_list|
|
76
|
-
value_list.include? send(singular)
|
80
|
+
truth = value_list.include? send(singular)
|
81
|
+
if !truth && I18n.locale.to_s != 'en'
|
82
|
+
truth = I18n.with_locale(:en) { value_list.include?(send(singular)) }
|
83
|
+
end
|
84
|
+
truth
|
77
85
|
end
|
78
86
|
|
79
87
|
define_method("#{singular}_not_in?") do |value_list|
|
@@ -43,8 +43,14 @@ module HasConstant
|
|
43
43
|
named_scope :by_constant, lambda { |constant, value|
|
44
44
|
if self.send(constant.pluralize).respond_to?(:key)
|
45
45
|
value_for_query = self.send(constant.pluralize).key(value)
|
46
|
+
value_for_query ||= I18n.with_locale(:en) do
|
47
|
+
self.send(constant.pluralize).key(value)
|
48
|
+
end
|
46
49
|
else
|
47
50
|
value_for_query = self.send(constant.pluralize).index(value)
|
51
|
+
value_for_query ||= I18n.with_locale(:en) do
|
52
|
+
send(contant.pluralize).index(value)
|
53
|
+
end
|
48
54
|
end
|
49
55
|
where(constant.to_sym => value_for_query)
|
50
56
|
}
|
@@ -120,21 +126,26 @@ module HasConstant
|
|
120
126
|
define_method "#{singular}_is".to_sym do |values|
|
121
127
|
values = values.lines.to_a if values.respond_to?(:lines)
|
122
128
|
where(singular.to_sym.in => values.map do |v|
|
123
|
-
|
124
|
-
|
125
|
-
options.key(v)
|
129
|
+
if send(name).respond_to?(:key)
|
130
|
+
send(name).key(v) || I18n.with_locale(:en) { send(name).key(v) }
|
126
131
|
else
|
127
|
-
|
132
|
+
send(name).index(v) || I18n.with_locale(:en) { send(name).key(v) }
|
128
133
|
end
|
129
134
|
end)
|
130
135
|
end
|
131
136
|
|
132
137
|
define_method "#{singular}_is_not".to_sym do |values|
|
133
138
|
values = values.lines.to_a if values.respond_to?(:lines)
|
134
|
-
if
|
135
|
-
values_for_query = values.map { |v|
|
139
|
+
if send(plural).respond_to?(:key)
|
140
|
+
values_for_query = values.map { |v| send(plural).key(v) }.compact
|
141
|
+
values_for_query = values.map do |v|
|
142
|
+
I18n.with_locale(:en) { send(plural).key(v) }
|
143
|
+
end.compact if values_for_query.blank?
|
136
144
|
else
|
137
|
-
values_for_query = values.map { |v|
|
145
|
+
values_for_query = values.map { |v| send(plural).index(v) }.compact
|
146
|
+
values_for_query = values.map do |v|
|
147
|
+
I18n.with_locale(:en) { send(plural).index(v) }
|
148
|
+
end.compact if values_for_query.blank?
|
138
149
|
end
|
139
150
|
where(singular.to_sym.nin => values_for_query)
|
140
151
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_constant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 59
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 2
|
10
|
+
version: 0.8.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- mattbeedle
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-05-13 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|