i18n_attributes 0.1.0 → 0.1.1

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/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.1.1
2
+
3
+ * use vkill_gems_method gem
4
+
5
+
1
6
  == 0.1.0
2
7
 
3
8
  * First release
data/README.markdown CHANGED
@@ -15,7 +15,7 @@ I18nAttributes is a generate model attributes I18n locale files plugin for Rails
15
15
 
16
16
  In your app's `Gemfile`, add:
17
17
 
18
- gem "i18n_attributes", "~> 0.1.0"
18
+ gem "i18n_attributes", "~> 0.1.1"
19
19
 
20
20
  Then run:
21
21
 
@@ -23,5 +23,6 @@ Gem::Specification.new do |s|
23
23
  s.add_development_dependency "rspec"
24
24
  s.add_development_dependency "guard-rspec"
25
25
  s.add_dependency "rails", "~> 3.0"
26
+ s.add_dependency "vkill_gems_methods", "~> 0.1.0"
26
27
  end
27
28
 
@@ -6,6 +6,8 @@ class I18nAttributes::ModelGenerator < Rails::Generators::NamedBase
6
6
 
7
7
  include I18nAttributes::GeneratorHelpers
8
8
 
9
+ SUPPORTED_ORMS = %w(active_record active_model mongoid)
10
+
9
11
  def create_model_i18n_file
10
12
 
11
13
  orm = options.orm.to_s
@@ -21,7 +23,7 @@ class I18nAttributes::ModelGenerator < Rails::Generators::NamedBase
21
23
 
22
24
  private
23
25
  def attributes_hash
24
- Hash[ attributes.map {|attribute| [attribute.name, attribute.human_name] } ]
26
+ Hash[ attributes.map {|attribute| [attribute.name, attribute.type] } ]
25
27
  end
26
28
  end
27
29
 
@@ -3,6 +3,9 @@ class I18nAttributes::ReviseModelGenerator < Rails::Generators::Base
3
3
 
4
4
  class_option :orm, :required => false, :default => "active_record"
5
5
 
6
+ include ::VkillGemsMethods::Rails::Generators::Base
7
+ ::ActiveRecord::Base.send :include, ::VkillGemsMethods::ActiveRecord::Base
8
+
6
9
  include I18nAttributes::GeneratorHelpers
7
10
 
8
11
  SUPPORTED_ORMS = %w(active_record)
@@ -13,30 +16,14 @@ class I18nAttributes::ReviseModelGenerator < Rails::Generators::Base
13
16
 
14
17
  say_error "#{orm} [not found]" unless SUPPORTED_ORMS.include? orm
15
18
 
16
- models do |model|
17
- I18nAttributes::Configuration.locales.each do |locale|
19
+ ::ActiveRecord::Base.models do |model, columns|
20
+ ::I18nAttributes::Configuration.locales.each do |locale|
18
21
  create_file "config/locales/model_#{ locale }/#{ model.name.underscore }.yml",
19
- generate_yaml_file_data(locale, model.model_name.underscore, model.model_name, attributes_hash(model), orm)
22
+ generate_yaml_file_data(locale, model.model_name.underscore, model.model_name, columns, orm)
20
23
  end
21
24
  end
22
25
 
23
26
  end
24
27
 
25
- private
26
- def models(&block)
27
- Rails.application.eager_load!
28
- ActiveRecord::Base.descendants.each do |model|
29
- next unless model.respond_to?(:columns_hash)
30
- next unless model.table_exists?
31
- next if model.abstract_class?
32
- next if model.columns_hash.keys.include?('type') and model.descendants.size > 0
33
- yield model
34
- end
35
- end
36
-
37
- def attributes_hash(model)
38
- Hash[ model.columns_hash.map { |k,v| [k, k.to_s.humanize] } ]
39
- end
40
-
41
28
  end
42
29
 
@@ -3,28 +3,7 @@ require "yaml"
3
3
  module I18nAttributes
