i18n_attributes 0.1.4 → 0.1.6
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/.gitignore +6 -0
- data/CHANGELOG +8 -0
- data/README.markdown +44 -0
- data/i18n_attributes.gemspec +9 -0
- data/lib/generators/i18n_attributes/install/install_generator.rb +3 -10
- data/lib/generators/i18n_attributes/install/templates/i18n_attributes.rb +17 -0
- data/lib/generators/i18n_attributes/model/model_generator.rb +25 -6
- data/lib/generators/i18n_attributes/revise_model/revise_model_generator.rb +12 -7
- data/lib/i18n_attributes.rb +4 -0
- data/lib/i18n_attributes/configuration.rb +20 -2
- data/lib/i18n_attributes/generator_helpers.rb +72 -18
- data/lib/i18n_attributes/railtie.rb +2 -0
- data/lib/i18n_attributes/version.rb +3 -1
- data/spec/i18n_attributes/generator_helpers_spec.rb +103 -0
- data/spec/i18n_attributes_spec.rb +14 -0
- data/spec/rails3_0_app/.gitignore +4 -0
- data/spec/rails3_0_app/Gemfile +9 -0
- data/spec/rails3_0_app/Rakefile +7 -0
- data/spec/rails3_0_app/app/controllers/application_controller.rb +3 -0
- data/spec/rails3_0_app/app/helpers/application_helper.rb +2 -0
- data/spec/rails3_0_app/app/models/user.rb +2 -0
- data/spec/rails3_0_app/app/views/layouts/application.html.erb +14 -0
- data/spec/rails3_0_app/config.ru +4 -0
- data/spec/rails3_0_app/config/application.rb +44 -0
- data/spec/rails3_0_app/config/boot.rb +6 -0
- data/spec/rails3_0_app/config/database.yml +22 -0
- data/spec/rails3_0_app/config/environment.rb +5 -0
- data/spec/rails3_0_app/config/environments/development.rb +26 -0
- data/spec/rails3_0_app/config/environments/production.rb +49 -0
- data/spec/rails3_0_app/config/environments/test.rb +35 -0
- data/spec/rails3_0_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/rails3_0_app/config/initializers/i18n_attributes.rb +15 -0
- data/spec/rails3_0_app/config/initializers/inflections.rb +10 -0
- data/spec/rails3_0_app/config/initializers/mime_types.rb +5 -0
- data/spec/rails3_0_app/config/initializers/secret_token.rb +7 -0
- data/spec/rails3_0_app/config/initializers/session_store.rb +8 -0
- data/spec/rails3_0_app/config/initializers/youdao_fanyi.rb +7 -0
- data/spec/rails3_0_app/config/locales/en.yml +5 -0
- data/spec/rails3_0_app/config/locales/model_en/user.yml +11 -0
- data/spec/rails3_0_app/config/locales/model_zh-CN/user.yml +11 -0
- data/spec/rails3_0_app/config/routes.rb +58 -0
- data/spec/rails3_0_app/config/youdao_fanyi_api_keys.yml +9 -0
- data/spec/rails3_0_app/db/migrate/20111202073515_create_users.rb +13 -0
- data/spec/rails3_0_app/db/schema.rb +22 -0
- data/spec/rails3_0_app/db/seeds.rb +7 -0
- data/spec/rails3_0_app/doc/README_FOR_APP +2 -0
- data/spec/rails3_0_app/lib/tasks/.gitkeep +0 -0
- data/spec/rails3_0_app/public/404.html +26 -0
- data/spec/rails3_0_app/public/422.html +26 -0
- data/spec/rails3_0_app/public/500.html +26 -0
- data/spec/rails3_0_app/public/favicon.ico +0 -0
- data/spec/rails3_0_app/public/images/rails.png +0 -0
- data/spec/rails3_0_app/public/index.html +239 -0
- data/spec/rails3_0_app/public/javascripts/.gitkeep +0 -0
- data/spec/rails3_0_app/public/javascripts/application.js +0 -0
- data/spec/rails3_0_app/public/robots.txt +5 -0
- data/spec/rails3_0_app/public/stylesheets/.gitkeep +0 -0
- data/spec/rails3_0_app/script/rails +6 -0
- data/spec/rails3_0_app/test/fixtures/users.yml +7 -0
- data/spec/rails3_0_app/test/unit/user_test.rb +8 -0
- data/spec/rails3_0_app/vendor/plugins/.gitkeep +0 -0
- data/spec/spec_helper.rb +7 -1
- metadata +177 -14
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
data/README.markdown
CHANGED
@@ -34,6 +34,8 @@ Run:
|
|
34
34
|
|
35
35
|
##Usage Example
|
36
36
|
|
37
|
+
###Basic Usage
|
38
|
+
|
37
39
|
When your generate post model, then hook invoke, create `config/locales/model_zh-CN/post.yml` file
|
38
40
|
|
39
41
|
> rails g model post title:string
|
@@ -53,6 +55,48 @@ If your models has been created, you want generate model attributes i18n locale
|
|
53
55
|
create config/locales/model_en/post.yml
|
54
56
|
create config/locales/model_zh-CN/post.yml
|
55
57
|
|
58
|
+
###Translate attribute
|
59
|
+
|
60
|
+
If you want translate attribute or model name
|
61
|
+
|
62
|
+
First, edit `config/initializers/i18n_attributes.rb` file, like this
|
63
|
+
|
64
|
+
if Rails.env.development?
|
65
|
+
I18nAttributes.configure do |config|
|
66
|
+
config.locales = [:en, :"zh-CN"]
|
67
|
+
config.translator = {
|
68
|
+
##if use this, you mast install youdao_fanyi, see https://github.com/vkill/youdao_fanyi
|
69
|
+
:"zh-CN" => Proc.new{|str| YoudaoFanyi.t(str).first}
|
70
|
+
}
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
Then, install `youdao_fanyi`, see https://github.com/vkill/youdao_fanyi. you also use `to _lang` and more.
|
75
|
+
|
76
|
+
Last, run `rails g i18n_attributes:revise_model`, results like this
|
77
|
+
|
78
|
+
> rails g i18n_attributes:revise_model
|
79
|
+
create config/locales/model_en/user.yml
|
80
|
+
INFO translated attribute/model_name id
|
81
|
+
INFO translated attribute/model_name username
|
82
|
+
INFO translated attribute/model_name created_at
|
83
|
+
INFO translated attribute/model_name updated_at
|
84
|
+
INFO translated attribute/model_name User
|
85
|
+
create config/locales/model_zh-CN/user.yml
|
86
|
+
|
87
|
+
> cat config/locales/model_zh-CN/user.yml
|
88
|
+
---
|
89
|
+
zh-CN:
|
90
|
+
activerecord:
|
91
|
+
models:
|
92
|
+
user: 用户
|
93
|
+
attributes:
|
94
|
+
user:
|
95
|
+
id: id
|
96
|
+
username: 用户名
|
97
|
+
created_at: created_at
|
98
|
+
updated_at: updated_at
|
99
|
+
|
56
100
|
|
57
101
|
##Copyright
|
58
102
|
|
data/i18n_attributes.gemspec
CHANGED
@@ -22,7 +22,16 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_development_dependency "rake"
|
23
23
|
s.add_development_dependency "rspec"
|
24
24
|
s.add_development_dependency "guard-rspec"
|
25
|
+
s.add_development_dependency "pry"
|
26
|
+
s.add_development_dependency "rspec-rails"
|
27
|
+
|
28
|
+
#use in spec/rails3_0_app
|
29
|
+
s.add_development_dependency "rails", "~> 3.0"
|
30
|
+
s.add_development_dependency "sqlite3-ruby"
|
31
|
+
s.add_development_dependency "youdao_fanyi"
|
32
|
+
|
25
33
|
s.add_dependency "rails", "~> 3.0"
|
34
|
+
s.add_dependency "activesupport", "~> 3.0"
|
26
35
|
s.add_dependency "vkill_gems_methods", "~> 0.1.0"
|
27
36
|
end
|
28
37
|
|
@@ -1,17 +1,10 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
1
3
|
class I18nAttributes::InstallGenerator < Rails::Generators::Base
|
2
4
|
source_root File.expand_path('../templates', __FILE__)
|
3
5
|
|
4
6
|
def create_initializer_file
|
5
|
-
|
6
|
-
%Q/
|
7
|
-
if Rails.env.development?
|
8
|
-
I18nAttributes.configure do |config|
|
9
|
-
#more > I18n.available_locales
|
10
|
-
config.locales = [:en, :"zh-CN"]
|
11
|
-
end
|
12
|
-
end
|
13
|
-
/
|
14
|
-
end
|
7
|
+
template "i18n_attributes.rb", 'config/initializers/i18n_attributes.rb'
|
15
8
|
end
|
16
9
|
|
17
10
|
def modify_application_config
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
if Rails.env.development?
|
4
|
+
I18nAttributes.configure do |config|
|
5
|
+
# more see https://github.com/svenfuchs/rails-i18n
|
6
|
+
config.locales = [:en, :"zh-CN"]
|
7
|
+
|
8
|
+
config.translator = {
|
9
|
+
##if use this, you mast install youdao_fanyi, see https://github.com/vkill/youdao_fanyi
|
10
|
+
#:"zh-CN" => Proc.new{|str| YoudaoFanyi.t(str).first}
|
11
|
+
|
12
|
+
##if use this, you mast install and config to_lang, see https://github.com/jimmycuadra/to_lang
|
13
|
+
#:"es" => Proc.new{|str| str.translate('es', :from => 'en') }
|
14
|
+
}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -1,22 +1,30 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
1
3
|
class I18nAttributes::ModelGenerator < Rails::Generators::NamedBase
|
2
4
|
source_root File.expand_path('../templates', __FILE__)
|
3
5
|
|
4
6
|
class_option :orm, :required => true
|
5
7
|
argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
|
6
8
|
|
7
|
-
include
|
9
|
+
include ::VkillGemsMethods::Rails::Generators::Base
|
8
10
|
|
9
|
-
|
11
|
+
include ::I18nAttributes::GeneratorHelpers
|
10
12
|
|
11
|
-
|
13
|
+
SUPPORTED_ORMS = %w(active_model active_record mongoid)
|
12
14
|
|
13
|
-
|
15
|
+
def create_model_i18n_file
|
14
16
|
|
15
|
-
say_error "#{orm} [not found]" unless SUPPORTED_ORMS.include? orm
|
17
|
+
say_error "#{orm} [not found]" unless SUPPORTED_ORMS.include? options.orm.to_s
|
16
18
|
|
17
19
|
I18nAttributes::Configuration.locales.each do |locale|
|
18
20
|
create_file "config/locales/model_#{ locale }/#{ file_name }.yml",
|
19
|
-
|
21
|
+
generate_yaml_file_data(
|
22
|
+
:locale => locale,
|
23
|
+
:singular_name => singular_name,
|
24
|
+
:human_name => human_name,
|
25
|
+
:attributes => attributes_hash(),
|
26
|
+
:model_i18n_scope => model_i18n_scope()
|
27
|
+
){|word| say_info "translated attribute/model_name #{word}"}.yaml_file_data
|
20
28
|
end
|
21
29
|
|
22
30
|
end
|
@@ -25,5 +33,16 @@ class I18nAttributes::ModelGenerator < Rails::Generators::NamedBase
|
|
25
33
|
def attributes_hash
|
26
34
|
Hash[ attributes.map {|attribute| [attribute.name, attribute.type] } ]
|
27
35
|
end
|
36
|
+
|
37
|
+
def model_i18n_scope
|
38
|
+
case options.orm.to_s
|
39
|
+
when "active_model"
|
40
|
+
:activemodel
|
41
|
+
when "active_record"
|
42
|
+
:activerecord
|
43
|
+
when "mongoid"
|
44
|
+
:mongoid
|
45
|
+
end
|
46
|
+
end
|
28
47
|
end
|
29
48
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
1
3
|
class I18nAttributes::ReviseModelGenerator < Rails::Generators::Base
|
2
4
|
source_root File.expand_path('../templates', __FILE__)
|
3
5
|
|
@@ -6,21 +8,24 @@ class I18nAttributes::ReviseModelGenerator < Rails::Generators::Base
|
|
6
8
|
include ::VkillGemsMethods::Rails::Generators::Base
|
7
9
|
::ActiveRecord::Base.send :include, ::VkillGemsMethods::ActiveRecord::Base
|
8
10
|
|
9
|
-
include I18nAttributes::GeneratorHelpers
|
11
|
+
include ::I18nAttributes::GeneratorHelpers
|
10
12
|
|
11
|
-
SUPPORTED_ORMS = %w(active_record)
|
13
|
+
SUPPORTED_ORMS = %w(active_model active_record mongoid)
|
12
14
|
|
13
15
|
def create_model_i18n_file
|
14
16
|
|
15
|
-
orm
|
16
|
-
|
17
|
-
say_error "#{orm} [not found]" unless SUPPORTED_ORMS.include? orm
|
17
|
+
say_error "#{orm} [not found]" unless SUPPORTED_ORMS.include? options.orm.to_s
|
18
18
|
|
19
19
|
::ActiveRecord::Base.models do |model, columns|
|
20
20
|
::I18nAttributes::Configuration.locales.each do |locale|
|
21
21
|
create_file "config/locales/model_#{ locale }/#{ model.name.underscore }.yml",
|
22
|
-
generate_yaml_file_data(
|
23
|
-
|
22
|
+
generate_yaml_file_data(
|
23
|
+
:locale => locale,
|
24
|
+
:singular_name => model.model_name.underscore,
|
25
|
+
:human_name => model.model_name,
|
26
|
+
:attributes => columns,
|
27
|
+
:model_i18n_scope => model.i18n_scope
|
28
|
+
){|word| say_info "translated attribute/model_name #{word}"}.yaml_file_data
|
24
29
|
end
|
25
30
|
end
|
26
31
|
|
data/lib/i18n_attributes.rb
CHANGED
@@ -1,8 +1,26 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
=begin
|
3
|
+
I18nAttributes.configure do |config|
|
4
|
+
# more see https://github.com/svenfuchs/rails-i18n
|
5
|
+
config.locales = [:en, :"zh-CN"]
|
6
|
+
|
7
|
+
config.translator = {
|
8
|
+
#you mast install youdao_fanyi, see https://github.com/vkill/youdao_fanyi
|
9
|
+
:"zh-CN" => Proc.new{|str| YoudaoFanyi.t(str).first}
|
10
|
+
|
11
|
+
##you mast install and config to_lang, see https://github.com/jimmycuadra/to_lang
|
12
|
+
#:"es" => Proc.new{|str| str.translate('es', :from => 'en') }
|
13
|
+
}
|
14
|
+
end
|
15
|
+
=end
|
16
|
+
|
1
17
|
module I18nAttributes
|
2
18
|
Configuration = Struct.new(
|
3
|
-
:locales
|
19
|
+
:locales,
|
20
|
+
:translator
|
4
21
|
).new(
|
5
|
-
[:en]
|
22
|
+
[:en],
|
23
|
+
{}
|
6
24
|
)
|
7
25
|
end
|
8
26
|
|
@@ -1,30 +1,84 @@
|
|
1
|
-
|
1
|
+
#encoding: utf-8
|
2
2
|
|
3
3
|
module I18nAttributes
|
4
4
|
module GeneratorHelpers
|
5
5
|
|
6
|
-
def generate_yaml_file_data(
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
6
|
+
def generate_yaml_file_data(*options, &block)
|
7
|
+
YamlFileData.new(*options, &block)
|
8
|
+
end
|
9
|
+
|
10
|
+
class YamlFileData
|
11
|
+
|
12
|
+
attr_reader :locale, :singular_name, :human_name, :attributes, :model_i18n_scope,
|
13
|
+
:locale_translator, :columns_hash, :yaml_file_data
|
14
|
+
|
15
|
+
def initialize(*options, &block)
|
16
|
+
options = options.extract_options!
|
17
|
+
return self if test = options.delete(:test) || false
|
18
|
+
locale = options.delete(:locale) || raise("locale is required.")
|
19
|
+
singular_name = options.delete(:singular_name) || raise("singular_name is required.")
|
20
|
+
human_name = options.delete(:human_name) || raise("human_name is required.")
|
21
|
+
attributes = options.delete(:attributes) || raise("attributes is required.")
|
22
|
+
model_i18n_scope = options.delete(:model_i18n_scope) || raise("model_i18n_scope is required.")
|
23
|
+
@locale = locale.to_s
|
24
|
+
@singular_name = singular_name.to_s
|
25
|
+
@human_name = human_name.to_s
|
26
|
+
@attributes = attributes.to_hash
|
27
|
+
@model_i18n_scope = model_i18n_scope.to_s
|
28
|
+
|
29
|
+
|
30
|
+
set_locale_translator(&block)
|
31
|
+
set_columns_hash(&block)
|
32
|
+
generate(&block)
|
33
|
+
@yaml_file_data
|
34
|
+
end
|
35
|
+
|
36
|
+
def generate(&block)
|
37
|
+
@yaml_file_data =
|
38
|
+
YAML.dump_stream(
|
39
|
+
{
|
40
|
+
locale => {
|
41
|
+
model_i18n_scope => {
|
42
|
+
"models" => {
|
43
|
+
singular_name => @locale_translator ? translate(human_name, &block) : human_name
|
44
|
+
},
|
45
|
+
"attributes" => {
|
46
|
+
singular_name => @columns_hash
|
47
|
+
}
|
48
|
+
}
|
16
49
|
}
|
17
50
|
}
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
def set_columns_hash(&block)
|
55
|
+
@columns_hash =
|
56
|
+
Hash[ @attributes.keys.map {|k|
|
57
|
+
[
|
58
|
+
k.to_s,
|
59
|
+
@locale_translator ? translate(k, &block) : k.to_s.humanize
|
60
|
+
]
|
61
|
+
}
|
62
|
+
]
|
63
|
+
end
|
22
64
|
|
23
|
-
|
24
|
-
|
25
|
-
|
65
|
+
def set_locale_translator(&block)
|
66
|
+
translator = I18nAttributes::Configuration.translator
|
67
|
+
locale_translator = translator[@locale.to_sym] || translator[@locale.to_sym]
|
68
|
+
@locale_translator =
|
69
|
+
if !locale_translator.blank? and locale_translator.class == Proc
|
70
|
+
locale_translator
|
71
|
+
else
|
72
|
+
nil
|
73
|
+
end
|
26
74
|
end
|
27
75
|
|
76
|
+
def translate(word, &block)
|
77
|
+
yield word.to_s if block
|
78
|
+
@locale_translator.call(word.to_s)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
28
82
|
end
|
29
83
|
end
|
30
84
|
|
@@ -0,0 +1,103 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe I18nAttributes::GeneratorHelpers::YamlFileData do
|
5
|
+
|
6
|
+
def reset_subject(*options, &block)
|
7
|
+
options = options.extract_options!
|
8
|
+
locale = options.delete(:locale) || :en
|
9
|
+
singular_name = options.delete(:singular_name) || :user
|
10
|
+
human_name = options.delete(:human_name) || :User
|
11
|
+
attributes = options.delete(:attributes) || {"username"=>:string}
|
12
|
+
model_i18n_scope = options.delete(:model_i18n_scope) || :activerecord
|
13
|
+
I18nAttributes::GeneratorHelpers::YamlFileData.new(
|
14
|
+
:locale => locale.to_s, :singular_name => singular_name.to_s, :human_name => human_name.to_s,
|
15
|
+
:attributes => attributes.to_hash, :model_i18n_scope => model_i18n_scope.to_s , &block)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "instance var should set" do
|
19
|
+
subject = reset_subject()
|
20
|
+
subject.locale.should == 'en'
|
21
|
+
subject.singular_name.should == "user"
|
22
|
+
subject.human_name.should == "User"
|
23
|
+
subject.attributes.should == {"username"=>:string}
|
24
|
+
subject.model_i18n_scope.should == "activerecord"
|
25
|
+
end
|
26
|
+
|
27
|
+
context "test set_locale_translator" do
|
28
|
+
it "when translator don't defined, locale_translator is nil" do
|
29
|
+
I18nAttributes::Configuration.translator = {}
|
30
|
+
subject = reset_subject(:locale => :en)
|
31
|
+
subject.locale_translator.should be_nil
|
32
|
+
end
|
33
|
+
it "when translator defined, but locale is don't match reset_subject method defined locale, locale_translator is nil" do
|
34
|
+
I18nAttributes::Configuration.translator = {:"zh-CN" => Proc.new{|str| str.to_s}}
|
35
|
+
subject = reset_subject(:locale => :en)
|
36
|
+
subject.locale_translator.should be_nil
|
37
|
+
end
|
38
|
+
it "when translator defined, but is not Proc, locale_translator is nil" do
|
39
|
+
I18nAttributes::Configuration.translator = {:en => "test"}
|
40
|
+
subject = reset_subject(:locale => :en)
|
41
|
+
subject.locale_translator.should be_nil
|
42
|
+
end
|
43
|
+
it "when translator defined, and is a Proc, and locale match, locale_translator is Proc object" do
|
44
|
+
I18nAttributes::Configuration.translator = {:"zh-CN" => Proc.new{|str| str.to_s}}
|
45
|
+
subject = reset_subject(:locale => :"zh-CN")
|
46
|
+
subject.locale_translator.should be_kind_of(Proc)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context "test set_columns_hash" do
|
51
|
+
it "if not locale_translator, columns_hash.v should eq columns_hash.k.humanize" do
|
52
|
+
I18nAttributes::Configuration.translator = {}
|
53
|
+
subject = reset_subject(:attributes => {"username"=>:string})
|
54
|
+
subject.columns_hash['username'].should == "username".humanize
|
55
|
+
end
|
56
|
+
|
57
|
+
it "if locale_translator, columns_hash.v should eq locale_translator.call(columns_hash.k)" do
|
58
|
+
I18nAttributes::Configuration.translator = {:"zh-CN" => Proc.new{|str| str.to_s.humanize}}
|
59
|
+
subject = reset_subject(:locale => :"zh-CN", :attributes => {"username"=>:string})
|
60
|
+
subject.columns_hash['username'].should == Proc.new{|str| str.to_s.humanize}.call('username')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "test generate" do
|
65
|
+
it "yaml_file_data is a String, is YAML.dump_stream" do
|
66
|
+
subject = reset_subject()
|
67
|
+
subject.yaml_file_data.should be_kind_of(String)
|
68
|
+
end
|
69
|
+
it "YAML.load_stream yaml_file_data" do
|
70
|
+
subject = reset_subject()
|
71
|
+
data = YAML.load_stream(subject.yaml_file_data).first
|
72
|
+
data['en']['activerecord']['attributes']['user']['username'].should == "Username"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it "test block" do
|
77
|
+
I18nAttributes::Configuration.translator = {:"zh-CN" => Proc.new{|str| str.to_s.humanize}}
|
78
|
+
block_results = []
|
79
|
+
reset_subject(:locale => :"zh-CN", :attributes => {"username"=>:string},
|
80
|
+
:human_name => :User) {|word| block_results << word}
|
81
|
+
block_results.should include('username')
|
82
|
+
block_results.should include('User')
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe I18nAttributes::GeneratorHelpers do
|
87
|
+
before {
|
88
|
+
class TestGeneratorHelpers
|
89
|
+
include I18nAttributes::GeneratorHelpers
|
90
|
+
end
|
91
|
+
}
|
92
|
+
|
93
|
+
it "should has generate_yaml_file_data" do
|
94
|
+
TestGeneratorHelpers.new.should respond_to(:generate_yaml_file_data)
|
95
|
+
end
|
96
|
+
|
97
|
+
it "generate_yaml_file_data return a instance of YamlFileData" do
|
98
|
+
TestGeneratorHelpers.new.generate_yaml_file_data(:test => true).should be_instance_of(
|
99
|
+
I18nAttributes::GeneratorHelpers::YamlFileData)
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
|