Skip to content

Commit 31172b1

Browse files
committed
rename context to serialization_context
1 parent e6d1d6b commit 31172b1

File tree

6 files changed

+36
-7
lines changed

6 files changed

+36
-7
lines changed

lib/action_controller/serialization.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require 'active_support/core_ext/class/attribute'
2+
require 'active_model_serializers/serialization_context'
23

34
module ActionController
45
module Serialization
@@ -46,7 +47,7 @@ def use_adapter?
4647

4748
[:_render_option_json, :_render_with_renderer_json].each do |renderer_method|
4849
define_method renderer_method do |resource, options|
49-
options.fetch(:context) { options[:context] = request }
50+
options.fetch(:serialization_context) { options[:serialization_context] = ActiveModelSerializers::SerializationContext.new(request) }
5051
serializable_resource = get_serializer(resource, options)
5152
super(serializable_resource, options)
5253
end

lib/active_model/serializer/adapter/json_api.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def links_for(serializer)
222222
end
223223

224224
def pagination_links_for(serializer, options)
225-
JsonApi::PaginationLinks.new(serializer.object, options[:context]).serializable_hash(options)
225+
JsonApi::PaginationLinks.new(serializer.object, options[:serialization_context]).serializable_hash(options)
226226
end
227227
end
228228
end

lib/active_model/serializer/adapter/json_api/pagination_links.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ def pages_from
4141
end
4242

4343
def url(options)
44-
@url ||= options.fetch(:links, {}).fetch(:self, nil) || original_url
44+
@url ||= options.fetch(:links, {}).fetch(:self, nil) || request_url
4545
end
4646

47-
def original_url
48-
@original_url ||= context.original_url[/\A[^?]+/]
47+
def request_url
48+
@request_url ||= context.request_url
4949
end
5050

5151
def query_parameters
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module ActiveModelSerializers
2+
class SerializationContext
3+
attr_reader :request_url, :query_parameters
4+
5+
def initialize(request)
6+
@request_url = request.original_url[/\A[^?]+/]
7+
@query_parameters = request.query_parameters
8+
end
9+
end
10+
end
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
require 'test_helper'
2+
3+
class ActiveModelSerializers::SerializationContextTest < Minitest::Test
4+
def create_context
5+
request = Minitest::Mock.new
6+
request.expect(:original_url, 'original_url')
7+
request.expect(:query_parameters, 'query_parameters')
8+
9+
ActiveModelSerializers::SerializationContext.new(request)
10+
end
11+
12+
def test_create_context_with_request_url_and_query_parameters
13+
context = create_context
14+
15+
assert_equal context.request_url, 'original_url'
16+
assert_equal context.query_parameters, 'query_parameters'
17+
end
18+
end

test/adapter/json_api/pagination_links_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ def setup
2222

2323
def mock_request(query_parameters = {}, original_url = URI)
2424
context = Minitest::Mock.new
25-
context.expect(:original_url, original_url)
25+
context.expect(:request_url, original_url)
2626
context.expect(:query_parameters, query_parameters)
2727
@options = {}
28-
@options[:context] = context
28+
@options[:serialization_context] = context
2929
end
3030

3131
def load_adapter(paginated_collection, options = {})

0 commit comments

Comments
 (0)