Sha256: d5846e9f4c96a31511c6053b925f27a7af7c73ad98aeede1bacc959bd168bf1c
Contents?: true
Size: 1.34 KB
Versions: 20
Compression:
Stored size: 1.34 KB
Contents
require 'json' require 'spout/models/option' module Spout module Models class Domain attr_accessor :id, :folder, :options attr_reader :errors def initialize(file_name, dictionary_root) @errors = [] @id = file_name.to_s.gsub(/^(.*)\/|\.json$/, '').downcase @folder = file_name.to_s.gsub(/^#{dictionary_root}\/domains\/|#{@id}\.json$/, '') @options = [] json = begin if File.exist?(file_name) JSON.parse(File.read(file_name)) else @errors << "No corresponding #{@id}.json file found." nil end rescue => e @errors << "Parsing error found in #{@id}.json: #{e.message}" if file_name != nil nil end if json and json.kind_of? Array @id = file_name.to_s.gsub(/^(.*)\/|\.json$/, '').downcase @options = (json || []).collect do |option| Spout::Models::Option.new(option) end elsif json @errors << "Domain must be a valid array in the following format: [\n {\n \"value\": \"1\",\n \"display_name\": \"First Choice\",\n \"description\": \"First Description\"\n },\n {\n \"value\": \"2\",\n \"display_name\": \"Second Choice\",\n \"description\": \"Second Description\"\n }\n]" end end end end end
Version data entries
20 entries across 20 versions & 1 rubygems