class Spout::Models::Dictionary

Creates a structure that contains a dictionaries variables, domains, and forms

Attributes

app_path[RW]
domain_files[R]
domains[RW]
form_files[R]
forms[RW]
variable_files[R]
variables[RW]

Public Class Methods

new(app_path) click to toggle source
# File lib/spout/models/dictionary.rb, line 17
def initialize(app_path)
  @app_path = app_path

  @variable_files = json_files("variables")
  @domain_files = json_files("domains")
  @form_files = json_files("forms")

  @variables = []
  @domains = []
  @forms = []
end

Public Instance Methods

load_all!() click to toggle source
# File lib/spout/models/dictionary.rb, line 29
def load_all!
  load_variables!
  load_domains!
  load_forms!
  self
end
load_domains!() click to toggle source
# File lib/spout/models/dictionary.rb, line 40
def load_domains!
  load_type!("Domain")
end
load_forms!() click to toggle source
# File lib/spout/models/dictionary.rb, line 44
def load_forms!
  load_type!("Form")
end
load_variables!() click to toggle source
# File lib/spout/models/dictionary.rb, line 36
def load_variables!
  load_type!("Variable")
end

Private Instance Methods

json_files(type) click to toggle source
# File lib/spout/models/dictionary.rb, line 50
def json_files(type)
  Dir.glob(File.join(@app_path, type, "**", "*.json"))
end
load_type!(method) click to toggle source
# File lib/spout/models/dictionary.rb, line 54
def load_type!(method)
  results = instance_variable_get("@#{method.downcase}_files").collect do |file|
    Object.const_get("Spout::Models::#{method}").new(file, @app_path)
  end

  instance_variable_set("@#{method.downcase}s", results)
end