Class: Line::Bot::V2::Insight::GetFriendsDemographicsResponse

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

Overview

Get friend demographics

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(available: nil, genders: nil, ages: nil, areas: nil, app_types: nil, subscription_periods: nil, **dynamic_attributes) ⇒ GetFriendsDemographicsResponse

Returns a new instance of GetFriendsDemographicsResponse.

Parameters:

  • available (Boolean, nil) (defaults to: nil)

    true if friend demographic information is available.

  • genders (Array[GenderTile, Hash[Symbol, untyped]], nil) (defaults to: nil)

    Percentage per gender.

  • ages (Array[AgeTile, Hash[Symbol, untyped]], nil) (defaults to: nil)

    Percentage per age group.

  • areas (Array[AreaTile, Hash[Symbol, untyped]], nil) (defaults to: nil)

    Percentage per area.

  • app_types (Array[AppTypeTile, Hash[Symbol, untyped]], nil) (defaults to: nil)

    Percentage by OS.

  • subscription_periods (Array[SubscriptionPeriodTile, Hash[Symbol, untyped]], nil) (defaults to: nil)

    Percentage per friendship duration.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/line/bot/v2/insight/model/get_friends_demographics_response.rb', line 42

def initialize(
  available: nil,
  genders: nil,
  ages: nil,
  areas: nil,
  app_types: nil,
  subscription_periods: nil,
  **dynamic_attributes
)
  
  @available = available
  @genders = genders&.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::Insight::GenderTile.create(**item) # steep:ignore InsufficientKeywordArguments
    else
      item
    end
  end
  @ages = ages&.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::Insight::AgeTile.create(**item) # steep:ignore InsufficientKeywordArguments
    else
      item
    end
  end
  @areas = areas&.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::Insight::AreaTile.create(**item) # steep:ignore InsufficientKeywordArguments
    else
      item
    end
  end
  @app_types = app_types&.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::Insight::AppTypeTile.create(**item) # steep:ignore InsufficientKeywordArguments
    else
      item
    end
  end
  @subscription_periods = subscription_periods&.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::Insight::SubscriptionPeriodTile.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

#agesArray[AgeTile]?

Returns Percentage per age group.

Returns:

  • (Array[AgeTile], nil)

    Percentage per age group.



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

def ages
  @ages
end

#app_typesArray[AppTypeTile]?

Returns Percentage by OS.

Returns:



31
32
33
# File 'lib/line/bot/v2/insight/model/get_friends_demographics_response.rb', line 31

def app_types
  @app_types
end

#areasArray[AreaTile]?

Returns Percentage per area.

Returns:

  • (Array[AreaTile], nil)

    Percentage per area.



28
29
30
# File 'lib/line/bot/v2/insight/model/get_friends_demographics_response.rb', line 28

def areas
  @areas
end

#availableBoolean?

Returns true if friend demographic information is available.

Returns:

  • (Boolean, nil)

    true if friend demographic information is available.



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

def available
  @available
end

#gendersArray[GenderTile]?

Returns Percentage per gender.

Returns:

  • (Array[GenderTile], nil)

    Percentage per gender.



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

def genders
  @genders
end

#subscription_periodsArray[SubscriptionPeriodTile]?

Returns Percentage per friendship duration.

Returns:



34
35
36
# File 'lib/line/bot/v2/insight/model/get_friends_demographics_response.rb', line 34

def subscription_periods
  @subscription_periods
end

Class Method Details

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

Create an instance of the class from a hash

Parameters:

  • args (Hash)

    Hash containing all the required attributes

Returns:



105
106
107
108
# File 'lib/line/bot/v2/insight/model/get_friends_demographics_response.rb', line 105

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

Returns true if the objects are equal, false otherwise.

Parameters:

  • other (Object)

    Object to compare

Returns:

  • (Boolean)

    true if the objects are equal, false otherwise



112
113
114
115
116
117
118
# File 'lib/line/bot/v2/insight/model/get_friends_demographics_response.rb', line 112

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

Returns Hash code of the object.

Returns:

  • (Integer)

    Hash code of the object



121
122
123
# File 'lib/line/bot/v2/insight/model/get_friends_demographics_response.rb', line 121

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