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.
@@ -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.find_by_locale_and_value(I18n.locale, value.to_yaml)
11
- return send("where", {:"#{attribute}" => value}).first if trans.nil?
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
- find_by_id trans.key.split("_").last
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.find_by_locale_and_value(I18n.locale, value.to_yaml)
22
+ trans = I18n::Backend::ActiveRecord::Translation.where(:locale => I18n.locale, :value => value.to_yaml)
18
23
 
19
- if trans.nil?
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
- find trans.key.split("_").last
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
@@ -1,3 +1,3 @@
1
1
  module Armot
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
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
@@ -2,6 +2,7 @@ ActiveRecord::Schema.define(:version => 1) do
2
2
  create_table :posts do |t|
3
3
  t.string :title
4
4
  t.text :text
5
+ t.string :header
5
6
 
6
7
  t.timestamps
7
8
  end
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.1
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: &83553980 !ruby/object:Gem::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: *83553980
24
+ version_requirements: *76123990
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activerecord
27
- requirement: &83553730 !ruby/object:Gem::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: *83553730
35
+ version_requirements: *76123710
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activesupport
38
- requirement: &83553500 !ruby/object:Gem::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: *83553500
46
+ version_requirements: *76123480
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &83553310 !ruby/object:Gem::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: *83553310
57
+ version_requirements: *76123270
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: sqlite3
60
- requirement: &83553080 !ruby/object:Gem::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: *83553080
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: 809272723
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: 809272723
114
+ hash: -313670527
115
115
  requirements: []
116
116
  rubyforge_project: armot
117
117
  rubygems_version: 1.8.6