hstore_translate 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hstore_translate (0.0.3)
5
- activerecord
4
+ hstore_translate (0.0.4)
5
+ activerecord (>= 3.1.0)
6
6
  activerecord-postgres-hstore (~> 0.4.0)
7
7
 
8
8
  GEM
@@ -45,16 +45,16 @@ GEM
45
45
  hike (1.2.1)
46
46
  i18n (0.6.1)
47
47
  journey (1.0.4)
48
- json (1.7.6)
48
+ json (1.7.7)
49
49
  mail (2.4.4)
50
50
  i18n (>= 0.4.0)
51
51
  mime-types (~> 1.16)
52
52
  treetop (~> 1.4.8)
53
- mime-types (1.19)
54
- multi_json (1.5.0)
53
+ mime-types (1.21)
54
+ multi_json (1.6.1)
55
55
  pg (0.14.1)
56
56
  polyglot (0.3.3)
57
- rack (1.4.1)
57
+ rack (1.4.5)
58
58
  rack-cache (1.2)
59
59
  rack (>= 0.4)
60
60
  rack-ssl (1.3.2)
@@ -77,7 +77,7 @@ GEM
77
77
  rdoc (~> 3.4)
78
78
  thor (>= 0.14.6, < 2.0)
79
79
  rake (10.0.3)
80
- rdoc (3.12)
80
+ rdoc (3.12.2)
81
81
  json (~> 1.4)
82
82
  sprockets (2.2.2)
83
83
  hike (~> 1.2)
data/README.md CHANGED
@@ -47,7 +47,7 @@ I18n.locale = :he
47
47
  post.title # => אתר זה טוב
48
48
  ```
49
49
 
50
- You also have locale-specific convenience methods:
50
+ You also have locale-specific convenience methods from [easy_globalize3_accessors](https://github.com/paneq/easy_globalize3_accessors):
51
51
 
52
52
  ```ruby
53
53
  I18n.locale = :en
@@ -20,6 +20,7 @@ module HstoreTranslate
20
20
  RUBY
21
21
  end
22
22
 
23
+ alias_method_chain :respond_to?, :translates
23
24
  alias_method_chain :method_missing, :translates
24
25
  end
25
26
 
@@ -45,20 +46,34 @@ module HstoreTranslate
45
46
  value
46
47
  end
47
48
 
49
+ def respond_to_with_translates?(symbol, include_all = false)
50
+ return true if parse_translated_attribute_accessor(symbol)
51
+ respond_to_without_translates?(symbol, include_all)
52
+ end
53
+
48
54
  def method_missing_with_translates(method_name, *args)
49
- return method_missing_without_translates(method_name, *args) unless
50
- method_name =~ /\A([a-z_]+)_([a-z]{2})(=?)\z/ &&
51
- (attr_name = $1.to_sym) && translated_attrs.include?(attr_name)
55
+ translated_attr_name, locale, assigning = parse_translated_attribute_accessor(method_name)
52
56
 
53
- locale = $2.to_sym
54
- assigning = $3.present?
57
+ return method_missing_without_translates(method_name, *args) unless translated_attr_name
55
58
 
56
59
  if assigning
57
- write_hstore_translation(attr_name, args.first, locale)
60
+ write_hstore_translation(translated_attr_name, args.first, locale)
58
61
  else
59
- read_hstore_translation(attr_name, locale)
62
+ read_hstore_translation(translated_attr_name, locale)
60
63
  end
61
64
  end
65
+
66
+ def parse_translated_attribute_accessor(method_name)
67
+ return unless method_name =~ /\A([a-z_]+)_([a-z]{2})(=?)\z/
68
+
69
+ translated_attr_name = $1.to_sym
70
+ return unless translated_attrs.include?(translated_attr_name)
71
+
72
+ locale = $2.to_sym
73
+ assigning = $3.present?
74
+
75
+ [translated_attr_name, locale, assigning]
76
+ end
62
77
  end
63
78
  end
64
79
  end
@@ -1,3 +1,3 @@
1
1
  module HstoreTranslate
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hstore_translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: