mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
commit
17711a8d81
@ -54,7 +54,6 @@ Gem::Specification.new do |spec|
|
|||||||
spec.add_development_dependency 'bundler', '~> 1.6'
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
||||||
spec.add_development_dependency 'simplecov', '~> 0.11'
|
spec.add_development_dependency 'simplecov', '~> 0.11'
|
||||||
spec.add_development_dependency 'timecop', '~> 0.7'
|
spec.add_development_dependency 'timecop', '~> 0.7'
|
||||||
spec.add_development_dependency 'minitest-reporters'
|
|
||||||
spec.add_development_dependency 'grape', ['>= 0.13', '< 1.0']
|
spec.add_development_dependency 'grape', ['>= 0.13', '< 1.0']
|
||||||
spec.add_development_dependency 'json_schema'
|
spec.add_development_dependency 'json_schema'
|
||||||
spec.add_development_dependency 'rake', ['>= 10.0', '< 12.0']
|
spec.add_development_dependency 'rake', ['>= 10.0', '< 12.0']
|
||||||
|
|||||||
@ -38,6 +38,7 @@ module ActiveModel
|
|||||||
super
|
super
|
||||||
@_links = {}
|
@_links = {}
|
||||||
@_include_data = true
|
@_include_data = true
|
||||||
|
@_meta = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def link(name, value = nil, &block)
|
def link(name, value = nil, &block)
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
require 'active_support/core_ext/module/delegation'
|
|
||||||
|
|
||||||
module ActiveModelSerializers
|
module ActiveModelSerializers
|
||||||
module Adapter
|
module Adapter
|
||||||
class JsonApi
|
class JsonApi
|
||||||
@ -41,8 +39,7 @@ module ActiveModelSerializers
|
|||||||
# meta: meta,
|
# meta: meta,
|
||||||
# }.reject! {|_,v| v.nil? }
|
# }.reject! {|_,v| v.nil? }
|
||||||
class Link
|
class Link
|
||||||
include SerializationContext.url_helpers
|
include SerializationContext::UrlHelpers
|
||||||
delegate :default_url_options, to: SerializationContext
|
|
||||||
|
|
||||||
def initialize(serializer, value)
|
def initialize(serializer, value)
|
||||||
@object = serializer.object
|
@object = serializer.object
|
||||||
@ -70,8 +67,8 @@ module ActiveModelSerializers
|
|||||||
return @value if @value
|
return @value if @value
|
||||||
|
|
||||||
hash = {}
|
hash = {}
|
||||||
hash[:href] = @href if @href
|
hash[:href] = @href if defined?(@href)
|
||||||
hash[:meta] = @meta if @meta
|
hash[:meta] = @meta if defined?(@meta)
|
||||||
|
|
||||||
hash
|
hash
|
||||||
end
|
end
|
||||||
|
|||||||
@ -2,6 +2,22 @@ module ActiveModelSerializers
|
|||||||
class SerializationContext
|
class SerializationContext
|
||||||
class << self
|
class << self
|
||||||
attr_writer :url_helpers, :default_url_options
|
attr_writer :url_helpers, :default_url_options
|
||||||
|
def url_helpers
|
||||||
|
@url_helpers ||= Module.new
|
||||||
|
end
|
||||||
|
|
||||||
|
def default_url_options
|
||||||
|
@default_url_options ||= {}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
module UrlHelpers
|
||||||
|
def self.included(base)
|
||||||
|
base.send(:include, SerializationContext.url_helpers)
|
||||||
|
end
|
||||||
|
|
||||||
|
def default_url_options
|
||||||
|
SerializationContext.default_url_options
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_reader :request_url, :query_parameters, :key_transform
|
attr_reader :request_url, :query_parameters, :key_transform
|
||||||
@ -13,13 +29,5 @@ module ActiveModelSerializers
|
|||||||
@default_url_options = options.delete(:default_url_options) || self.class.default_url_options
|
@default_url_options = options.delete(:default_url_options) || self.class.default_url_options
|
||||||
@key_transform = options.delete(:key_transform)
|
@key_transform = options.delete(:key_transform)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.url_helpers
|
|
||||||
@url_helpers ||= Module.new
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.default_url_options
|
|
||||||
@default_url_options ||= {}
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -42,7 +42,7 @@ module ActiveModelSerializers
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_id_defined_on_fragmented
|
def test_id_defined_on_fragmented
|
||||||
FragmentedSerializer.fragmented(WithDefinedIdSerializer.new(@author))
|
FragmentedSerializer.fragmented(WithDefinedIdSerializer.new(@model))
|
||||||
test_id(FragmentedSerializer, 'special_id')
|
test_id(FragmentedSerializer, 'special_id')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
1
test/fixtures/active_record.rb
vendored
1
test/fixtures/active_record.rb
vendored
@ -2,6 +2,7 @@ require 'active_record'
|
|||||||
|
|
||||||
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
|
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
|
||||||
ActiveRecord::Schema.define do
|
ActiveRecord::Schema.define do
|
||||||
|
self.verbose = false
|
||||||
create_table :posts, force: true do |t|
|
create_table :posts, force: true do |t|
|
||||||
t.string :title
|
t.string :title
|
||||||
t.text :body
|
t.text :body
|
||||||
|
|||||||
@ -36,8 +36,6 @@ else
|
|||||||
# https://github.com/seattlerb/minitest/blob/e21fdda9d/lib/minitest/autorun.rb
|
# https://github.com/seattlerb/minitest/blob/e21fdda9d/lib/minitest/autorun.rb
|
||||||
# https://github.com/seattlerb/minitest/blob/e21fdda9d/lib/minitest.rb#L45-L59
|
# https://github.com/seattlerb/minitest/blob/e21fdda9d/lib/minitest.rb#L45-L59
|
||||||
end
|
end
|
||||||
require 'minitest/reporters'
|
|
||||||
Minitest::Reporters.use!
|
|
||||||
|
|
||||||
require 'support/rails_app'
|
require 'support/rails_app'
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user