Fewer object allocations :)

This commit is contained in:
Joe Corcoran 2016-06-09 11:29:17 +02:00
parent eb0eab5967
commit 5fee54b91b
2 changed files with 9 additions and 14 deletions

View File

@ -1,5 +1,12 @@
module Travis::API::V3 module Travis::API::V3
class Models::Settings class Models::Settings
DEFAULTS = {
'builds_only_with_travis_yml' => false,
'build_pushes' => true,
'build_pull_requests' => true,
'maximum_number_of_builds' => 0
}.freeze
attr_reader :repository attr_reader :repository
def initialize(repository) def initialize(repository)
@ -7,7 +14,7 @@ module Travis::API::V3
end end
def to_h def to_h
defaults.merge(repository.settings || {}) DEFAULTS.merge(repository.settings || {})
end end
def update(settings = {}) def update(settings = {})
@ -16,16 +23,5 @@ module Travis::API::V3
settings.each { |k, v| repository.settings[k] = v } settings.each { |k, v| repository.settings[k] = v }
repository.save! repository.save!
end end
private
def defaults
{
'builds_only_with_travis_yml' => false,
'build_pushes' => true,
'build_pull_requests' => true,
'maximum_number_of_builds' => 0
}
end
end end
end end

View File

@ -9,8 +9,7 @@ module Travis::API::V3
end end
def render(settings, **) def render(settings, **)
response = { '@type' => 'settings'.freeze } { '@type' => 'settings'.freeze }.merge!(settings.to_h)
response.merge(settings.to_h)
end end
end end
end end