class Termtter::Storage::Status

Constants

KEYS

Public Class Methods

all() click to toggle source
# File lib/plugins/storage/status_mook.rb, line 12
def self.all
  []
end
create() click to toggle source
# File lib/plugins/storage/status_mook.rb, line 9
def self.create
end
insert(data) click to toggle source
# File lib/plugins/storage/status.rb, line 67
def self.insert(data)
  return unless data[:text]
  DB.instance.db.execute(
    "insert into post values(?,?,?,?,?,?)",
    data[:post_id],
    data[:created_at],
    data[:in_reply_to_status_id],
    data[:in_reply_to_user_id],
    data[:text],
    data[:user_id])
  DB.instance.db.execute(
    "insert into user values(?,?)",
    data[:user_id],
    data[:screen_name])
rescue SQLite3::SQLException
end
new() click to toggle source
# File lib/plugins/storage/status_mook.rb, line 6
def initialize
end
search_user(query) click to toggle source
# File lib/plugins/storage/status.rb, line 43
def self.search_user(query)
  raise "query must be Hash(#{query}, #{query.class})" unless query.kind_of? Hash
  result = []
  sql = "select created_at, screen_name, post_text, in_reply_to_status_id, post_id, user_id "
  sql += "from post inner join user on post.user_id = user.id where "
  sql += query[:user].split(' ').map!{|que| que.gsub(/(\w+)/, 'screen_name like \'%\1%\'')}.join(' or ')
  DB.instance.db.execute(sql) do |created_at, screen_name, post_text, in_reply_to_status_id, post_id, user_id|
    created_at = Time.at(created_at).to_s
    post_text.force_encoding('UTF-8') if post_text.respond_to?(:force_encoding)
    result << {
      :id => post_id,
      :created_at => created_at,
      :text => post_text,
      :in_reply_to_status_id => in_reply_to_status_id,
      :in_reply_to_user_id => nil,
      :user => {
        :id => user_id,
        :screen_name => screen_name
      }
    }
  end
  Rubytter.structize(result)
end
size() click to toggle source
# File lib/plugins/storage/status.rb, line 9
def self.size
  DB.instance.db.get_first_value("select count(*) from post").to_i
end

Private Instance Methods

connect() click to toggle source
# File lib/plugins/storage/status_mook.rb, line 24
def connect
  @db = SQLite3::Database.new(File.expand_path('~/test.db'))
  @db.type_translation = true
end
db() click to toggle source
# File lib/plugins/storage/status_mook.rb, line 20
def db
  @db ||= connect
end