Class: BungieClient::Wrappers::User

Inherits:
Default
  • Object
show all
Defined in:
lib/bungie_client/wrappers/user.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Default

#call_service, #client, #method_missing, services

Constructor Details

#initialize(options) ⇒ User

Note:

maybe add the ‘destiny_membership_id` as an alternative to `display_name`

Initialize wrapper with user’s preset

Parameters:

  • options (Hash)

    a customizable set of options

Options Hash (options):

  • :membership_type (Integer)

    Platform type number (xbox - 1, playstation - 2, all - 256)

  • :display_name (String)

    Simple user name



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/bungie_client/wrappers/user.rb', line 11

def initialize(options)
  super

  # set membershipType
  if %w(1 2 256).include? options[:membership_type].to_s
    @membership_type = options[:membership_type].to_s
  else
    @membership_type = '256'
  end

  # set displayName
  if options[:display_name].is_a? String
    @display_name = options[:display_name]
  else
    raise 'You must set user display name'
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class BungieClient::Wrappers::Default

Instance Attribute Details

#display_nameObject (readonly)

Returns the value of attribute display_name.



3
4
5
# File 'lib/bungie_client/wrappers/user.rb', line 3

def display_name
  @display_name
end

#membership_typeObject (readonly)

Returns the value of attribute membership_type.



3
4
5
# File 'lib/bungie_client/wrappers/user.rb', line 3

def membership_type
  @membership_type
end

Instance Method Details

#destiny_membership_idObject

Get DestinyMembershipId of selected user



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/bungie_client/wrappers/user.rb', line 30

def destiny_membership_id
  return @destiny_membership_id unless @destiny_membership_id.nil?

  @destiny_membership_id = call_service(
    'get_membership_id_by_display_name',
    {
      :displayName =>  @display_name,
      :membershipType => @membership_type
    }
  )
end

#fill_url(url, params) ⇒ Object



42
43
44
45
46
47
48
49
50
51
# File 'lib/bungie_client/wrappers/user.rb', line 42

def fill_url(url, params)
  params = {} unless params.is_a? Hash

  params[:displayName] = @display_name
  params[:membershipType] = @membership_type
  params[:destinyMembershipId] = destiny_membership_id if url.include? '{destinyMembershipId}'
  params[:membershipId] = destiny_membership_id if url.include? '{membershipId}'

  super
end