class Line::Bot::MessageBuilder::Base

Attributes

type[RW]

Public Class Methods

new(type) { || ... } click to toggle source
# File lib/line/bot/message_builder/base.rb, line 8
def initialize(type)
  @type = type
  yield
  verify_required
end
required() click to toggle source
# File lib/line/bot/message_builder/base.rb, line 14
def self.required
  {
    'type' => String
  }
end

Public Instance Methods

to_h() click to toggle source
# File lib/line/bot/message_builder/base.rb, line 20
def to_h
  result = {}
  instance_values.each do |key, value|
    camelCase = key.split('_').map.with_index do |str, i|
      if i == 0
        str.downcase
      else
        str.capitalize
      end
    end.join
    result[camelCase] = value unless value.nil?
  end
  result
end

Private Instance Methods

instance_values() click to toggle source
# File lib/line/bot/message_builder/base.rb, line 37
def instance_values
  Hash[instance_variables.map { |name| [name[1..-1], instance_variable_get(name)] }]
end
verify_instance_value_type(name, type) click to toggle source
# File lib/line/bot/message_builder/base.rb, line 45
def verify_instance_value_type(name, type)
  raise TypeError, "@#{name}: #{instance_values[name]}, expect to be #{type}" unless instance_values[name].is_a? type
end
verify_required() click to toggle source
# File lib/line/bot/message_builder/base.rb, line 41
def verify_required
  self.class.required.each { |key, value| verify_instance_value_type key, value }
end