Class: GettextColumnMapping::ModelAttributesFinder
- Inherits:
-
Object
- Object
- GettextColumnMapping::ModelAttributesFinder
- Defined in:
- lib/gettext_column_mapping/model_attributes_finder.rb
Instance Method Summary collapse
- #column_ignored?(subclass, column, patterns) ⇒ Boolean
-
#find(options) ⇒ Object
options: :ignore_tables => [‘cars’,/_settings$/,…] :ignore_columns => [‘id’,/_id$/,…] current connection —> href="'model_name','type'">cars’=>,….
- #ignored?(name, patterns) ⇒ Boolean
-
#initialize ⇒ ModelAttributesFinder
constructor
A new instance of ModelAttributesFinder.
- #table_ignored?(subclass, patterns) ⇒ Boolean
Constructor Details
#initialize ⇒ ModelAttributesFinder
Returns a new instance of ModelAttributesFinder.
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/gettext_column_mapping/model_attributes_finder.rb', line 91 def initialize return unless Object.const_defined?(:Rails) # HOOK ... HOOK wow ... berk # Is it safe ? $rails_rake_task = false # Eager load all classes !! In order to load all ActiveRecord::Base # Rails 3.x power if Rails::VERSION::MAJOR > 2 Rails.application.eager_load! else Rails::Initializer.run(:load_application_classes,Rails.configuration) do |config| config.cache_classes = true end end end |
Instance Method Details
#column_ignored?(subclass, column, patterns) ⇒ Boolean
132 133 134 |
# File 'lib/gettext_column_mapping/model_attributes_finder.rb', line 132 def column_ignored?(subclass,column,patterns) ignored?(column.name,patterns) || subclass.untranslate?(column.name) end |
#find(options) ⇒ Object
options:
:ignore_tables => ['cars',/_settings$/,...]
:ignore_columns => ['id',/_id$/,...]
current connection —> href="'model_name','type'">cars’=>,…
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/gettext_column_mapping/model_attributes_finder.rb', line 112 def find() found = Hash.new([]) GettextColumnMapping.activerecord_subclasses.each do |subclass| next if table_ignored?(subclass,[:ignore_tables]) found[subclass] = [] if GettextColumnMapping.config.use_parent_level && ! GettextColumnMapping::ParentLevel.column_attributes_translation(subclass.name).blank? subclass.columns.each do |column| unless column_ignored?(subclass,column,[:ignore_columns]) found[subclass] += [column.name] end end end found end |
#ignored?(name, patterns) ⇒ Boolean
136 137 138 139 |
# File 'lib/gettext_column_mapping/model_attributes_finder.rb', line 136 def ignored?(name,patterns) return false unless patterns patterns.detect{|p| (p.is_a?(Regexp) && name=~p) || (p.to_s == name.to_s)} end |
#table_ignored?(subclass, patterns) ⇒ Boolean
128 129 130 |
# File 'lib/gettext_column_mapping/model_attributes_finder.rb', line 128 def table_ignored?(subclass, patterns) ignored?(subclass.table_name,patterns) || subclass.untranslate_all? || !subclass.table_exists? end |