armot 0.2.2 → 0.2.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.
- data/lib/armot/active_record_extensions.rb +10 -8
- data/lib/armot/version.rb +1 -1
- data/test/armot_test.rb +20 -0
- data/test/schema.rb +4 -1
- data/test/test_helper.rb +4 -0
- metadata +13 -13
@@ -5,20 +5,21 @@ module Armot
|
|
5
5
|
make_it_armot! unless included_modules.include?(InstanceMethods)
|
6
6
|
|
7
7
|
attributes.each do |attribute|
|
8
|
-
self.
|
9
|
-
|
8
|
+
self.instance_eval <<-RUBY
|
9
|
+
def find_by_#{attribute}(value)
|
10
10
|
trans = I18n::Backend::ActiveRecord::Translation.where(:locale => I18n.locale, :value => value.to_yaml)
|
11
11
|
return send("where", {:"#{attribute}" => value}).first if trans.empty?
|
12
12
|
|
13
|
+
res = nil
|
13
14
|
trans.each do |x|
|
14
15
|
res = find_by_id x.key.split("_").last
|
15
|
-
|
16
|
+
break if res
|
16
17
|
end
|
17
18
|
|
18
|
-
|
19
|
+
return res
|
19
20
|
end
|
20
21
|
|
21
|
-
|
22
|
+
def find_by_#{attribute}!(value)
|
22
23
|
trans = I18n::Backend::ActiveRecord::Translation.where(:locale => I18n.locale, :value => value.to_yaml)
|
23
24
|
|
24
25
|
if trans.empty?
|
@@ -26,15 +27,16 @@ module Armot
|
|
26
27
|
raise ActiveRecord::RecordNotFound if original.nil?
|
27
28
|
original
|
28
29
|
else
|
30
|
+
res = nil
|
29
31
|
trans.each do |x|
|
30
32
|
res = find_by_id x.key.split("_").last
|
31
|
-
|
33
|
+
break if res
|
32
34
|
end
|
33
35
|
|
34
|
-
raise
|
36
|
+
res ? res : raise(ActiveRecord::RecordNotFound)
|
35
37
|
end
|
36
38
|
end
|
37
|
-
|
39
|
+
RUBY
|
38
40
|
|
39
41
|
# attribute setter
|
40
42
|
define_method "#{attribute}=" do |value|
|
data/lib/armot/version.rb
CHANGED
data/test/armot_test.rb
CHANGED
@@ -242,4 +242,24 @@ class ArmotTest < ActiveSupport::TestCase
|
|
242
242
|
Post.where(:header => "2").find_by_title! "Hola"
|
243
243
|
end
|
244
244
|
end
|
245
|
+
|
246
|
+
test "should not mix armotized class methods" do
|
247
|
+
foo = Comment.methods.include?(:find_by_title)
|
248
|
+
assert_equal false, foo
|
249
|
+
end
|
250
|
+
|
251
|
+
test "should not mix armotized class methods in Post" do
|
252
|
+
foo = Post.methods.include?(:find_by_msg)
|
253
|
+
assert_equal false, foo
|
254
|
+
end
|
255
|
+
|
256
|
+
test "should include the method in Comment" do
|
257
|
+
foo = Comment.methods.include?(:find_by_msg)
|
258
|
+
assert_equal true, foo
|
259
|
+
end
|
260
|
+
|
261
|
+
test "should include the method in Post" do
|
262
|
+
foo = Post.methods.include?(:find_by_title)
|
263
|
+
assert_equal true, foo
|
264
|
+
end
|
245
265
|
end
|
data/test/schema.rb
CHANGED
data/test/test_helper.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.3
|
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: &87407060 !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: *87407060
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activerecord
|
27
|
-
requirement: &
|
27
|
+
requirement: &87406700 !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: *87406700
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &87406470 !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: *87406470
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &87406240 !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: *87406240
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: sqlite3
|
60
|
-
requirement: &
|
60
|
+
requirement: &87405880 !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: *87405880
|
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: -243266093
|
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: -243266093
|
115
115
|
requirements: []
|
116
116
|
rubyforge_project: armot
|
117
117
|
rubygems_version: 1.8.6
|