pry-send_tweet.rb 0.5.3 → 0.6.0

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
  SHA256:
3
- metadata.gz: 1128245f33fd0658aa1b08a88be3b63da8aceffe45a83dcd00608e6058036371
4
- data.tar.gz: 9d12098a25089fca3782555ae95c726f4a98bbca24a847b44ab91c0cb970857e
3
+ metadata.gz: ae88328b20378917474eec4a9b41346938f04b0a4ebcb3708bf9d937ea1c5691
4
+ data.tar.gz: 5223319e205eef81dfad63169be032aac646c9eafd8efca518ebe38f58929c51
5
5
  SHA512:
6
- metadata.gz: 2deb0b8f9305224de8e7c0bcf824503d08bcc90b1bfa09124fa3072075c5ee7676422c86855ad2ff536f998b591eb7a30df6ea80bbb956bc7c2932d5d75c3882
7
- data.tar.gz: 797fa426ccd5c55690aa2a909e56d34f24af70db52312f003e76811950e08124f767118b7d5b1afd3d4141a132b8c79103bd102881ad2bc05f4324f8281df080
6
+ metadata.gz: 45fdfbbf1334c97f04e554226ecb8263a65e62f9521efe89cd77a440096db235f0ee4e3327e68583077f74534df874d9f4124e58b5b9dabf71f44311b8e39e0f
7
+ data.tar.gz: 983ff67471fe84c19dd5d88ed378628bcd3f30c4b0279098ff7f2490db5f09cdec72c8128cb8c37e1df93786f1609f2fbe48c490099cde60b964d97ff4402fa5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.6.0
4
+
5
+ * Fix a bug where the auto refresh feature could not be disabled.
6
+ `Pry.config.twitter.refresh_interval` should be set to `false` instead of
7
+ `nil` to disable this feature.
8
+
9
+ * Modify `render_tweets()` to accept the optional keyword argument, 'timeout'.
10
+
11
+ * Render liked, unliked, and deleted (re)tweets via `render_tweets()`.
12
+
13
+ * Change default User-Agent sent with requests to the Twitter API to `pry-send_tweet vX.Y.Z`
14
+
15
+ * Add the option to configure the `User-Agent` sent with requests to the Twitter API,
16
+ via `Pry.config.twitter.user_agent`.
17
+
18
+ * Add `Pry::SendTweet::VERSION`.
19
+
3
20
  ## v0.5.3
4
21
 
5
22
  * Fix another NoMethodError
data/Dockerfile CHANGED
@@ -6,6 +6,7 @@ WORKDIR /app/
6
6
 
7
7
  # Bundler
8
8
  ADD Gemfile pry-send_tweet.gemspec /app/
9
+ ADD lib /app/lib
9
10
  RUN gem install bundler --no-rdoc --no-ri
10
11
  RUN bundle install
11
12
 
data/README.md CHANGED
@@ -19,10 +19,15 @@ by those from your developer account.
19
19
  # .pryrc
20
20
  Pry.configure do |config|
21
21
  config.twitter = Pry::Config.from_hash({
22
+ # Required configuration
22
23
  consumer_key: '<consumer key>',
23
24
  consumer_secret: '<consumer secret>',
24
25
  access_token: '<access token>',
25
26
  access_token_secret: '<access token secret>'
27
+ # Optional configuration
28
+ # The User-Agent to use when making requests to the Twitter API.
29
+ # Default is: 'pry-send_tweet.rb vX.Y.Z'
30
+ user_agent: 'Custom User-Agent'
26
31
  })
27
32
  end
