Class: GnipApi::Apis::PowerTrack::Rules

Inherits:
Object
  • Object
show all
Defined in:
lib/gnip_api/apis/power_track/rules.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Rules

In order to do any operation, you need to specify:

  • label: the label of your stream

  • source: which data source to use (I think only twitter is available)

[View source]

14
15
16
17
18
# File 'lib/gnip_api/apis/power_track/rules.rb', line 14

def initialize params={}
  @adapter = GnipApi::Adapter.new
  @label = params[:label] || GnipApi.config.label
  @source = params[:source] || GnipApi.config.source
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.


9
10
11
# File 'lib/gnip_api/apis/power_track/rules.rb', line 9

def adapter
  @adapter
end

Instance Method Details

#construct_rules(rules) ⇒ Object

Parses an array of GnipApi::Apis::PowerTrack::Rule objects to the necesary JSON format for the endpoint

[View source]

45
46
47
48
49
50
51
# File 'lib/gnip_api/apis/power_track/rules.rb', line 45

def construct_rules rules
  parsed_rules = {:rules => []}
  rules.each do |rule|
    parsed_rules[:rules] << rule.attributes
  end
  parsed_rules.to_json
end

#create(rules) ⇒ Object

Creates the specified rule. Parameters:

  • rules: GnipApi::Apis::PowerTrack::Rule object

[View source]

29
30
31
32
33
# File 'lib/gnip_api/apis/power_track/rules.rb', line 29

def create rules
  raise GnipApi::Errors::PowerTrack::MissingRules.new if rules.nil? || rules.empty?
  request = create_post_request(construct_rules(rules))
  adapter.post(request)
end

#delete(rules) ⇒ Object

Deletes the specified rule. Parameters:

  • rules: GnipApi::Apis::PowerTrack::Rule object

[View source]

37
38
39
40
41
# File 'lib/gnip_api/apis/power_track/rules.rb', line 37

def delete rules
  raise GnipApi::Errors::PowerTrack::MissingRules.new if rules.nil? || rules.empty?
  request = create_delete_request(construct_rules(rules))
  adapter.delete(request)
end

#listObject

Returns an array of defined rules

[View source]

21
22
23
24
25
# File 'lib/gnip_api/apis/power_track/rules.rb', line 21

def list
  request = create_get_request
  rules = adapter.get(request)
  parse_rules(rules)
end

#parse_rules(data) ⇒ Object

[View source]

53
54
55
56
# File 'lib/gnip_api/apis/power_track/rules.rb', line 53

def parse_rules data
  parsed_data = GnipApi::JsonParser.parse(data)
  parsed_data['rules'].map{|rule| GnipApi::Apis::PowerTrack::Rule.new(:value => rule['value'], :tag => rule['tag'])}
end