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

Version Path
spout-0.10.0.beta9 lib/spout/models/domain.rb
spout-0.10.0.beta8 lib/spout/models/domain.rb
spout-0.10.0.beta7 lib/spout/models/domain.rb
spout-0.10.0.beta6 lib/spout/models/domain.rb
spout-0.10.0.beta4 lib/spout/models/domain.rb
spout-0.10.0.beta3 lib/spout/models/domain.rb
spout-0.10.0.beta2 lib/spout/models/domain.rb
spout-0.10.0.beta1 lib/spout/models/domain.rb
spout-0.9.1 lib/spout/models/domain.rb
spout-0.9.0 lib/spout/models/domain.rb
spout-0.9.0.rc lib/spout/models/domain.rb
spout-0.9.0.beta2 lib/spout/models/domain.rb
spout-0.9.0.beta1 lib/spout/models/domain.rb
spout-0.8.0 lib/spout/models/domain.rb
spout-0.8.0.rc5 lib/spout/models/domain.rb
spout-0.8.0.rc4 lib/spout/models/domain.rb
spout-0.8.0.rc3 lib/spout/models/domain.rb
spout-0.8.0.rc2 lib/spout/models/domain.rb
spout-0.8.0.rc lib/spout/models/domain.rb
spout-0.8.0.beta15 lib/spout/models/domain.rb