28
33
  ```
@@ -77,7 +82,7 @@ By default the tweets displayed by the `read-tweets` command are automatically
77
82
  refreshed every 4 minutes.
78
83
 
79
84
  That can be changed to a custom interval by setting `Pry.config.twitter.refresh_interval`
80
- to a number of seconds, or to `nil` if you want to disable this feature.
85
+ to a number of seconds, or to `false` if you want to disable this feature.
81
86
 
82
87
  * Read recent tweets from your timeline:
83
88
 
@@ -52,6 +52,9 @@ class Pry::SendTweet::BaseCommand < Pry::ClassCommand
52
52
  config.consumer_secret = _pry_.config.twitter.consumer_secret
53
53
  config.access_token = _pry_.config.twitter.access_token
54
54
  config.access_token_secret = _pry_.config.twitter.access_token_secret
55
+ }.tap {|client|
56
+ client.user_agent = _pry_.config.twitter.user_agent ||
57
+ "pry-send_tweet.rb v#{Pry::SendTweet::VERSION}"
55
58
  }
56
59
  end
57
60
  end
@@ -1,13 +1,16 @@
1
1
  module Pry::SendTweet::TweetRenderer
2
2
  include Timeout
3
3
 
4
- def render_tweets(fetch_tweets_proc, title:)
4
+ def render_tweets(fetch_tweets, title: , timeout: _pry_.config.twitter.refresh_interval)
5
5
  pid = nil
6
- refresh_interval = _pry_.config.twitter.refresh_interval || 240
6
+ refresh_interval = timeout == false ? (nil) : (timeout || 240)
7
7
  timeout(refresh_interval) do
8
8
  _pry_.pager.open do |pager|
9
9
  pid = pager.send(:pager).pid
10
- pager.write draw_tweets(title, fetch_tweets_proc.call)
10
+ pager.write draw_tweets(
11
+ title,
12
+ Proc === fetch_tweets ? fetch_tweets.call : fetch_tweets
13
+ )
11
14
  end
12
15
  end
13
16
  rescue Timeout::Error
@@ -31,6 +31,7 @@ class Pry::SendTweet::TwitterAction < Pry::SendTweet::BaseCommand
31
31
  # Profile management
32
32
  #
33
33
  o.on 'set-profile-bio', 'Set your profiles bio'
34
+ o.on 'set-profile-url=', 'Set the URL associated with your profile'
34
35
  o.on 'set-profile-banner-image=', 'Set your profiles banner image'
35
36
  o.on 'set-profile-name=', 'Set the name associated with your profile'
36
37
  o.on 'set-profile-image=', 'Set your profile image'
@@ -50,11 +51,20 @@ class Pry::SendTweet::TwitterAction < Pry::SendTweet::BaseCommand
50
51
  when opts.present?('set-profile-bio') then set_profile_bio
51
52
  when opts.present?('set-profile-name') then set_profile_name
52
53
  when opts.present?('set-profile-image') then set_profile_image
54
+ when opts.present?('set-profile-url') then set_profile_url(opts['set-profile-url'])
53
55
  end
54
56
  end
55
57
 
56
58
  private
57
59
 
60
+ def set_profile_url(url)
61
+ if client.update_profile url: url
62
+ page "Profile URL updated"
63
+ else
64
+ raise Pry::CommandError, "Something went wrong"
65
+ end
66
+ end
67
+
58
68
  def set_profile_image
59
69
  path = opts['set-profile-image']
60
70
  if client.update_profile_image path
@@ -98,16 +108,38 @@ class Pry::SendTweet::TwitterAction < Pry::SendTweet::BaseCommand
98
108
 
99
109
  def like_tweet
100
110
  tweets = client.favorite(opts['like-tweet'])
101
- page numbered_list(bold("Tweets you liked"), tweets) {|tweet, index|
102
- "#{index}. #{tweet.url}"
103
- }
111
+ if tweets.any?
112
+ render_tweets tweets, title: bold("Liked tweets"), timeout: false
113
+ else
114
+ page "Tweet was not liked. Maybe you liked that tweet already?"
115
+ end
104
116
  end
105
117
 
106
118
  def unlike_tweet
107
119
  tweets = client.unfavorite(opts['unlike-tweet'])
108
- page numbered_list(bold("Tweets you unliked"), tweets) {|tweet, index|
109
- "#{index}. #{tweet.url}"
110
- }
120
+ if tweets.any?
121
+ render_tweets tweets, title: bold("Unliked tweets"), timeout: false
122
+ else
123
+ page "Tweet was not unliked. Maybe you haven't liked that tweet?"
124
+ end
125
+ end
126
+
127
+ def delete_retweet
128
+ tweets = client.unretweet(opts['delete-retweet'])
129
+ if tweets.any?
130
+ render_tweets tweets, title: bold("Deleted retweets"), timeout: false
131
+ else
132
+ page "Retweet was not deleted. Maybe you deleted it already?"
133
+ end
134
+ end
135
+
136
+ def delete_tweet
137
+ tweets = client.destroy_status(opts['delete-tweet'])
138
+ if tweets.any?
139
+ render_tweets tweets, title: bold("Deleted tweets"), timeout: false
140
+ else
141
+ page "Tweet was not deleted. Maybe you deleted it already?"
142
+ end
111
143
  end
112
144
 
113
145
  def follow_user
@@ -136,20 +168,6 @@ class Pry::SendTweet::TwitterAction < Pry::SendTweet::BaseCommand
136
168
  end
137
169
  end
138
170
 
139
- def delete_retweet
140
- tweets = client.unretweet(opts['delete-retweet'])
141
- page numbered_list(bold("Retweets you deleted"), tweets) {|tweet, index|
142
- "#{index}. #{tweet.url}"
143
- }
144
- end
145
-
146
- def delete_tweet
147
- tweets = client.destroy_status(opts['delete-tweet'])
148
- page numbered_list(bold("Tweets you deleted"), tweets) {|tweet, index|
149
- "#{index}. #{tweet.url}"
150
- }
151
- end
152
-
153
171
  def display_followed_or_unfollowed(user, index)
154
172
  sn = "@#{user.screen_name}"
155
173
  "#{sn} #{bold(bright_blue('|'))} #{user.url}"
@@ -0,0 +1,5 @@
1
+ class Pry
2
+ module SendTweet
3
+ VERSION = '0.6.0'
4
+ end
5
+ end
@@ -1,6 +1,7 @@
1
+ Kernel.require_relative 'lib/pry/send_tweet/version'
1
2
  Gem::Specification.new do |spec|
2
3
  spec.name = "pry-send_tweet.rb"
3
- spec.version = "0.5.3"
4
+ spec.version = Pry::SendTweet::VERSION
4
5
  spec.authors = ["Robert Gleeson"]
5
6
  spec.email = "trebor.g@protonmail.com"
6
7
  spec.summary = "Extends the Pry REPL with the capabilities of a Twitter client."
@@ -8,7 +9,7 @@ Gem::Specification.new do |spec|
8
9
  spec.homepage = "https://github.com/r-obert/pry-send_tweet.rb"
9
10
  spec.licenses = ["MIT"]
10
11
  spec.require_paths = ["lib"]
11
- spec.files = `git ls-files`.each_line.map(&:chomp)
12
+ spec.files = Dir["Dockerfile", "Gemfile", "*.{txt,gemspec,md}", "lib/**/*.rb"]
12
13
  spec.add_runtime_dependency "pry", "~> 0.12"
13
14
  spec.add_runtime_dependency "twitter", "~> 6.0"
14
15
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-send_tweet.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Gleeson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-28 00:00:00.000000000 Z
11
+ date: 2018-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -44,23 +44,19 @@ executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
- - ".gitignore"
48
47
  - CHANGELOG.md
49
48
  - Dockerfile
50
49
  - Gemfile
51
50
  - LICENSE.txt
52
51
  - README.md
53
- - Rakefile.rb
54
- - dockerize.sh
55
52
  - lib/pry-send_tweet.rb
56
53
  - lib/pry/send_tweet/base_command.rb
57
54
  - lib/pry/send_tweet/mixins/tweet_renderer.rb
58
55
  - lib/pry/send_tweet/read_tweets_command.rb
59
56
  - lib/pry/send_tweet/send_tweet_command.rb
60
57
  - lib/pry/send_tweet/twitter_action_command.rb
58
+ - lib/pry/send_tweet/version.rb
61
59
  - pry-send_tweet.gemspec
62
- - spec/pry_send_tweet_spec.rb
63
- - spec/setup.rb
64
60
  homepage: https://github.com/r-obert/pry-send_tweet.rb
65
61
  licenses:
66
62
  - MIT
data/.gitignore DELETED
@@ -1,5 +0,0 @@
1
- Gemfile.lock
2
- .pryrc
3
- *.gem
4
- .DS_Store
5
- tmp/
data/Rakefile.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'bundler/gem_tasks'
2
- task :spec do
3
- Bundler.with_clean_env do
4
- sh "bundle exec rspec"
5
- end
6
- end
7
- task default: :spec
data/dockerize.sh DELETED
@@ -1,3 +0,0 @@
1
- #!/bin/sh
2
- docker build -t send_tweets .
3
- docker run -i -t send_tweets
@@ -1,6 +0,0 @@
1
- require_relative 'setup'
2
- RSpec.describe 'pry-send_tweet' do
3
- let(:tester) do
4
- pry_tester
5
- end
6
- end
data/spec/setup.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'bundler/setup'
2
- Bundler.require :default, :test
3
- require 'pry/testable'
4
-
5
- RSpec.configure do |config|
6
- config.include Pry::Testable
7
- end