Sha256: d8b057519fe21b009a06ee54bf1f0618d4f97729eb80fade249e28593e4a5b21

Contents?: true

Size: 497 Bytes

Versions: 5

Compression:

Stored size: 497 Bytes

Contents

# frozen_string_literal: true

require 'json'

module Leftovers
  module Precompilers
    module JSON
      class << self
        def precompile(json)
          "__leftovers_document(#{to_ruby_argument(::JSON.parse(json))})"
        end

        private

        def to_ruby_argument(value)
          ruby = value.inspect
          return ruby unless value.is_a?(Array)

          ruby.delete_prefix!('[')
          ruby.delete_suffix!(']')

          ruby
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
leftovers-0.11.1 lib/leftovers/precompilers/json.rb
leftovers-0.11.0 lib/leftovers/precompilers/json.rb
leftovers-0.10.0 lib/leftovers/precompilers/json.rb
leftovers-0.9.0 lib/leftovers/precompilers/json.rb
leftovers-0.8.0 lib/leftovers/precompilers/json.rb