4
4
  module GeneratorHelpers
5
5
 
6
- SUPPORTED_ORMS = %w(active_record active_model mongoid)
7
-
8
- def say_custom(type='warn', text) #example, type choise in FATAL,ERROR,WARN,INFO,DEBUG
9
- ansicolor = #more ansicolor => https://github.com/flori/term-ansicolor
10
- case type.downcase.to_s
11
- when 'fatal'; '31m'
12
- when 'error'; '31m'
13
- when 'warn'; '36m'
14
- when 'info'; '32m'
15
- when 'debug'; '34m'
16
- else; '0m'
17
- end
18
- say "\033[1m\033[#{ ansicolor }" + type.to_s.upcase.rjust(10) + "\033[0m" + " #{text}"
19
- end
20
- def say_fatal(text); say_custom('fatal', text); exit; end
21
- def say_error(text); say_custom('error', text); exit; end
22
- def say_warn(text); say_custom('warn', text); end
23
- def say_info(text); say_custom('info', text); end
24
- def say_debug(text); say_custom('debug', text); end
25
-
26
-
27
- def generate_yaml_file_data(locale, singular_name, human_name, attributes_hash, orm="active_record")
6
+ def generate_yaml_file_data(locale, singular_name, human_name, attributes, orm="active_record")
28
7
  YAML.dump_stream(
29
8
  {
30
9
  locale.to_s => {
@@ -33,7 +12,7 @@ module I18nAttributes
33
12
  singular_name => human_name.to_s
34
13
  },
35
14
  "attributes" => {
36
- singular_name => attributes_hash.merge(enums_hash(attributes_hash.keys))
15
+ singular_name => columns_hash(attributes).merge(enums_hash(attributes))
37
16
  }
38
17
  }
39
18
  }
@@ -42,11 +21,14 @@ module I18nAttributes
42
21
  end
43
22
 
44
23
  private
24
+ def columns_hash(attributes)
25
+ Hash[ attributes.keys.map {|k| [k.to_s, k.to_s.humanize]} ]
26
+ end
45
27
 
46
28
  def enums_hash(attributes)
47
29
  enums = {}
48
30
  I18nAttributes::Configuration.enums_attributes.each do |k,v|
49
- attributes.index(k) ? enums.merge!(k => v) : next
31
+ attributes.keys.index(k) ? enums.merge!(k => v) : next
50
32
  end
51
33
  enums.empty? ? {} : { "enums" => enums }
52
34
  end
@@ -1,4 +1,4 @@
1
1
  module I18nAttributes
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n_attributes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-19 00:00:00.000000000 Z
12
+ date: 2011-11-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &77307330 !ruby/object:Gem::Requirement
16
+ requirement: &71077170 !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: :development
23
23
  prerelease: false
24
- version_requirements: *77307330
24
+ version_requirements: *71077170
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &77307120 !ruby/object:Gem::Requirement
27
+ requirement: &71076960 !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: :development
34
34
  prerelease: false
35
- version_requirements: *77307120
35
+ version_requirements: *71076960
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &77306910 !ruby/object:Gem::Requirement
38
+ requirement: &71076750 !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: *77306910
46
+ version_requirements: *71076750
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: guard-rspec
49
- requirement: &77306700 !ruby/object:Gem::Requirement
49
+ requirement: &71076540 !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: *77306700
57
+ version_requirements: *71076540
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rails
60
- requirement: &77306450 !ruby/object:Gem::Requirement
60
+ requirement: &71076290 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,18 @@ dependencies:
65
65
  version: '3.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *77306450
68
+ version_requirements: *71076290
69
+ - !ruby/object:Gem::Dependency
70
+ name: vkill_gems_methods
71
+ requirement: &71076040 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 0.1.0
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *71076040
69
80
  description: A generate model attributes I18n locale files plugin for Rails3.
70
81
  email:
71
82
  - vkill.net@gmail.com