translates_fields 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ module TranslatesFields
2
+ def self.included(base)
3
+ base.extend(ClassMethods)
4
+ end
5
+
6
+ module ClassMethods
7
+ def translates(field)
8
+ serialize field
9
+
10
+ send :define_method, "#{field}=".to_sym do |*args|
11
+ if args.first.is_a?(Array)
12
+ key = args.first.shift
13
+ options = args.first.pop
14
+ else
15
+ key = args.first
16
+ options = {}
17
+ end
18
+ write_attribute(field, [key, options])
19
+ end
20
+
21
+ send :define_method, field do
22
+ scope = read_attribute(field).first
23
+ options = read_attribute(field).last
24
+ key = "app.models.#{self.class.to_s.underscore}.attributes.#{field}.#{scope}".to_sym
25
+ I18n.translate(key, options)
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+
32
+ ActiveRecord::Base.send(:include, TranslatesFields)
@@ -0,0 +1,3 @@
1
+ module TranslatesFields
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: translates_fields
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Christopher Dell
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-14 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: gem-release
16
+ requirement: &2152996680 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *2152996680
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &2152996180 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - =
31
+ - !ruby/object:Gem::Version
32
+ version: 2.5.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *2152996180
36
+ - !ruby/object:Gem::Dependency
37
+ name: activerecord
38
+ requirement: &2152995620 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - =
42
+ - !ruby/object:Gem::Version
43
+ version: 3.0.10
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2152995620
47
+ - !ruby/object:Gem::Dependency
48
+ name: i18n
49
+ requirement: &2152995160 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - =
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2152995160
58
+ - !ruby/object:Gem::Dependency
59
+ name: sqlite3
60
+ requirement: &2152994760 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *2152994760
69
+ description: ! '[description]'
70
+ email: chris@tigrish.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - lib/translates_fields/translates_fields.rb
76
+ - lib/translates_fields/version.rb
77
+ homepage: https://github.com/Locale/translates_fields
78
+ licenses: []
79
+ post_install_message:
80
+ rdoc_options: []
81
+ require_paths:
82
+ - lib
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project: ! '[none]'
97
+ rubygems_version: 1.8.6
98
+ signing_key:
99
+ specification_version: 3
100
+ summary: ! '[summary]'
101
+ test_files: []