pry-send_tweet.rb 0.5.3 → 0.6.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.
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