Sha256: 7baaa0aa7f47734f977b10701d64c5b6227760112dc62b42f3bc05cc5aadd0e6
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module FixtureParser module_function def databases parse_file('databases')['databases'] end def database(id) databases.find { |db| db['id'] == id } end def forms(database_id = nil) if database_id.nil? databases.flat_map do |db| parse_file("databases/#{db['id']}/forms")['forms'] end elsif database(database_id) parse_file("databases/#{database_id}/forms")['forms'] else [] end end def form(id, database_id = nil) forms(database_id).find { |f| f['id'] == id } end def fields(form_id = nil, database_id = nil) if form_id.nil? forms(database_id).flat_map do |form| parse_file("databases/#{form['app_id']}/forms/#{form['id']}/fields")['fields'] end elsif form = form(form_id, database_id) parse_file("databases/#{form['app_id']}/forms/#{form_id}/fields")['fields'] else [] end end def field(id, form_id = nil, database_id = nil) fields(form_id, database_id).find { |f| f['id'] == id } end def records(form_id, database_id, page = 1) parse_file("databases/#{database_id}/forms/#{form_id}/records/#{page}")['records'] end def pretty(method_name, *args) case result = public_send(method_name, *args) when Array result.map { |e| OpenStruct.new(e) } when Hash OpenStruct.new(result) else result end end private module_function def parse_file(file_name) full_name = "#{File.dirname(__FILE__)}/fixtures/#{file_name}.json" if File.exist?(full_name) JSON.parse(File.open(full_name).read) else {} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
task_helper-0.0.3 | spec/support/fixture_parser.rb |