Class: Line::Bot::V2::Insight::GetStatisticsPerUnitResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb

Overview

Response object for ‘get statistics per unit`

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(overview:, messages:, clicks:, **dynamic_attributes) ⇒ GetStatisticsPerUnitResponse



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb', line 30

def initialize(
  overview:,
  messages:,
  clicks:,
  **dynamic_attributes
)
  
  @overview = overview.is_a?(Line::Bot::V2::Insight::GetStatisticsPerUnitResponseOverview) ? overview : Line::Bot::V2::Insight::GetStatisticsPerUnitResponseOverview.create(**overview) # steep:ignore
  @messages = messages.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::Insight::GetStatisticsPerUnitResponseMessage.create(**item) # steep:ignore InsufficientKeywordArguments
    else
      item
    end
  end
  @clicks = clicks.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::Insight::GetStatisticsPerUnitResponseClick.create(**item) # steep:ignore InsufficientKeywordArguments
    else
      item
    end
  end

  dynamic_attributes.each do |key, value|
    self.class.attr_accessor key

    if value.is_a?(Hash)
      struct_klass = Struct.new(*value.keys.map(&:to_sym))
      struct_values = value.map { |_k, v| v.is_a?(Hash) ? Line::Bot::V2::Utils.hash_to_struct(v) : v }
      instance_variable_set("@#{key}", struct_klass.new(*struct_values))
    else
      instance_variable_set("@#{key}", value)
    end
  end
end

Instance Attribute Details

#clicksArray[GetStatisticsPerUnitResponseClick]



25
26
27
# File 'lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb', line 25

def clicks
  @clicks
end

#messagesArray[GetStatisticsPerUnitResponseMessage]



22
23
24
# File 'lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb', line 22

def messages
  @messages
end

#overviewGetStatisticsPerUnitResponseOverview



19
20
21
# File 'lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb', line 19

def overview
  @overview
end

Class Method Details

.create(args) ⇒ Line::Bot::V2::Insight::GetStatisticsPerUnitResponse

Create an instance of the class from a hash



69
70
71
72
# File 'lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb', line 69

def self.create(args) # steep:ignore
  symbolized_args = Line::Bot::V2::Utils.deep_symbolize(args)
  return new(**symbolized_args) # steep:ignore
end

Instance Method Details

#==(other) ⇒ Boolean



76
77
78
79
80
81
82
# File 'lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb', line 76

def ==(other)
  return false unless self.class == other.class

  instance_variables.all? do |var|
      instance_variable_get(var) == other.instance_variable_get(var)
  end
end

#hashInteger



85
86
87
# File 'lib/line/bot/v2/insight/model/get_statistics_per_unit_response.rb', line 85

def hash
  [self.class, *instance_variables.map { |var| instance_variable_get(var) }].hash
end