Skip to content

Commit ec0e436

Browse files
committed
Allow specifiying of a serialization context
1 parent 2ae3421 commit ec0e436

3 files changed

Lines changed: 12 additions & 4 deletions

File tree

lib/userlist/push/resource.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def respond_to_missing?(method, include_private = false)
7373
end
7474

7575
def to_hash
76-
Serializer.serialize(self)
76+
Serializer.serialize(self, context: :push)
7777
end
7878
alias to_h to_hash
7979

lib/userlist/push/serializer.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33
module Userlist
44
class Push
55
class Serializer
6-
def self.serialize(resource)
7-
new.serialize(resource)
6+
def self.serialize(resource, **options)
7+
new(**options).serialize(resource)
8+
end
9+
10+
attr_reader :context
11+
12+
def initialize(context:)
13+
@context = context
814
end
915

1016
def serialize(resource)
@@ -13,7 +19,7 @@ def serialize(resource)
1319
end
1420

1521
def serialize?(resource)
16-
resource.push?
22+
resource.public_send("#{context}?")
1723
end
1824

1925
private

spec/userlist/push/serializer_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
require 'spec_helper'
22

33
RSpec.describe Userlist::Push::Serializer do
4+
subject { described_class.new(context: :push) }
5+
46
let(:user) do
57
Userlist::Push::User.new(
68
identifier: 'user-identifier',

0 commit comments

Comments
 (0)