Class: GettextColumnMapping::Initializer

Inherits:
Object
  • Object
show all
Defined in:
lib/gettext_column_mapping/initializer.rb

Defined Under Namespace

Classes: BackendNotLoadedError, ConfigFileNotFoundError

Class Method Summary collapse

Class Method Details

.extend_active_recordObject



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/gettext_column_mapping/initializer.rb', line 47

def extend_active_record
  unless ActiveRecord::Base.included_modules.include?(GettextColumnMapping::Backends::Base)
    ActiveRecord::Base.send(:include,GettextColumnMapping::Backends::Base)
  end
  unless ActiveRecord::Base.included_modules.include?(config.backend_class.constantize)
    ActiveRecord::Base.send(:include, config.backend_class.constantize)
  end
  if config.use_parent_level
    require 'gettext_column_mapping/parent_level'
    GettextColumnMapping::ParentLevel.load_config
  end
end

.load_config_fileObject



60
61
62
63
# File 'lib/gettext_column_mapping/initializer.rb', line 60

def load_config_file
  raise ConfigFileNotFoundError, "#{config.config_file.inspect}. Please set up config.config_file" unless config.config_file && File.exist?(config.config_file)
  GettextColumnMapping.mapper.mappings = Parser.parse(config.config_file)
end

.require_backendObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/gettext_column_mapping/initializer.rb', line 31

def require_backend

  case config.backend
  when Symbol
    require(lib = "gettext_column_mapping/backends/#{config.backend}")
    config.backend_class = lib.camelize
  when String
    require config.backend
    # config.backend_ext must be set !!
    raise  BackendNotLoadedError, "GettextColumnMapping.config.backend_class must be set if you use your own backend" unless config.bakend_class
  else
    raise BackendNotLoadedError, "You must supply a valid backend :gettext_i18n_rails | :gettext_active_record | 'my_librairie/my_backend', please refer to documentation."
  end

end

.require_backend_baseObject



27
28
29
# File 'lib/gettext_column_mapping/initializer.rb', line 27

def require_backend_base
  require 'gettext_column_mapping/backends/base'
end

.run(config = nil) {|self.config| ... } ⇒ Object

Yields:

  • (self.config)


13
14
15
16
17
18
19
20
21
# File 'lib/gettext_column_mapping/initializer.rb', line 13

def self.run(config = nil,&block)
  self.config = (config || GettextColumnMapping.config)
  yield(self.config) if block_given?
  Parser.init(self.config) 
  load_config_file
  require_backend
  require_backend_base
  extend_active_record
end