Sha256: 2ac95cde0c6040ff308149fdfca1eca78ad942c88c2d3917df8da227b8ed79b3

Contents?: true

Size: 492 Bytes

Versions: 1

Compression:

Stored size: 492 Bytes

Contents

# frozen_string_literal: true

require "json"
require "active_loader/parse_error"

module ActiveLoader
  class JsonLoader
    def initialize(raw_content)
      @raw_content = raw_content.to_s
    end

    def call
      safe_load
    end

    private

      attr_reader :raw_content

      def safe_load
        JSON.parse(raw_content)
      rescue JSON::ParserError => exception
        raise ActiveLoader::ParseError.new(exception.message, loader_name: self.class.to_s)
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_loader-1.0.0 lib/active_loader/json_loader.rb