lib/tokamak/builder/json.rb in tokamak-1.1.1 vs lib/tokamak/builder/json.rb in tokamak-1.1.2
- old
+ new
@@ -1,18 +1,22 @@
-require "json/pure"
-
module Tokamak
module Builder
class Json < Tokamak::Builder::Base
builder_for "application/json"
attr_reader :raw
def initialize(obj, options = {})
+ initialize_library
@raw = options[:root] ? { options[:root] => {} } : {}
@current = options[:root] ? @raw[options[:root]] : @raw
@obj = obj
+ end
+
+ def initialize_library
+ return if defined?(::JSON)
+ require "json/pure"
end
def members(options = {}, &block)
collection = options[:collection] || @obj
raise Tokamak::BuilderError.new("Members method require a collection to execute") unless collection.respond_to?(:each)