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.
@@ -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.class.instance_eval do
9
- define_method "find_by_#{attribute}" do |value|
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
- return res if res
16
+ break if res
16
17
  end
17
18
 
18
- nil
19
+ return res
19
20
  end
20
21
 
21
- define_method "find_by_#{attribute}!" do |value|
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
- return res if res
33
+ break if res
32
34
  end
33
35
 
34
- raise ActiveRecord::RecordNotFound
36
+ res ? res : raise(ActiveRecord::RecordNotFound)
35
37
  end
36
38
  end
37
- end
39
+ RUBY
38
40
 
39
41
  # attribute setter
40
42
  define_method "#{attribute}=" do |value|
data/lib/armot/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Armot
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
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
@@ -3,8 +3,11 @@ ActiveRecord::Schema.define(:version => 1) do
3
3
  t.string :title
4
4
  t.text :text
5
5
  t.string :header
6
+ end
6
7
 
7
- t.timestamps
8
+ create_table :comments do |t|
9
+ t.string :msg
10
+ t.string :title
8
11
  end
9
12
 
10
13
  # I18n ar translations table
data/test/test_helper.rb CHANGED
@@ -23,6 +23,10 @@ def teardown_db
23
23
  end
24
24
  end
25
25
 
26
+ class Comment < ActiveRecord::Base
27
+ armotize :msg
28
+ end
29
+
26
30
  class Post < ActiveRecord::Base
27
31
  armotize :title, :text
28
32
  validates_presence_of :title
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.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: &76123990 !ruby/object:Gem::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: *76123990
24
+ version_requirements: *87407060
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activerecord
27
- requirement: &76123710 !ruby/object:Gem::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: *76123710
35
+ version_requirements: *87406700
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activesupport
38
- requirement: &76123480 !ruby/object:Gem::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: *76123480
46
+ version_requirements: *87406470
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &76123270 !ruby/object:Gem::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: *76123270
57
+ version_requirements: *87406240
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: sqlite3
60
- requirement: &76123020 !ruby/object:Gem::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: *76123020
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: -313670527
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: -313670527
114
+ hash: -243266093
115
115
  requirements: []
116
116
  rubyforge_project: armot
117
117
  rubygems_version: 1.8.6