termtter 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.
|