Module: Moargration
Defined Under Namespace
Classes: Exception
Instance Method Summary collapse
- #columns_to_ignore ⇒ Object
- #columns_to_ignore=(columns) ⇒ Object
- #hack_active_record! ⇒ Object
- #ignoring?(table, column) ⇒ Boolean
- #init ⇒ Object
- #parse(text) ⇒ Object
Instance Method Details
#columns_to_ignore ⇒ Object
17 18 19 |
# File 'lib/moargration.rb', line 17 def columns_to_ignore @@columns_to_ignore end |
#columns_to_ignore=(columns) ⇒ Object
13 14 15 |
# File 'lib/moargration.rb', line 13 def columns_to_ignore=(columns) @@columns_to_ignore = columns end |
#hack_active_record! ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/moargration.rb', line 34 def hack_active_record! ActiveRecord::Base.class_eval do class << self alias :columns_without_moargration :columns def columns unless defined?(@cached_moargration_columns) && @cached_moargration_columns @cached_moargration_columns = columns_without_moargration.reject do |column| (Moargration.columns_to_ignore[table_name] || []).include?(column.name) end end @cached_moargration_columns end end end end |
#ignoring?(table, column) ⇒ Boolean
21 22 23 24 |
# File 'lib/moargration.rb', line 21 def ignoring?(table, column) ignored_columns = columns_to_ignore[table.to_s] || [] ignored_columns.include?(column.to_s) end |
#init ⇒ Object
6 7 8 9 10 11 |
# File 'lib/moargration.rb', line 6 def init @@columns_to_ignore = {} return unless ignore = ENV["MOARGRATION_IGNORE"] self.columns_to_ignore = parse(ignore) hack_active_record! end |
#parse(text) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/moargration.rb', line 26 def parse(text) text.strip.split(" ").inject({}) do |parsed, definition| table, fields = definition.split(":", 2) parsed[table] = fields.split(",") if fields parsed end end |