Sha256: de1f92751474020a88036785b83fcd273268ba8896932eb3a81d8d67af091fa1

Contents?: true

Size: 643 Bytes

Versions: 12

Compression:

Stored size: 643 Bytes

Contents

module Sprig
  module Parser
    class GoogleSpreadsheetJson < Base

      def parse
        { :records => records }
      end

      private

      def records
        @records ||= raw_records.map { |record| build_record(record) }
      end

      def build_record(record)
        hash = {}

        record.keys.each do |key|
          attr_name = key.tr('-', '_').scan(/gsx\$([a-z_]+$)/).flatten.first
          hash[attr_name] = record[key]['$t'] if attr_name
        end

        hash
      end

      def raw_records
        json['feed']['entry']
      end

      def json
        @json ||= JSON.load(data_io)
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
sprig-0.3.1 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.3.0 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.2.0 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.9 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.7 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.6 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.5 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.4 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.3 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.2 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.1 lib/sprig/parser/google_spreadsheet_json.rb
sprig-0.1.0 lib/sprig/parser/google_spreadsheet_json.rb