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(query)
click to toggle source
# File lib/plugins/storage/status.rb, line 13 def self.search(query) raise "query must be Hash(#{query}, #{query.class})" unless query.kind_of? Hash if query[:text] == nil then query[:text] = ''; end if query[:user] == nil then query[:user] = ''; end 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 post_text like '%' || ? || '%'" DB.instance.db.execute(sql, query[:text]) 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
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