armot 0.2.1 → 0.2.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/lib/armot/active_record_extensions.rb +16 -6
- data/lib/armot/version.rb +1 -1
- data/test/armot_test.rb +25 -0
- data/test/schema.rb +1 -0
- metadata +13 -13
@@ -7,21 +7,31 @@ module Armot
|
|
7
7
|
attributes.each do |attribute|
|
8
8
|
self.class.instance_eval do
|
9
9
|
define_method "find_by_#{attribute}" do |value|
|
10
|
-
trans = I18n::Backend::ActiveRecord::Translation.
|
11
|
-
return send("where", {:"#{attribute}" => value}).first if trans.
|
10
|
+
trans = I18n::Backend::ActiveRecord::Translation.where(:locale => I18n.locale, :value => value.to_yaml)
|
11
|
+
return send("where", {:"#{attribute}" => value}).first if trans.empty?
|
12
12
|
|
13
|
-
|
13
|
+
trans.each do |x|
|
14
|
+
res = find_by_id x.key.split("_").last
|
15
|
+
return res if res
|
16
|
+
end
|
17
|
+
|
18
|
+
nil
|
14
19
|
end
|
15
20
|
|
16
21
|
define_method "find_by_#{attribute}!" do |value|
|
17
|
-
trans = I18n::Backend::ActiveRecord::Translation.
|
22
|
+
trans = I18n::Backend::ActiveRecord::Translation.where(:locale => I18n.locale, :value => value.to_yaml)
|
18
23
|
|
19
|
-
if trans.
|
24
|
+
if trans.empty?
|
20
25
|
original = send("where", {:"#{attribute}" => value}).first
|
21
26
|
raise ActiveRecord::RecordNotFound if original.nil?
|
22
27
|
original
|
23
28
|
else
|
24
|
-
|
29
|
+
trans.each do |x|
|
30
|
+
res = find_by_id x.key.split("_").last
|
31
|
+
return res if res
|
32
|
+
end
|
33
|
+
|
34
|
+
raise ActiveRecord::RecordNotFound
|
25
35
|
end
|
26
36
|
end
|
27
37
|
end
|
data/lib/armot/version.rb
CHANGED
data/test/armot_test.rb
CHANGED
@@ -217,4 +217,29 @@ class ArmotTest < ActiveSupport::TestCase
|
|
217
217
|
post.title = "Another change"
|
218
218
|
assert_equal true, post.title_changed?
|
219
219
|
end
|
220
|
+
|
221
|
+
test "should find the correct record when there are conflicting names and scopes" do
|
222
|
+
post = Post.first
|
223
|
+
post.title = "Hola"
|
224
|
+
post.header = "1"
|
225
|
+
post.save!
|
226
|
+
|
227
|
+
post2 = Post.create! :title => "Hola", :header => "2"
|
228
|
+
|
229
|
+
foo = Post.where(:header => "2").find_by_title "Hola"
|
230
|
+
assert_equal post2, foo
|
231
|
+
end
|
232
|
+
|
233
|
+
test "should find the correct record when there are conflicting names and scopes with bang" do
|
234
|
+
post = Post.first
|
235
|
+
post.title = "Hola"
|
236
|
+
post.header = "1"
|
237
|
+
post.save!
|
238
|
+
|
239
|
+
post2 = Post.create! :title => "Hola", :header => "2"
|
240
|
+
|
241
|
+
assert_nothing_raised do
|
242
|
+
Post.where(:header => "2").find_by_title! "Hola"
|
243
|
+
end
|
244
|
+
end
|
220
245
|
end
|
data/test/schema.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: armot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-09-27 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n-active_record
|
16
|
-
requirement: &
|
16
|
+
requirement: &76123990 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.0.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *76123990
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activerecord
|
27
|
-
requirement: &
|
27
|
+
requirement: &76123710 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 3.0.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *76123710
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &76123480 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *76123480
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &76123270 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *76123270
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: sqlite3
|
60
|
-
requirement: &
|
60
|
+
requirement: &76123020 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *76123020
|
69
69
|
description: translation support for your models with an I18n active-record backend
|
70
70
|
email:
|
71
71
|
- roger@itnig.net
|
@@ -102,7 +102,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
102
|
version: '0'
|
103
103
|
segments:
|
104
104
|
- 0
|
105
|
-
hash:
|
105
|
+
hash: -313670527
|
106
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
108
|
requirements:
|
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
version: '0'
|
112
112
|
segments:
|
113
113
|
- 0
|
114
|
-
hash:
|
114
|
+
hash: -313670527
|
115
115
|
requirements: []
|
116
116
|
rubyforge_project: armot
|
117
117
|
rubygems_version: 1.8.6
|