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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5de3d65ab24659675cda8734741447b3cd198a28
4
- data.tar.gz: 7128dc6441e6fe09f5b4b53f477ee563476bf94f
3
+ metadata.gz: 47109373f39797dc79ef16623fae5412b2edf692
4
+ data.tar.gz: 208d6c0924fed76cad20f68174cca37ff4612aea
5
5
  SHA512:
6
- metadata.gz: 16bf26f2e015ad2010c109a4438412553b7d9e947e3931f925ee0872442a31588de478cf38fa47ccee559363ff7b5e7a69c0d004153c5793ec0c7bfaeb764ffc
7
- data.tar.gz: 996433e58598aae53bb96f8043a5ab1c548336faa9b4e05177c754477a8c182a18e903e7e6d71b106c9fc2f012db4d8934079a9f45e202b5ab9e42fd5cf550a0
6
+ metadata.gz: dd84b33c702b44a1192c5d7045cb5d8b45ab93dd5c03155590fd6bafeceaaf09295c683be90e8f10c81d90bfc72fd7bf2092190df61427907539d8ac8635553c
7
+ data.tar.gz: a59bf708e6403d198d8fadd463dc5bab21feef91d666382b6390d80e30d295b49a3721620939873ef76f5c41715f4e761551ba5f3ef2788433e4d12484528eb1
data/ChangeLog CHANGED
@@ -1,3 +1,10 @@
1
+ == 2.2.2 / 2013-09-04
2
+
3
+ * Add plugins fluentd, ar-single.
4
+
5
+ * Fix some test cases.
6
+
7
+
1
8
  == 2.2.1 / 2013-05-20
2
9
 
3
10
  * Fix package problem (termtter requires termtter).
data/Gemfile CHANGED
@@ -2,11 +2,14 @@
2
2
  source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
- gem 'json', '> 1.1.3'
6
- gem 'highline', '~> 1.5.0'
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', '~> 0.5.1'
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
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
- :aliases => [:p, :profile],
5
- :help => ["user show USERNAME", "Show user's profile."]
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 @rubytter.respond_to?(method)
27
- result = nil
28
- begin
29
- modified_args = args
30
- hooks = self.class.get_hooks("pre_#{method}")
31
- hooks.each do |hook|
32
- modified_args = hook.call(*modified_args)
33
- end
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
- from = Time.now if Termtter::Client.logger.debug?
36
- Termtter::Client.logger.debug {
37
- "rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]})"
38
- }
39
- result = call_rubytter_or_use_cache(method, *modified_args, &block)
40
- Termtter::Client.logger.debug {
41
- "rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}), " +
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
- self.class.call_hooks("post_#{method}", *args)
46
- rescue HookCanceled
47
- rescue TimeoutError => e
48
- Termtter::Client.logger.debug {
49
- "rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}) " +
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
- raise e
53
- rescue => e
54
- Termtter::Client.logger.debug {
55
- "rubytter_proxy: #{method}(#{modified_args.inspect[1...-1]}) #{e.message}"
56
- }
57
- raise e
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
- unless status = cached_status(args[0])
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
- unless user = cached_user(args[0])
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 = Termtter::Client.memory_cache.get(['user', Termtter::Client.normalize_as_user_name(screen_name_or_id.to_s)].join('-'))
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 = Termtter::Client.memory_cache.get(['status', status_id].join('-'))
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(['status', status.id].join('-'), status.to_hash, 3600 * 24 * 14)
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(['user', user.id.to_i].join('-'), user.to_hash, 3600 * 24)
107
- Termtter::Client.memory_cache.set(['user', Termtter::Client.normalize_as_user_name(user.screen_name)].join('-'), user.to_hash, 3600 * 24)
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{ |v|
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 = [(Time.parse(limit.reset_time) - Time.now) / 3600 - 0.1, 0.1].max * limit.hourly_limit
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
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  module Termtter
4
- VERSION = "2.2.1"
4
+ VERSION = "2.2.2"
5
5
  end
@@ -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
@@ -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, 'あああ http://tinyurl.com/de5my6 aaa', 'termtter', user_1, 100, nil, Time.now.to_s)
22
- statuses << status_struct.new(2, 'bar', 'termtter', user_1, nil, nil, Time.now.to_s)
23
- statuses << status_struct.new(3, 'xxx', 'web', user_2, nil, nil, Time.now.to_s)
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 == 'あああ http://example.com/テスト aaa'
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.1"
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-05-20"
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.3"
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>, ["> 1.1.3"])
313
- s.add_runtime_dependency(%q<highline>, ["~> 1.5.0"])
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>, ["~> 0.5.1"])
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>, ["> 1.1.3"])
324
- s.add_dependency(%q<highline>, ["~> 1.5.0"])
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>, ["~> 0.5.1"])
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>, ["> 1.1.3"])
336
- s.add_dependency(%q<highline>, ["~> 1.5.0"])
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>, ["~> 0.5.1"])
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.1
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-05-20 00:00:00.000000000 Z
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.2
510
+ rubygems_version: 2.0.6
466
511
  signing_key:
467
512
  specification_version: 4
468
513
  summary: Terminal based Twitter client.