Skip to content

Commit b31b185

Browse files
committed
Replace outdated ActiveModel::Serializers by Panko::Serializer
1 parent 37ea030 commit b31b185

31 files changed

Lines changed: 145 additions & 163 deletions

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
source 'https://rubygems.org'
22

33
gemspec
4+
gem 'panko_serializer', github: 'panko-serializer/panko_serializer'
45

56
gem 'sqlite3'
67

Gemfile.lock

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1+
GIT
2+
remote: https://github.com/panko-serializer/panko_serializer.git
3+
revision: 36f457528c2865585c32767847469ac20c60558b
4+
specs:
5+
panko_serializer (0.7.4)
6+
oj (~> 3.10.0)
7+
18
PATH
29
remote: .
310
specs:
411
shipit-engine (0.33.0)
5-
active_model_serializers (~> 0.9.3)
612
ansi_stream (~> 0.0.6)
713
attr_encrypted (~> 3.1.0)
814
autoprefixer-rails (~> 6.4.1)
@@ -15,6 +21,7 @@ PATH
1521
lodash-rails (~> 4.6.1)
1622
octokit (~> 4.15)
1723
omniauth-github (~> 1.4)
24+
panko_serializer (~> 0.7.4)
1825
pubsubstub (~> 0.2.0)
1926
rails (~> 6.0.0)
2027
rails-timeago (~> 2.13.0)
@@ -69,9 +76,6 @@ GEM
6976
erubi (~> 1.4)
7077
rails-dom-testing (~> 2.0)
7178
rails-html-sanitizer (~> 1.1, >= 1.2.0)
72-
active_model_serializers (0.9.8)
73-
activemodel (>= 3.2)
74-
concurrent-ruby (~> 1.0)
7579
activejob (6.0.3.5)
7680
activesupport (= 6.0.3.5)
7781
globalid (>= 0.3.6)
@@ -185,6 +189,7 @@ GEM
185189
octokit (4.20.0)
186190
faraday (>= 0.9)
187191
sawyer (~> 0.8.0, >= 0.5.3)
192+
oj (3.10.18)
188193
omniauth (1.9.1)
189194
hashie (>= 3.4.6)
190195
rack (>= 1.6.2, < 3)
@@ -337,6 +342,7 @@ DEPENDENCIES
337342
mini_racer
338343
mocha
339344
mysql2
345+
panko_serializer!
340346
pg
341347
pry
342348
rubocop

app/controllers/concerns/shipit/active_model_serializers_patch.rb

Lines changed: 0 additions & 13 deletions
This file was deleted.

app/controllers/concerns/shipit/api/rendering.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module Rendering
55
private
66

77
def render_resources(resources, options = {})
8-
options[:json] = resources
8+
options[:json] = Panko::ArraySerializer.new(resources, each_serializer: Serializer.for(resources)).to_json
99
render(options)
1010
end
1111

@@ -15,7 +15,8 @@ def render_resource(resource, options = {})
1515
elsif resource.errors.any?
1616
render(options.reverse_merge(status: :unprocessable_entity, json: { errors: resource.errors }))
1717
else
18-
render(options.reverse_merge(json: resource))
18+
serializer = Serializer.for(resource).new
19+
render(options.reverse_merge(json: serializer.serialize(resource)))
1920
end
2021
end
2122
end

app/controllers/shipit/api/hooks_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def index
1010
end
1111

1212
def show
13-
render(json: hook)
13+
render_resource(hook)
1414
end
1515

1616
params do

app/controllers/shipit/tasks_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def abort
4848
end
4949

5050
def tail
51-
render(json: TailTaskSerializer.new(task, context: { last_byte: params[:last_byte].to_i }))
51+
render(json: TailTaskSerializer.new(context: { last_byte: params[:last_byte].to_i }).serialize(task))
5252
end
5353

5454
def lookup

app/models/shipit/anonymous_user.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# frozen_string_literal: true
22
module Shipit
33
class AnonymousUser
4+
class << self
5+
def attribute_aliases
6+
{}.freeze
7+
end
8+
end
9+
410
def present?
511
false
612
end

app/models/shipit/hook.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ def listening_event(event)
101101
def coerce_payload(payload)
102102
coerced_payload = payload.dup
103103
payload.each do |key, value|
104-
if serializer = ActiveModel::Serializer.serializer_for(value)
105-
coerced_payload[key] = serializer.new(value)
104+
if serializer = Serializer.for(value)
105+
coerced_payload[key] = serializer.new.serialize(value)
106106
end
107107
end
108108
coerced_payload.to_json

app/serializers/concerns/shipit/conditional_attributes.rb

Lines changed: 0 additions & 23 deletions
This file was deleted.

app/serializers/shipit/commit_serializer.rb

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,13 @@
22
module Shipit
33
class CommitSerializer < ShortCommitSerializer
44
include GithubUrlHelper
5-
include ConditionalAttributes
65

7-
has_one :author
8-
has_one :committer
6+
has_one :author, serializer: UserSerializer
7+
has_one :committer, serializer: UserSerializer
98

109
attributes :additions, :deletions, :authored_at, :committed_at, :html_url, :pull_request, :status, :deployed
1110

12-
def deployed
13-
object.deployed?
14-
end
11+
aliases deployed?: :deployed
1512

1613
def status
1714
object.status.state
@@ -22,14 +19,14 @@ def html_url
2219
end
2320

2421
def pull_request
25-
{
26-
number: object.pull_request_number,
27-
html_url: github_pull_request_url(object),
28-
}
29-
end
30-
31-
def include_pull_request?
32-
object.pull_request?
22+
if object.pull_request?
23+
{
24+
number: object.pull_request_number,
25+
html_url: github_pull_request_url(object),
26+
}
27+
else
28+
SKIP
29+
end
3330
end
3431
end
3532
end

0 commit comments

Comments
 (0)