Class: Termtter::Storage::Status
- Inherits:
-
Object
- Object
- Termtter::Storage::Status
- Defined in:
- lib/plugins/storage/status.rb,
lib/plugins/storage/status_mook.rb
Constant Summary collapse
- KEYS =
%w[post_id created_at in_reply_to_status_id in_reply_to_user_id post_text user_id screen_name]
Class Method Summary collapse
- .all ⇒ Object
- .create ⇒ Object
- .insert(data) ⇒ Object
- .search ⇒ Object
- .search_user(query) ⇒ Object
- .size ⇒ Object
Instance Method Summary collapse
-
#initialize ⇒ Status
constructor
A new instance of Status.
Constructor Details
#initialize ⇒ Status
Returns a new instance of Status.
7 8 |
# File 'lib/plugins/storage/status_mook.rb', line 7 def initialize end |
Class Method Details
.all ⇒ Object
13 14 15 |
# File 'lib/plugins/storage/status_mook.rb', line 13 def self.all [] end |
.create ⇒ Object
10 11 |
# File 'lib/plugins/storage/status_mook.rb', line 10 def self.create end |
.insert(data) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/plugins/storage/status.rb', line 66 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 |
.search ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/plugins/storage/status.rb', line 14 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 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.json_to_struct(result) end |
.search_user(query) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# 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 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.json_to_struct(result) end |
.size ⇒ Object
10 11 12 |
# File 'lib/plugins/storage/status.rb', line 10 def self.size DB.instance.db.get_first_value("select count(*) from post").to_i end |