termtter 2.2.1 → 2.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +7 -0
- data/Gemfile +6 -3
- data/README.rdoc +6 -0
- data/VERSION +1 -1
- data/lib/plugins/ar-single.rb +84 -0
- data/lib/plugins/defaults/user.rb +3 -3
- data/lib/plugins/fluentd.rb +22 -0
- data/lib/termtter/rubytter_proxy.rb +52 -52
- data/lib/termtter/version.rb +1 -1
- data/spec/plugins/ar-single_spec.rb +53 -0
- data/spec/plugins/db_spec.rb +0 -48
- data/spec/plugins/expand_url_spec.rb +20 -4
- data/termtter.gemspec +24 -12
- metadata +54 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47109373f39797dc79ef16623fae5412b2edf692
|
4
|
+
data.tar.gz: 208d6c0924fed76cad20f68174cca37ff4612aea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd84b33c702b44a1192c5d7045cb5d8b45ab93dd5c03155590fd6bafeceaaf09295c683be90e8f10c81d90bfc72fd7bf2092190df61427907539d8ac8635553c
|
7
|
+
data.tar.gz: a59bf708e6403d198d8fadd463dc5bab21feef91d666382b6390d80e30d295b49a3721620939873ef76f5c41715f4e761551ba5f3ef2788433e4d12484528eb1
|
data/ChangeLog
CHANGED
data/Gemfile
CHANGED
@@ -2,11 +2,14 @@
|
|
2
2
|
source 'https://rubygems.org'
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
gem 'json', '
|
6
|
-
gem 'highline', '
|
5
|
+
gem 'json', '>= 1.1.3'
|
6
|
+
gem 'highline', '>= 1.5.0'
|
7
7
|
gem 'termcolor', '~> 1.0.0'
|
8
8
|
gem 'rubytter', '~> 1.5.1'
|
9
|
-
gem 'notify', '
|
9
|
+
gem 'notify', '>= 0.5.1'
|
10
|
+
gem 'activerecord', '~> 4.0.0'
|
11
|
+
gem 'builder', '>= 3.0.4'
|
12
|
+
gem 'fluent-logger', '>= 0.4.6'
|
10
13
|
|
11
14
|
group :test do
|
12
15
|
gem 'rake'
|
data/README.rdoc
CHANGED
@@ -8,6 +8,12 @@ For more information, see http://termtter.github.com/ and http://lingr.com/room/
|
|
8
8
|
|
9
9
|
$ sudo emerge termtter
|
10
10
|
|
11
|
+
This will install very old version of termtter. Just use ujihisa-overlay instead to install latest version of termtter.
|
12
|
+
|
13
|
+
https://github.com/ujihisa/overlay/tree/master/net-misc/termtter
|
14
|
+
|
15
|
+
This will install termtter 2.2.1 for ruby 2.0.0.
|
16
|
+
|
11
17
|
== INSTALL (for Mac OS X with XCode):
|
12
18
|
|
13
19
|
$ gem install termtter
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.2.
|
1
|
+
2.2.2
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'active_record'
|
3
|
+
config.plugins.db.set_default(:path, Termtter::CONF_DIR + '/termtter.db')
|
4
|
+
|
5
|
+
ActiveRecord::Base.logger=Logger.new(nil)
|
6
|
+
ActiveRecord::Base.establish_connection(
|
7
|
+
:adapter => "sqlite3",
|
8
|
+
:database => config.plugins.db.path
|
9
|
+
)
|
10
|
+
|
11
|
+
class Status < ActiveRecord::Base
|
12
|
+
end
|
13
|
+
|
14
|
+
unless Status.table_exists?()
|
15
|
+
ActiveRecord::Migration.create_table :statuses do |t|
|
16
|
+
t.column :uid, :integer
|
17
|
+
t.column :screen_name, :string
|
18
|
+
t.column :id_str, :string
|
19
|
+
t.column :text, :string
|
20
|
+
t.column :created_at, :datetime
|
21
|
+
t.column :protected, :boolean
|
22
|
+
t.column :in_reply_to_status_id, :integer
|
23
|
+
t.column :in_reply_to_user_id, :integer
|
24
|
+
t.column :in_reply_to_screen_name, :string
|
25
|
+
t.column :statuses_count, :integer
|
26
|
+
t.column :friends_count, :integer
|
27
|
+
t.column :followers_count, :integer
|
28
|
+
t.column :source, :string
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
module Termtter
|
33
|
+
module Client
|
34
|
+
register_hook(:collect_statuses_for_db, :point => :pre_filter) do |statuses, event|
|
35
|
+
statuses.each do |s|
|
36
|
+
unless Status.exists?(s.id)
|
37
|
+
status = {}
|
38
|
+
Status.columns.map{|x| x.name.intern }.each do |col|
|
39
|
+
status[col] =
|
40
|
+
if col == :uid
|
41
|
+
s.user.id
|
42
|
+
elsif col == :screen_name || col == :statuses_count || col == :friends_count || col == :followers_count || col == :protected
|
43
|
+
s.user[col]
|
44
|
+
else
|
45
|
+
s[col]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
Status.create(status)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
register_command(:db_search, :alias => :ds) do |arg|
|
54
|
+
statuses = Status.find(
|
55
|
+
:all,
|
56
|
+
:conditions => [
|
57
|
+
'text LIKE :l',
|
58
|
+
{:l => "%" + arg + "%"}],
|
59
|
+
:limit => 20)
|
60
|
+
output(statuses, :db_search)
|
61
|
+
end
|
62
|
+
|
63
|
+
register_command(:db_clear) do |arg|
|
64
|
+
if confirm('Are you sure?')
|
65
|
+
Status.delete_all
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
register_command(:db_list) do |arg|
|
70
|
+
user_name = normalize_as_user_name(arg)
|
71
|
+
statuses = Status.find(
|
72
|
+
:all,
|
73
|
+
:conditions => ['statuses.screen_name = :u',{:u => user_name}],
|
74
|
+
:limit => 20)
|
75
|
+
output(statuses, :db_search)
|
76
|
+
end
|
77
|
+
|
78
|
+
register_command(:db_execute) do |arg|
|
79
|
+
ActionRecord::Base.connection.execute(arg).each do |row|
|
80
|
+
p row
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module Termtter::Client
|
2
2
|
register_command(
|
3
3
|
'user show',
|
4
|
-
:
|
5
|
-
:
|
4
|
+
aliases: [:p, :profile],
|
5
|
+
help: ["user show USERNAME", "Show user's profile."]
|
6
6
|
) do |arg|
|
7
7
|
user_name = arg.empty? ? config.user_name : arg
|
8
|
-
user = Termtter::API.twitter.user(user_name)
|
8
|
+
user = Termtter::API.twitter.user(screen_name: user_name)
|
9
9
|
attrs = %w[ name screen_name url description profile_image_url location protected following
|
10
10
|
friends_count followers_count statuses_count favourites_count
|
11
11
|
id time_zone created_at utc_offset notifications
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'fluent-logger'
|
4
|
+
|
5
|
+
config.plugins.fluentd.set_default(:host, 'localhost')
|
6
|
+
config.plugins.fluentd.set_default(:port, 8888)
|
7
|
+
config.plugins.fluentd.set_default(:tag, 'twitter.statuses')
|
8
|
+
|
9
|
+
module Termtter
|
10
|
+
module Client
|
11
|
+
@fluentd = Fluent::Logger::FluentLogger.open(nil,
|
12
|
+
host = config.plugins.fluentd.host,
|
13
|
+
port = config.plugins.fluentd.port
|
14
|
+
)
|
15
|
+
|
16
|
+
register_hook(:collect_statuses_for_db, :point => :pre_filter) do |statuses, event|
|
17
|
+
statuses.each do |status|
|
18
|
+
@fluentd.post(config.plugins.fluentd.tag, status)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,11 +1,6 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
1
|
begin
|
3
2
|
require 'nokogiri'
|
4
3
|
rescue LoadError
|
5
|
-
begin
|
6
|
-
require 'hpricot'
|
7
|
-
rescue LoadError
|
8
|
-
end
|
9
4
|
end
|
10
5
|
|
11
6
|
module Termtter
|
@@ -23,55 +18,54 @@ module Termtter
|
|
23
18
|
end
|
24
19
|
|
25
20
|
def method_missing(method, *args, &block)
|
26
|
-
if
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
21
|
+
return super if !@rubytter.respond_to?(method)
|
22
|
+
result = nil
|
23
|
+
begin
|
24
|
+
modified_args = args
|
25
|
+
hooks = self.class.get_hooks("pre_#{method}")
|
26
|
+
hooks.each do |hook|
|
27
|
+
modified_args = hook.call(*modified_args)
|
28
|
+
end
|
34
29
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
30
|
+
from = Time.now if Termtter::Client.logger.debug?
|
31
|
+
Termtter::Client.logger.debug {
|
32
|
+
"rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]})"
|
33
|
+
}
|
34
|
+
result = call_rubytter_or_use_cache(method, *modified_args, &block)
|
35
|
+
Termtter::Client.logger.debug {
|
36
|
+
"rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}), " +
|
42
37
|
"%.2fsec" % (Time.now - from)
|
43
|
-
|
38
|
+
}
|
44
39
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
40
|
+
self.class.call_hooks("post_#{method}", *args)
|
41
|
+
rescue HookCanceled
|
42
|
+
rescue TimeoutError => e
|
43
|
+
Termtter::Client.logger.debug {
|
44
|
+
"rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}) " +
|
50
45
|
"#{e.message} #{'%.2fsec' % (Time.now - from)}"
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
end
|
59
|
-
result
|
60
|
-
else
|
61
|
-
super
|
46
|
+
}
|
47
|
+
raise e
|
48
|
+
rescue => e
|
49
|
+
Termtter::Client.logger.debug {
|
50
|
+
"rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}) #{e.message}"
|
51
|
+
}
|
52
|
+
raise e
|
62
53
|
end
|
54
|
+
result
|
63
55
|
end
|
64
56
|
|
65
57
|
def call_rubytter_or_use_cache(method, *args, &block)
|
66
58
|
case method
|
67
59
|
when :show
|
68
|
-
|
60
|
+
status = cached_status(args[0])
|
61
|
+
unless status
|
69
62
|
status = call_rubytter(method, *args, &block)
|
70
63
|
store_status_cache(status)
|
71
64
|
end
|
72
65
|
status
|
73
66
|
when :user
|
74
|
-
|
67
|
+
user = cached_user(args[0])
|
68
|
+
unless user
|
75
69
|
user = call_rubytter(method, *args, &block)
|
76
70
|
store_user_cache(user)
|
77
71
|
end
|
@@ -88,32 +82,40 @@ module Termtter
|
|
88
82
|
end
|
89
83
|
|
90
84
|
def cached_user(screen_name_or_id)
|
91
|
-
user =
|
85
|
+
user =
|
86
|
+
Termtter::Client.memory_cache.get(
|
87
|
+
['user', Termtter::Client.normalize_as_user_name(screen_name_or_id.to_s)].join('-'))
|
92
88
|
ActiveRubytter.new(user) if user
|
93
89
|
end
|
94
90
|
|
95
91
|
def cached_status(status_id)
|
96
|
-
status =
|
92
|
+
status =
|
93
|
+
Termtter::Client.memory_cache.get(['status', status_id].join('-'))
|
97
94
|
ActiveRubytter.new(status) if status
|
98
95
|
end
|
99
96
|
|
100
97
|
def store_status_cache(status)
|
101
|
-
Termtter::Client.memory_cache.set(
|
98
|
+
Termtter::Client.memory_cache.set(
|
99
|
+
['status', status.id].join('-'), status.to_hash, 3600 * 24 * 14)
|
102
100
|
store_user_cache(status.user)
|
103
101
|
end
|
104
102
|
|
105
103
|
def store_user_cache(user)
|
106
|
-
Termtter::Client.memory_cache.set(
|
107
|
-
|
104
|
+
Termtter::Client.memory_cache.set(
|
105
|
+
['user', user.id.to_i].join('-'),
|
106
|
+
user.to_hash, 3600 * 24)
|
107
|
+
Termtter::Client.memory_cache.set(
|
108
|
+
['user', Termtter::Client.normalize_as_user_name(user.screen_name)].join('-'),
|
109
|
+
user.to_hash, 3600 * 24)
|
108
110
|
end
|
109
111
|
|
110
112
|
attr_accessor :safe_mode
|
111
113
|
def safe
|
112
114
|
new_instance = self.class.new(@rubytter)
|
113
115
|
new_instance.safe_mode = true
|
114
|
-
self.instance_variables.each
|
116
|
+
self.instance_variables.each do |v|
|
115
117
|
new_instance.instance_variable_set(v, self.instance_variable_get(v))
|
116
|
-
|
118
|
+
end
|
117
119
|
new_instance
|
118
120
|
end
|
119
121
|
|
@@ -158,10 +160,6 @@ module Termtter
|
|
158
160
|
def error_html_message(e)
|
159
161
|
Nokogiri(e.message).at('title, h2').text rescue nil
|
160
162
|
end
|
161
|
-
elsif defined? Hpricot
|
162
|
-
def error_html_message(e)
|
163
|
-
Hpricot(e.message).at('title, h2').inner_text rescue nil
|
164
|
-
end
|
165
163
|
else
|
166
164
|
def error_html_message(e)
|
167
165
|
m = %r'<title>(.*?)</title>'.match(e.message) and m.captures[0] rescue nil
|
@@ -169,7 +167,7 @@ module Termtter
|
|
169
167
|
end
|
170
168
|
private :error_html_message
|
171
169
|
|
172
|
-
# XXX: these methods should in oauth_rubytter
|
170
|
+
# XXX: these methods should be in oauth_rubytter
|
173
171
|
def access_token
|
174
172
|
@rubytter.instance_variable_get(:@access_token)
|
175
173
|
end
|
@@ -196,7 +194,9 @@ module Termtter
|
|
196
194
|
|
197
195
|
def safe?
|
198
196
|
limit = self.get
|
199
|
-
threshold =
|
197
|
+
threshold =
|
198
|
+
[(Time.parse(limit.reset_time) - Time.now) / 3600 - 0.1, 0.1].max *
|
199
|
+
limit.hourly_limit
|
200
200
|
threshold < limit.remaining_hits
|
201
201
|
end
|
202
202
|
end
|
data/lib/termtter/version.rb
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../spec_helper'
|
4
|
+
|
5
|
+
module Termtter
|
6
|
+
describe Client, 'when the plugin is loaded' do
|
7
|
+
DB_PATH = '/tmp/termtter.db'
|
8
|
+
|
9
|
+
def clear_db
|
10
|
+
File.delete(DB_PATH) if File.exists?(DB_PATH)
|
11
|
+
end
|
12
|
+
|
13
|
+
before(:each) do
|
14
|
+
clear_db
|
15
|
+
end
|
16
|
+
|
17
|
+
after do
|
18
|
+
clear_db
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should add commands' do
|
22
|
+
Termtter::Client.should_receive(:register_command).exactly(4)
|
23
|
+
Termtter::Client.plug 'ar-single'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'self.save should not return false and saved record should be readable' do
|
27
|
+
config.plugins.db.path = DB_PATH
|
28
|
+
load 'plugins/ar-single.rb'
|
29
|
+
Termtter::Client.plug 'ar-single'
|
30
|
+
@status = Status.new
|
31
|
+
@status.screen_name = 'hoge'
|
32
|
+
@status.id_str = '55555'
|
33
|
+
@status.text = 'ほげ'
|
34
|
+
@status.protected = true
|
35
|
+
@status.statuses_count = 500
|
36
|
+
@status.friends_count = 1000
|
37
|
+
@status.followers_count = 1500
|
38
|
+
@status.source = 'Termtter tests'
|
39
|
+
@status.save.should_not be_false
|
40
|
+
|
41
|
+
status_find = Status.find(:first)
|
42
|
+
status_find.screen_name.should == 'hoge'
|
43
|
+
status_find.id_str.should == '55555'
|
44
|
+
status_find.text.should == 'ほげ'
|
45
|
+
status_find.protected.should be_true
|
46
|
+
status_find.statuses_count.should == 500
|
47
|
+
status_find.friends_count.should == 1000
|
48
|
+
status_find.followers_count.should == 1500
|
49
|
+
status_find.source.should == 'Termtter tests'
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
data/spec/plugins/db_spec.rb
CHANGED
@@ -15,52 +15,4 @@ describe 'db' do
|
|
15
15
|
File.delete(DB_PATH) if File.exists?(DB_PATH)
|
16
16
|
end
|
17
17
|
|
18
|
-
it 'should created db file' do
|
19
|
-
pending("Not yet implemented")
|
20
|
-
File.exists?(DB_PATH)
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'saves statuses' do
|
24
|
-
pending("Not yet implemented")
|
25
|
-
now = Time.now.to_s
|
26
|
-
Status << {:user_id => 1, :text => 'foo', :created_at => now}
|
27
|
-
dataset = Status.all
|
28
|
-
dataset.size.should == 1
|
29
|
-
dataset[0].user_id.should == 1
|
30
|
-
dataset[0].text.should == 'foo'
|
31
|
-
dataset[0].created_at.should == now
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'saves users' do
|
35
|
-
pending("Not implemented")
|
36
|
-
User << {:screen_name => 'jugyo'}
|
37
|
-
dataset = User.all
|
38
|
-
dataset.size.should == 1
|
39
|
-
dataset[0].screen_name.should == 'jugyo'
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'calls hook' do
|
43
|
-
pending("Not yet implemented")
|
44
|
-
user_struct = Struct.new(:id, :screen_name, :protected)
|
45
|
-
user_1 = user_struct.new(1, 'jugyo')
|
46
|
-
user_2 = user_struct.new(2, 'oyguj')
|
47
|
-
|
48
|
-
status_struct = Struct.new(:id, :text, :source, :user, :in_reply_to_status_id,
|
49
|
-
:in_reply_to_user_id, :created_at)
|
50
|
-
statuses = []
|
51
|
-
statuses << status_struct.new(1, 'foo', 'termtter', user_1, 100, Time.now.to_s)
|
52
|
-
statuses << status_struct.new(2, 'bar', 'termtter', user_1, nil, nil, Time.now.to_s)
|
53
|
-
statuses << status_struct.new(3, 'xxx', 'web', user_2, nil, nil, Time.now.to_s)
|
54
|
-
|
55
|
-
Termtter::Client.hooks[:collect_statuses_for_db].call(statuses, :update_friends_timeline)
|
56
|
-
|
57
|
-
dataset = User.all
|
58
|
-
dataset.size.should == 2
|
59
|
-
|
60
|
-
dataset = Status.all
|
61
|
-
dataset.size.should == 3
|
62
|
-
|
63
|
-
User[:id => 1].statuses.size.should == 2
|
64
|
-
Status[:id => 1].user.id.should == 1
|
65
|
-
end
|
66
18
|
end
|
@@ -18,11 +18,27 @@ describe Termtter::Client, 'when the plugin expand_url is loaded' do
|
|
18
18
|
user_2 = user_struct.new(2, 'oyguj')
|
19
19
|
status_struct = Struct.new(:id, :text, :source, :user, :in_reply_to_status_id,
|
20
20
|
:in_reply_to_user_id, :created_at)
|
21
|
-
statuses << status_struct.new(1, '
|
22
|
-
statuses << status_struct.new(2, '
|
23
|
-
statuses << status_struct.new(3, '
|
21
|
+
statuses << status_struct.new(1, '無変換 http://id774.net zzz', 'termtter', user_1, 100, nil, Time.now.to_s)
|
22
|
+
statuses << status_struct.new(2, 'あああ http://goo.gl/U7dM4Z aaa', 'termtter', user_1, 100, nil, Time.now.to_s)
|
23
|
+
statuses << status_struct.new(3, 'いいい http://is.gd/ZIqgo7 bbb', 'termtter', user_1, 100, nil, Time.now.to_s)
|
24
|
+
statuses << status_struct.new(4, 'ううう http://bit.ly/1RvMdT ccc', 'termtter', user_1, 100, nil, Time.now.to_s)
|
25
|
+
statuses << status_struct.new(5, 'えええ http://j.mp/1RvMdT ddd', 'termtter', user_1, 100, nil, Time.now.to_s)
|
26
|
+
statuses << status_struct.new(6, 'おおお http://ow.ly/nwfAS eee', 'termtter', user_1, 100, nil, Time.now.to_s)
|
27
|
+
statuses << status_struct.new(7, 'ききき http://ow.ly/nwg5a ggg', 'termtter', user_1, 100, nil, Time.now.to_s)
|
28
|
+
statuses << status_struct.new(8, 'くくく http://p.tl/mwda hhh', 'termtter', user_1, 100, nil, Time.now.to_s)
|
29
|
+
|
30
|
+
# statuses << status_struct.new(2, 'bar', 'termtter', user_1, nil, nil, Time.now.to_s)
|
31
|
+
# statuses << status_struct.new(3, 'xxx', 'web', user_2, nil, nil, Time.now.to_s)
|
24
32
|
f.call(statuses, nil)
|
25
|
-
statuses[0].text.should == '
|
33
|
+
statuses[0].text.should == '無変換 http://id774.net zzz'
|
34
|
+
statuses[1].text.should == 'あああ http://id774.net/ aaa'
|
35
|
+
statuses[2].text.should == 'いいい http://id774.net bbb'
|
36
|
+
statuses[3].text.should == 'ううう http://id774.net/ ccc'
|
37
|
+
statuses[4].text.should == 'えええ http://id774.net/ ddd'
|
38
|
+
statuses[5].text.should == 'おおお http://id774.net eee'
|
39
|
+
statuses[6].text.should == 'ききき http://id774.net ggg'
|
40
|
+
statuses[7].text.should == 'くくく http://id774.net hhh'
|
41
|
+
|
26
42
|
end
|
27
43
|
|
28
44
|
it 'should define expand_url method' do
|
data/termtter.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "termtter"
|
8
|
-
s.version = "2.2.
|
8
|
+
s.version = "2.2.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["jugyo", "ujihisa", "koichiroo", "id774"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-09-04"
|
13
13
|
s.description = "Termtter is a terminal based Twitter client."
|
14
14
|
s.email = "jugyo.org@gmail.com"
|
15
15
|
s.executables = ["termtter", "termtter_frame"]
|
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
|
|
30
30
|
"lib/plugins/another_prompt.rb",
|
31
31
|
"lib/plugins/appendtitle.rb",
|
32
32
|
"lib/plugins/april_fool.rb",
|
33
|
+
"lib/plugins/ar-single.rb",
|
33
34
|
"lib/plugins/ar.rb",
|
34
35
|
"lib/plugins/async.rb",
|
35
36
|
"lib/plugins/babelfish.rb",
|
@@ -88,6 +89,7 @@ Gem::Specification.new do |s|
|
|
88
89
|
"lib/plugins/fib_filter.rb",
|
89
90
|
"lib/plugins/fibyou.rb",
|
90
91
|
"lib/plugins/filter.rb",
|
92
|
+
"lib/plugins/fluentd.rb",
|
91
93
|
"lib/plugins/foo.rb",
|
92
94
|
"lib/plugins/footer.rb",
|
93
95
|
"lib/plugins/friends.rb",
|
@@ -248,6 +250,7 @@ Gem::Specification.new do |s|
|
|
248
250
|
"lib/termtter/task.rb",
|
249
251
|
"lib/termtter/task_manager.rb",
|
250
252
|
"lib/termtter/version.rb",
|
253
|
+
"spec/plugins/ar-single_spec.rb",
|
251
254
|
"spec/plugins/capital_update_spec.rb",
|
252
255
|
"spec/plugins/cool_spec.rb",
|
253
256
|
"spec/plugins/curry_spec.rb",
|
@@ -302,29 +305,35 @@ Gem::Specification.new do |s|
|
|
302
305
|
s.licenses = ["MIT"]
|
303
306
|
s.require_paths = ["lib"]
|
304
307
|
s.rubyforge_project = "termtter"
|
305
|
-
s.rubygems_version = "2.0.
|
308
|
+
s.rubygems_version = "2.0.6"
|
306
309
|
s.summary = "Terminal based Twitter client."
|
307
310
|
|
308
311
|
if s.respond_to? :specification_version then
|
309
312
|
s.specification_version = 4
|
310
313
|
|
311
314
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
312
|
-
s.add_runtime_dependency(%q<json>, ["
|
313
|
-
s.add_runtime_dependency(%q<highline>, ["
|
315
|
+
s.add_runtime_dependency(%q<json>, [">= 1.1.3"])
|
316
|
+
s.add_runtime_dependency(%q<highline>, [">= 1.5.0"])
|
314
317
|
s.add_runtime_dependency(%q<termcolor>, ["~> 1.0.0"])
|
315
318
|
s.add_runtime_dependency(%q<rubytter>, ["~> 1.5.1"])
|
316
|
-
s.add_runtime_dependency(%q<notify>, ["
|
319
|
+
s.add_runtime_dependency(%q<notify>, [">= 0.5.1"])
|
320
|
+
s.add_runtime_dependency(%q<activerecord>, ["~> 4.0.0"])
|
321
|
+
s.add_runtime_dependency(%q<builder>, [">= 3.0.4"])
|
322
|
+
s.add_runtime_dependency(%q<fluent-logger>, [">= 0.4.6"])
|
317
323
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
318
324
|
s.add_development_dependency(%q<rdoc>, [">= 0"])
|
319
325
|
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
320
326
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
321
327
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
322
328
|
else
|
323
|
-
s.add_dependency(%q<json>, ["
|
324
|
-
s.add_dependency(%q<highline>, ["
|
329
|
+
s.add_dependency(%q<json>, [">= 1.1.3"])
|
330
|
+
s.add_dependency(%q<highline>, [">= 1.5.0"])
|
325
331
|
s.add_dependency(%q<termcolor>, ["~> 1.0.0"])
|
326
332
|
s.add_dependency(%q<rubytter>, ["~> 1.5.1"])
|
327
|
-
s.add_dependency(%q<notify>, ["
|
333
|
+
s.add_dependency(%q<notify>, [">= 0.5.1"])
|
334
|
+
s.add_dependency(%q<activerecord>, ["~> 4.0.0"])
|
335
|
+
s.add_dependency(%q<builder>, [">= 3.0.4"])
|
336
|
+
s.add_dependency(%q<fluent-logger>, [">= 0.4.6"])
|
328
337
|
s.add_dependency(%q<rspec>, [">= 0"])
|
329
338
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
330
339
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
@@ -332,11 +341,14 @@ Gem::Specification.new do |s|
|
|
332
341
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
333
342
|
end
|
334
343
|
else
|
335
|
-
s.add_dependency(%q<json>, ["
|
336
|
-
s.add_dependency(%q<highline>, ["
|
344
|
+
s.add_dependency(%q<json>, [">= 1.1.3"])
|
345
|
+
s.add_dependency(%q<highline>, [">= 1.5.0"])
|
337
346
|
s.add_dependency(%q<termcolor>, ["~> 1.0.0"])
|
338
347
|
s.add_dependency(%q<rubytter>, ["~> 1.5.1"])
|
339
|
-
s.add_dependency(%q<notify>, ["
|
348
|
+
s.add_dependency(%q<notify>, [">= 0.5.1"])
|
349
|
+
s.add_dependency(%q<activerecord>, ["~> 4.0.0"])
|
350
|
+
s.add_dependency(%q<builder>, [">= 3.0.4"])
|
351
|
+
s.add_dependency(%q<fluent-logger>, [">= 0.4.6"])
|
340
352
|
s.add_dependency(%q<rspec>, [">= 0"])
|
341
353
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
342
354
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: termtter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jugyo
|
@@ -11,34 +11,34 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-
|
14
|
+
date: 2013-09-04 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: json
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- - '
|
20
|
+
- - '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 1.1.3
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - '
|
27
|
+
- - '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 1.1.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: highline
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
|
-
- -
|
34
|
+
- - '>='
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: 1.5.0
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- -
|
41
|
+
- - '>='
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 1.5.0
|
44
44
|
- !ruby/object:Gem::Dependency
|
@@ -73,16 +73,58 @@ dependencies:
|
|
73
73
|
name: notify
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
|
-
- -
|
76
|
+
- - '>='
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: 0.5.1
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - '>='
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: 0.5.1
|
86
|
+
- !ruby/object:Gem::Dependency
|
87
|
+
name: activerecord
|
88
|
+
requirement: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ~>
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 4.0.0
|
93
|
+
type: :runtime
|
94
|
+
prerelease: false
|
95
|
+
version_requirements: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ~>
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 4.0.0
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: builder
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - '>='
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: 3.0.4
|
107
|
+
type: :runtime
|
108
|
+
prerelease: false
|
109
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - '>='
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 3.0.4
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: fluent-logger
|
116
|
+
requirement: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 0.4.6
|
121
|
+
type: :runtime
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - '>='
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: 0.4.6
|
86
128
|
- !ruby/object:Gem::Dependency
|
87
129
|
name: rspec
|
88
130
|
requirement: !ruby/object:Gem::Requirement
|
@@ -175,6 +217,7 @@ files:
|
|
175
217
|
- lib/plugins/another_prompt.rb
|
176
218
|
- lib/plugins/appendtitle.rb
|
177
219
|
- lib/plugins/april_fool.rb
|
220
|
+
- lib/plugins/ar-single.rb
|
178
221
|
- lib/plugins/ar.rb
|
179
222
|
- lib/plugins/async.rb
|
180
223
|
- lib/plugins/babelfish.rb
|
@@ -233,6 +276,7 @@ files:
|
|
233
276
|
- lib/plugins/fib_filter.rb
|
234
277
|
- lib/plugins/fibyou.rb
|
235
278
|
- lib/plugins/filter.rb
|
279
|
+
- lib/plugins/fluentd.rb
|
236
280
|
- lib/plugins/foo.rb
|
237
281
|
- lib/plugins/footer.rb
|
238
282
|
- lib/plugins/friends.rb
|
@@ -393,6 +437,7 @@ files:
|
|
393
437
|
- lib/termtter/task.rb
|
394
438
|
- lib/termtter/task_manager.rb
|
395
439
|
- lib/termtter/version.rb
|
440
|
+
- spec/plugins/ar-single_spec.rb
|
396
441
|
- spec/plugins/capital_update_spec.rb
|
397
442
|
- spec/plugins/cool_spec.rb
|
398
443
|
- spec/plugins/curry_spec.rb
|
@@ -462,7 +507,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
462
507
|
version: '0'
|
463
508
|
requirements: []
|
464
509
|
rubyforge_project: termtter
|
465
|
-
rubygems_version: 2.0.
|
510
|
+
rubygems_version: 2.0.6
|
466
511
|
signing_key:
|
467
512
|
specification_version: 4
|
468
513
|
summary: Terminal based Twitter client.
|