translatable 0.1.4 → 0.2.0
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/README.rdoc +4 -2
- data/VERSION +1 -1
- data/lib/translatable.rb +21 -3
- data/test/messages.rb +1 -1
- data/test/news.rb +1 -0
- data/test/posts.rb +1 -0
- data/test/test_translatable.rb +9 -0
- data/translatable.gemspec +1 -1
- metadata +16 -16
data/README.rdoc
CHANGED
@@ -72,9 +72,10 @@ Block accepts following methods:
|
|
72
72
|
OR
|
73
73
|
translatable_locale :lang
|
74
74
|
|
75
|
+
translatable_attr_accessible
|
75
76
|
translatable_attr_protected
|
76
|
-
If this line is set then the attributes :locale and :origin will be protected
|
77
|
-
mass-assigment
|
77
|
+
If this line is set then the attributes :locale and :origin will be allowed or protected
|
78
|
+
from for mass-assigment.
|
78
79
|
|
79
80
|
Note: Note sure that this is the best implementation. Would appreciate any better ideas.
|
80
81
|
|
@@ -140,6 +141,7 @@ Models:
|
|
140
141
|
translatable :content, :presence => true
|
141
142
|
translatable_model "TranslatedNews"
|
142
143
|
translatable_origin :origin_id
|
144
|
+
translatable_attr_accessible
|
143
145
|
end
|
144
146
|
|
145
147
|
attr_accessible :author_id, :author
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/translatable.rb
CHANGED
@@ -118,7 +118,21 @@ module ActiveRecord
|
|
118
118
|
# Default: false
|
119
119
|
#
|
120
120
|
def translatable_attr_protected
|
121
|
-
@translatable[:
|
121
|
+
@translatable[:attr_accessible] = false
|
122
|
+
end
|
123
|
+
|
124
|
+
###
|
125
|
+
# Will not register the attributes as accessible.
|
126
|
+
# IMPORTANT: Translatable block will be evaluated on the model after it
|
127
|
+
# was loaded, so it will modify certain thing on final version. Hence this thing is needed.
|
128
|
+
# Examples:
|
129
|
+
#
|
130
|
+
# translatable_attr_protected
|
131
|
+
#
|
132
|
+
# Default: false
|
133
|
+
#
|
134
|
+
def translatable_attr_accessible
|
135
|
+
@translatable[:attr_accessible] = true
|
122
136
|
end
|
123
137
|
|
124
138
|
###
|
@@ -208,10 +222,14 @@ module ActiveRecord
|
|
208
222
|
validates :#{@translatable[:locale]}, :uniqueness => { :scope => :#{@translatable[:origin]}_id }
|
209
223
|
|
210
224
|
belongs_to :#{@translatable[:origin]}, :class_name => "#{self.name}"
|
211
|
-
|
212
|
-
attr_#{!!@translatable[:attr_protected] ? "protected" : "accessible" } :#{@translatable[:locale]}, :#{@translatable[:origin]}_id
|
213
225
|
RUBY
|
214
226
|
|
227
|
+
unless @translatable[:attr_accessible].nil?
|
228
|
+
@translatable[:model].module_eval <<-RUBY, __FILE__, __LINE__ + 1
|
229
|
+
attr_#{!!@translatable[:attr_accessible] ? "accessible" : "protected" } :#{@translatable[:locale]}, :#{@translatable[:origin]}_id
|
230
|
+
RUBY
|
231
|
+
end
|
232
|
+
|
215
233
|
@translatable[:properties].each do |p|
|
216
234
|
if p.size > 1
|
217
235
|
@translatable[:model].module_eval <<-RUBY, __FILE__, __LINE__ + 1
|
data/test/messages.rb
CHANGED
@@ -41,6 +41,7 @@ end
|
|
41
41
|
|
42
42
|
class TranslatedMessage < ActiveRecord::Base
|
43
43
|
attr_accessible :title, :content
|
44
|
+
attr_accessible :title, :content, :locale, :as => :editor
|
44
45
|
|
45
46
|
before_validation :set_default_locale, :if => :writer_id
|
46
47
|
before_create :duplicate_writer_id, :unless => :writer_id
|
@@ -65,7 +66,6 @@ class Message < ActiveRecord::Base
|
|
65
66
|
translatable :content, :presence => true
|
66
67
|
translatable_model 'TranslatedMessage'
|
67
68
|
translatable_origin :message
|
68
|
-
translatable_attr_protected
|
69
69
|
end
|
70
70
|
|
71
71
|
attr_accessible :writer_id, :writer
|
data/test/news.rb
CHANGED
data/test/posts.rb
CHANGED
data/test/test_translatable.rb
CHANGED
@@ -229,6 +229,15 @@ class TestDmTranslatable < Test::Unit::TestCase
|
|
229
229
|
assert_equal nil, tm.message_id
|
230
230
|
end
|
231
231
|
|
232
|
+
def test_protected_editor_mass_assigment
|
233
|
+
tm = TranslatedMessage.new( {:title => "Resent Post", :content => "That is where the text goes", :locale => "en", :message_id => 1}, :as => :editor)
|
234
|
+
|
235
|
+
assert_equal "Resent Post", tm.title
|
236
|
+
assert_equal "That is where the text goes", tm.content
|
237
|
+
assert_equal "en", tm.locale
|
238
|
+
assert_equal nil, tm.message_id
|
239
|
+
end
|
240
|
+
|
232
241
|
def test_accessible_mass_assigment
|
233
242
|
tp = TranslatableNews.new( :title => "Resent News", :content => "That is where the text goes", :locale => "en", :origin_id => 1)
|
234
243
|
|
data/translatable.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: translatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-08-25 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement: &
|
16
|
+
requirement: &84919140 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *84919140
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: i18n
|
27
|
-
requirement: &
|
27
|
+
requirement: &84918890 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *84918890
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: yard
|
38
|
-
requirement: &
|
38
|
+
requirement: &84918650 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *84918650
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &84918410 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *84918410
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &84918150 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.0.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *84918150
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov
|
71
|
-
requirement: &
|
71
|
+
requirement: &84917890 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.6.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *84917890
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rcov
|
82
|
-
requirement: &
|
82
|
+
requirement: &84917640 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: 1.0.0
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *84917640
|
91
91
|
description: This game was build to make whole proccess of working with translation
|
92
92
|
for DM to be almost invisble. That was THE AIM.
|
93
93
|
email: max@studentify.nl
|
@@ -130,7 +130,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
130
|
version: '0'
|
131
131
|
segments:
|
132
132
|
- 0
|
133
|
-
hash:
|
133
|
+
hash: 896165331
|
134
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
135
|
none: false
|
136
136
|
requirements:
|