yaks/lib/yaks.rb
require 'forwardable'
require 'set'
require 'pathname'
require 'json'
require 'csv'
require 'concord'
require 'attribs'
require 'inflection'
require 'uri_template'
require 'rack/accept'
require 'yaks/version'
require 'yaks/util'
require 'yaks/configurable'
require 'yaks/fp/callable'
require 'yaks/primitivize'
require 'yaks/builder'
require 'yaks/errors'
require 'yaks/default_policy'
require 'yaks/serializer'
require 'yaks/config'
module Yaks
Undefined = Module.new.freeze
# Set the Root constant as the gems root path
Root = Pathname(__FILE__).join('../..')
DSL_METHODS = [
:format_options,
:rel_template,
:mapper_for,
:before,
:after,
:around,
:skip,
:namespace,
:mapper_namespace,
:serializer,
:json_serializer,
:map_to_primitive
]
ConfigBuilder = Builder.new(Yaks::Config) do
def_set(*Yaks::Config.attributes.names)
def_forward(*DSL_METHODS)
def_forward(*Yaks::DefaultPolicy.public_instance_methods(false))
end
class << self
# @param [Proc] blk
# @return [Yaks::Config]
def new(&blk)
ConfigBuilder.create(&blk)
end
end
end
require 'yaks/resource'
require 'yaks/null_resource'
require 'yaks/resource/link'
require 'yaks/collection_resource'
require 'yaks/html5_forms'
require 'yaks/mapper/association'
require 'yaks/mapper/has_one'
require 'yaks/mapper/has_many'
require 'yaks/mapper/attribute'
require 'yaks/mapper/link'
require 'yaks/mapper/form/field/option'
require 'yaks/mapper/form/field'
require 'yaks/mapper/form/fieldset'
require 'yaks/mapper/form/legend'
require 'yaks/mapper/form/dynamic_field'
require 'yaks/mapper/form/config'
require 'yaks/mapper/form'
require 'yaks/mapper/config'
require 'yaks/mapper'
require 'yaks/mapper/association_mapper'
require 'yaks/collection_mapper'
require 'yaks/resource/has_fields'
require 'yaks/resource/form'
require 'yaks/resource/form/field'
require 'yaks/resource/form/field/option'
require 'yaks/resource/form/fieldset'
require 'yaks/resource/form/legend'
require 'yaks/format'
require 'yaks/format/hal'
require 'yaks/format/halo'
require 'yaks/format/json_api'
require 'yaks/format/collection_json'
require 'yaks/reader/hal'
require 'yaks/reader/json_api'
require 'yaks/pipeline'
require 'yaks/runner'