Module: DataMagic

Extended by:
YmlReader
Defined in:
lib/data_magic.rb,
lib/data_magic/version.rb,
lib/data_magic/translation.rb,
lib/data_magic/date_translation.rb

Defined Under Namespace

Modules: DateTranslation Classes: Translation

Constant Summary collapse

VERSION =
"0.17"

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.ymlObject

Returns the value of attribute yml.



56
57
58
# File 'lib/data_magic.rb', line 56

def yml
  @yml
end

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent.



11
12
13
# File 'lib/data_magic.rb', line 11

def parent
  @parent
end

Class Method Details

.add_translator(translator) ⇒ Object



62
63
64
# File 'lib/data_magic.rb', line 62

def add_translator(translator)
  translators << translator
end

.default_directoryObject



58
59
60
# File 'lib/data_magic.rb', line 58

def default_directory
  'config/data'
end

.included(cls) ⇒ Object



15
16
17
18
19
20
# File 'lib/data_magic.rb', line 15

def self.included(cls)
  @parent = cls
  translators.each do |translator|
    Translation.send :include, translator
  end
end

.translatorsObject



66
67
68
# File 'lib/data_magic.rb', line 66

def translators
  @translators ||= []
end

Instance Method Details

#data_for(key, additional = {}) ⇒ Object

Raises:

  • (ArgumentError)


22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/data_magic.rb', line 22

def data_for(key, additional={})
  if key.is_a?(String) && key.match(%r{/})
    filename, record = key.split('/')
    DataMagic.load("#{filename}.yml")
  else
    record = key.to_s
    DataMagic.load('default.yml') unless DataMagic.yml
  end
  data = DataMagic.yml[record]
  raise ArgumentError, "Undefined key #{key}" unless data
  prep_data data.merge(additional).clone
end