Class: PushbulletRuby::Ephemerable

Inherits:
Object
  • Object
show all
Defined in:
lib/pushbullet_ruby/ephemerable.rb,
lib/pushbullet_ruby/ephemerable/sms.rb,
lib/pushbullet_ruby/ephemerable/notifitation.rb

Direct Known Subclasses

Notification, Sms

Defined Under Namespace

Classes: MissingParameter, Notification, Sms

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, user_identifier, device_identifier, params) ⇒ Ephemerable

Returns a new instance of Ephemerable.



13
14
15
16
17
18
# File 'lib/pushbullet_ruby/ephemerable.rb', line 13

def initialize(client, user_identifier, device_identifier, params)
  @client = client
  @user_identifier = user_identifier
  @device_identifier = device_identifier
  @params = params
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



7
8
9
# File 'lib/pushbullet_ruby/ephemerable.rb', line 7

def client
  @client
end

#device_identifierObject (readonly)

Returns the value of attribute device_identifier.



7
8
9
# File 'lib/pushbullet_ruby/ephemerable.rb', line 7

def device_identifier
  @device_identifier
end

#paramsObject (readonly)

Returns the value of attribute params.



7
8
9
# File 'lib/pushbullet_ruby/ephemerable.rb', line 7

def params
  @params
end

#user_identifierObject (readonly)

Returns the value of attribute user_identifier.



7
8
9
# File 'lib/pushbullet_ruby/ephemerable.rb', line 7

def user_identifier
  @user_identifier
end

Class Method Details

.push(client, user_identifier, device_identifier, params) ⇒ Object



9
10
11
# File 'lib/pushbullet_ruby/ephemerable.rb', line 9

def self.push(client, user_identifier, device_identifier, params)
  Ephemeral.new(new(client, user_identifier, device_identifier, params).push.body)
end

Instance Method Details

#pushObject

Raises:



20
21
22
23
24
25
26
27
28
# File 'lib/pushbullet_ruby/ephemerable.rb', line 20

def push
  raise MissingParameter unless required_parameters.all? { |e| params.keys.include?(e) }

  payload = {
      type: type,
      push: params.merge(construct_payload(user_identifier, device_identifier))
  }
  client.post('/v2/ephemerals', payload.to_json)
end