class LanguageCards::YAMLLoader

Attributes

language[R]

Public Class Methods

new() click to toggle source
# File lib/language_cards/yaml_loader.rb, line 3
def initialize
  @language = CARD_LANGUAGE
end

Public Instance Methods

load() click to toggle source
# File lib/language_cards/yaml_loader.rb, line 7
def load
  cards = {}

  cards_yaml.each do |c|
    next unless yaml_data = YAML.load(File.open(c).read)
    for language in yaml_data.keys do
      # Merges sub-items for languages
      if cards.has_key? language
        cards[language] = Hash( cards[language] ).merge( Hash(yaml_data[language]) )
      else
        # Merges in new top scope languages
        cards.merge!({ language => yaml_data[language] })
      end
    end
  end

  cards
end

Private Instance Methods

application_path() click to toggle source
# File lib/language_cards/yaml_loader.rb, line 29
def application_path
  File.expand_path(File.join('..','..'), __dir__)
end
application_path_cards_yaml() click to toggle source
# File lib/language_cards/yaml_loader.rb, line 37
def application_path_cards_yaml
  Dir[File.join(application_path, 'cards', language, '*.yml')]
end
cards_yaml() click to toggle source
# File lib/language_cards/yaml_loader.rb, line 33
def cards_yaml
  application_path_cards_yaml + home_path_cards_yaml
end
home_path_cards_yaml() click to toggle source
# File lib/language_cards/yaml_loader.rb, line 41
def home_path_cards_yaml
  if ENV['HOME']
    Dir[File.join(ENV['HOME'], '.language_cards', 'cards', language, '*.yml')]
  else
    []
  end
end