Class: Skypescraper::Extractor

Inherits:
Object
  • Object
show all
Defined in:
lib/skypescraper/extractor.rb

Constant Summary collapse

CONVERSATIONS_SQL =
"  SELECT id, COALESCE(displayname, meta_topic, identity) AS title\n         FROM conversations\n         WHERE id IN (\n            SELECT  DISTINCT(convo_id)\n                    FROM participants\n                    WHERE identity = ?\n         )\n         ORDER BY last_activity_timestamp DESC\n"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(database) ⇒ Extractor

Returns a new instance of Extractor.



18
19
20
# File 'lib/skypescraper/extractor.rb', line 18

def initialize(database)
  self.class.connection = SQLite3::Database.new(database)
end

Class Method Details

.connection ⇒ Object



12
13
14
15
# File 'lib/skypescraper/extractor.rb', line 12

def connection
  raise 'You must establish a connection by calling Skypescraper::Extractor.new first' unless @db
  @db
end

.connection=(db) ⇒ Object



8
9
10
# File 'lib/skypescraper/extractor.rb', line 8

def connection=(db)
  @db = db
end

Instance Method Details

#connection ⇒ Object



22
23
24
# File 'lib/skypescraper/extractor.rb', line 22

def connection
  self.class.connection
end

#conversations_for(identity) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/skypescraper/extractor.rb', line 36

def conversations_for(identity)
  return @conversations if @conversations

  @conversations = []
  connection.execute(CONVERSATIONS_SQL, identity) do |row|
    @conversations << Skypescraper::Conversation.new(*row)
  end
  @conversations
end