tw 0.3.9 → 0.4.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 91269b65fc68a85c17b8431e4b11bc382df0ff96
4
+ data.tar.gz: 6cc0d2bd18c92a98b282ea90a9c7ad6ef4022e1d
5
+ SHA512:
6
+ metadata.gz: 67b726754a2bf6becce0294a50093c7f30a1a81d1c1020ef514f71127ce2437fd96bb9dbabef587102db5e5324368bb5cac7e7975314b4d389f57f63d6920efb
7
+ data.tar.gz: efe1f310620e8553f7eba7b5344fea25ec579cf109064a89530bb7162f35dd6029068a5e15558d3153d4fef27a25fa16676492640f603bf5d4e0fd97111ab0dd
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
+ .DS_Store
1
2
  *#*
2
3
  *~
3
- pkg/*
4
+ .ruby-version
5
+ pkg/*
data/Gemfile CHANGED
@@ -2,4 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in tw.gemspec
4
4
  gemspec
5
- gem 'minitest'
@@ -1,3 +1,9 @@
1
+ === 0.4.0 2013-05-16
2
+
3
+ * status_id % tw --id
4
+ * RT tweet % tw --rt=12345136
5
+ * Fav tweet % tw --fav=12345136
6
+
1
7
  === 0.3.9 2013-03-05
2
8
 
3
9
  * use http://api.twitter.com to auth
data/README.md CHANGED
@@ -39,6 +39,12 @@ DM
39
39
  % tw --dm
40
40
  % tw --dm:to=shokai "hello!"
41
41
 
42
+ Fav/RT
43
+
44
+ % tw @shokai --id
45
+ % tw --fav=334739319170428929
46
+ % tw --rt=334739319170428929
47
+
42
48
  Switch Accounts
43
49
 
44
50
  % tw --user:add
@@ -71,6 +71,32 @@ module Tw::App
71
71
  end
72
72
  end
73
73
 
74
+ cmd :favorite do |v, opts|
75
+ if opts.has_param? :favorite
76
+ id = opts[:favorite]
77
+ auth
78
+ client.show_status id
79
+ puts 'Fav this?'
80
+ puts '[Y/n]'
81
+ on_exit if STDIN.gets.strip =~ /^n/i
82
+ puts "success!" if client.favorite id
83
+ end
84
+ on_exit
85
+ end
86
+
87
+ cmd :retweet do |v, opts|
88
+ if opts.has_param? :retweet
89
+ id = opts[:retweet]
90
+ auth
91
+ client.show_status id
92
+ puts 'RT this?'
93
+ puts '[Y/n]'
94
+ on_exit if STDIN.gets.strip =~ /^n/i
95
+ puts "success!" if client.retweet id
96
+ end
97
+ on_exit
98
+ end
99
+
74
100
  cmd :pipe do |v, opts|
75
101
  auth
76
102
  while line = STDIN.gets do
@@ -49,8 +49,11 @@ module Tw::App
49
49
  arg :timeline, 'show timeline', :alias => :tl
50
50
  arg :dm, 'show direct messages'
51
51
  arg 'dm:to', 'create direct message'
52
+ arg :favorite, 'favorite tweet', :alias => :fav
53
+ arg :retweet, 'retweet', :alias => :rt
52
54
  arg :search, 'search public timeline', :alias => :s
53
55
  arg :stream, 'show user stream', :alias => :st
56
+ arg :status_id, 'show status_id', :alias => :id
54
57
  arg :pipe, 'pipe tweet'
55
58
  arg :format, 'output format', :default => 'text'
56
59
  arg :silent, 'silent mode'
@@ -88,10 +91,13 @@ module Tw::App
88
91
  STDERR.puts " tw --dm:to=username \"hello!\""
89
92
  STDERR.puts " tw --format=json"
90
93
  STDERR.puts ' tw --format="@#{user} #{text} - http://twitter.com/#{user}/#{id}"'
94
+ STDERR.puts "fav tw --fav=334739319170428929"
95
+ STDERR.puts "rt tw --rt=334739319170428929"
91
96
  on_exit
92
97
  end
93
98
 
94
99
  Render.silent = @parser[:silent]
100
+ Render.show_status_id = @parser[:status_id]
95
101
  Tw::Conf.conf_file = @parser[:conf]
96
102
 
97
103
  regist_cmds
@@ -9,6 +9,14 @@ module Tw::App
9
9
  @@silent ||= false
10
10
  end
11
11
 
12
+ def self.show_status_id=(bool)
13
+ @@show_status_id = bool ? true : false
14
+ end
15
+
16
+ def self.show_status_id
17
+ @@show_status_id ||= false
18
+ end
19
+
12
20
  def self.puts(s)
13
21
  STDOUT.puts s unless silent
14
22
  end
@@ -27,15 +35,16 @@ module Tw::App
27
35
  a.id <=> b.id
28
36
  }.each{|m|
29
37
  STDOUT.puts case format
30
- when 'text'
31
- user = m.user.kind_of?(Hash) ? "@#{m.user[:from]} > @#{m.user[:to]}" : "@#{m.user}"
32
- line = "#{m.time.strftime '[%m/%d %a] (%H:%M:%S)'} #{user} : #{CGI.unescapeHTML m.text}"
33
- line.colorize(/@[a-zA-Z0-9_]+/)
34
- when 'json'
35
- m.to_json
36
- else
37
- m.format format
38
- end
38
+ when 'text'
39
+ user = m.user.kind_of?(Hash) ? "@#{m.user[:from]} > @#{m.user[:to]}" : "@#{m.user}"
40
+ line = "#{m.time.strftime '[%m/%d %a] (%H:%M:%S)'} #{user} : #{CGI.unescapeHTML m.text}"
41
+ line += " <#{m.id}>" if show_status_id
42
+ line.colorize(/@[a-zA-Z0-9_]+/)
43
+ when 'json'
44
+ m.to_json
45
+ else
46
+ m.format format
47
+ end
39
48
  }
40
49
  end
41
50
  end
@@ -77,5 +77,20 @@ module Tw
77
77
  puts res.created_at
78
78
  end
79
79
 
80
+ def show_status(status_id)
81
+ res = Twitter.status(status_id)
82
+ puts res.text
83
+ puts "http://twitter.com/#{res.user.screen_name}/status/#{res.id}"
84
+ puts res.created_at
85
+ end
86
+
87
+ def favorite(status_id)
88
+ Twitter.favorite status_id
89
+ end
90
+
91
+ def retweet(status_id)
92
+ Twitter.retweet status_id
93
+ end
94
+
80
95
  end
81
96
  end
@@ -1,3 +1,3 @@
1
1
  module Tw
2
- VERSION = '0.3.9'
2
+ VERSION = '0.4.0'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require File.expand_path 'test_helper', File.dirname(__FILE__)
3
3
 
4
- class TestTCo < MiniTest::Unit::TestCase
4
+ class TestTCo < MiniTest::Test
5
5
 
6
6
  def setup
7
7
  @client = Tw::Client.new
@@ -1,6 +1,6 @@
1
1
  require File.expand_path 'test_helper', File.dirname(__FILE__)
2
2
 
3
- class TestTw < MiniTest::Unit::TestCase
3
+ class TestTw < MiniTest::Test
4
4
 
5
5
  def setup
6
6
  @client = Tw::Client.new
data/tw.gemspec CHANGED
@@ -20,6 +20,10 @@ Gem::Specification.new do |gem|
20
20
  gem.add_dependency 'userstream', '>= 1.2.0'
21
21
  gem.add_dependency 'json', '>= 1.7.0'
22
22
  gem.add_dependency 'rainbow', '>= 1.1.4'
23
- gem.add_dependency 'args_parser', '>= 0.1.2'
23
+ gem.add_dependency 'args_parser', '>= 0.1.4'
24
24
  gem.add_dependency 'parallel', '>= 0.6.0'
25
+
26
+ gem.add_development_dependency 'rake'
27
+ gem.add_development_dependency 'bundler', '~> 1.3'
28
+ gem.add_development_dependency 'minitest'
25
29
  end
metadata CHANGED
@@ -1,112 +1,141 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.9
5
- prerelease:
4
+ version: 0.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sho Hashimoto
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-04 00:00:00.000000000 Z
11
+ date: 2013-05-15 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: twitter
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 4.4.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 4.4.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: userstream
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: 1.2.0
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: 1.2.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: json
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: 1.7.0
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: 1.7.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rainbow
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: 1.1.4
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: 1.1.4
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: args_parser
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
- version: 0.1.2
75
+ version: 0.1.4
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
- version: 0.1.2
82
+ version: 0.1.4
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: parallel
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: 0.6.0
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: 0.6.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: bundler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '1.3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: minitest
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
110
139
  description: CUI Twitter Client.
111
140
  email:
112
141
  - hashimoto@shokai.org
@@ -146,27 +175,26 @@ files:
146
175
  - tw.gemspec
147
176
  homepage: http://shokai.github.com/tw
148
177
  licenses: []
178
+ metadata: {}
149
179
  post_install_message:
150
180
  rdoc_options: []
151
181
  require_paths:
152
182
  - lib
153
183
  required_ruby_version: !ruby/object:Gem::Requirement
154
- none: false
155
184
  requirements:
156
- - - ! '>='
185
+ - - '>='
157
186
  - !ruby/object:Gem::Version
158
187
  version: '0'
159
188
  required_rubygems_version: !ruby/object:Gem::Requirement
160
- none: false
161
189
  requirements:
162
- - - ! '>='
190
+ - - '>='
163
191
  - !ruby/object:Gem::Version
164
192
  version: '0'
165
193
  requirements: []
166
194
  rubyforge_project:
167
- rubygems_version: 1.8.24
195
+ rubygems_version: 2.0.3
168
196
  signing_key:
169
- specification_version: 3
197
+ specification_version: 4
170
198
  summary: CUI Twitter Client.
171
199
  test_files:
172
200
  - test/test_helper.rb