class Spout::Models::Record

Base class for spout variables, forms, and domains that are read from JSON files

Public Class Methods

find_by_id(id) click to toggle source

Only returns records with zero json errors, nil otherwise

# File lib/spout/models/record.rb, line 13
def find_by_id(id)
  file_name = Dir.glob(expected_path(id), File::FNM_CASEFOLD).first
  variable = new(file_name, dictionary_root)
  (variable.errors.size > 0 ? nil : variable)
end

Private Class Methods

dictionary_root() click to toggle source
# File lib/spout/models/record.rb, line 33
def dictionary_root
  FileUtils.pwd
end
expected_filename(id) click to toggle source
# File lib/spout/models/record.rb, line 25
def expected_filename(id)
  "#{id.to_s.downcase}.json"
end
expected_path(id) click to toggle source
# File lib/spout/models/record.rb, line 29
def expected_path(id)
  File.join(dictionary_root, record_folder, "**", expected_filename(id))
end
record_folder() click to toggle source
# File lib/spout/models/record.rb, line 21
def record_folder
  "#{name.split('::').last.to_s.downcase}s"
end