Class: Hackle::User::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/hackle/user.rb

Instance Method Summary collapse

Constructor Details

#initializeBuilder

Returns a new instance of Builder.



56
57
58
59
# File 'lib/hackle/user.rb', line 56

def initialize
  @identifiers = IdentifiersBuilder.new
  @properties = PropertiesBuilder.new
end

Instance Method Details

#buildUser

Returns:



113
114
115
116
117
118
119
120
121
# File 'lib/hackle/user.rb', line 113

def build
  User.new(
    id: @id,
    user_id: @user_id,
    device_id: @device_id,
    identifiers: @identifiers.build,
    properties: @properties.build
  )
end

#device_id(device_id) ⇒ User::Builder

Parameters:

  • device_id (String, Numeric)

Returns:



77
78
79
80
# File 'lib/hackle/user.rb', line 77

def device_id(device_id)
  @device_id = IdentifiersBuilder.sanitize_value_or_nil(device_id)
  self
end

#id(id) ⇒ User::Builder

Parameters:

  • id (String, Numeric)

Returns:



63
64
65
66
# File 'lib/hackle/user.rb', line 63

def id(id)
  @id = IdentifiersBuilder.sanitize_value_or_nil(id)
  self
end

#identifier(identifier_type, identifier_value) ⇒ User::Builder

Parameters:

  • identifier_type (String)
  • identifier_value (String, nil)

Returns:



85
86
87
88
# File 'lib/hackle/user.rb', line 85

def identifier(identifier_type, identifier_value)
  @identifiers.add(identifier_type, identifier_value)
  self
end

#identifiers(identifiers) ⇒ User::Builder

Parameters:

  • identifiers (Hash{String => String})

Returns:



92
93
94
95
# File 'lib/hackle/user.rb', line 92

def identifiers(identifiers)
  @identifiers.add_all(identifiers)
  self
end

#properties(properties) ⇒ User::Builder

Parameters:

  • properties (Hash{String => Object})

Returns:



107
108
109
110
# File 'lib/hackle/user.rb', line 107

def properties(properties)
  @properties.add_all(properties)
  self
end

#property(key, value) ⇒ User::Builder

Parameters:

  • key (String)
  • value (Object, nil)

Returns:



100
101
102
103
# File 'lib/hackle/user.rb', line 100

def property(key, value)
  @properties.add(key, value)
  self
end

#user_id(user_id) ⇒ User::Builder

Parameters:

  • user_id (String, Numeric)

Returns:



70
71
72
73
# File 'lib/hackle/user.rb', line 70

def user_id(user_id)
  @user_id = IdentifiersBuilder.sanitize_value_or_nil(user_id)
  self
end