class Firepush::Recipient::Builder
Attributes
_args[R]
Public Class Methods
build(args)
click to toggle source
@param args [Hash] @option args [Hash] :topic @option args [Hash] :token @option args [Hash] :condition
# File lib/firepush/recipient/builder.rb, line 12 def self.build(args) new(args).build end
Private Class Methods
new(args)
click to toggle source
@private @see .build
# File lib/firepush/recipient/builder.rb, line 18 def initialize(args) @_args = args check_args! end
Public Instance Methods
build()
click to toggle source
@return [Firepush::Recipient::Base]
# File lib/firepush/recipient/builder.rb, line 26 def build case when topic? Topic.new(_args.fetch(:topic)) when token? Token.new(_args.fetch(:token)) when condition? Condition.new(_args.fetch(:condition)) end end
Private Instance Methods
check_args!()
click to toggle source
@private @raise [ArgumentError]
# File lib/firepush/recipient/builder.rb, line 43 def check_args! count = TYPES.reduce(0) do |sum, type| sum += 1 if _args.key?(type) sum end return if count == 1 raise ::ArgumentError.new("Have to set one of :topic, :token, or :condition") end
condition?()
click to toggle source
@private @return [Boolean]
# File lib/firepush/recipient/builder.rb, line 55 def condition? _args.key?(:condition) end
token?()
click to toggle source
@private @return [Boolean]
# File lib/firepush/recipient/builder.rb, line 61 def token? _args.key?(:token) end
topic?()
click to toggle source
@private @return [Boolean]
# File lib/firepush/recipient/builder.rb, line 67 def topic? _args.key?(:topic) end