twitterpunch 0.0.8 → 0.0.9

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
  SHA1:
3
- metadata.gz: dc3d6039a991bb31c105ce40daaea5ec49002ffc
4
- data.tar.gz: 3df413902f881befba963640647f8df4ada50bc3
3
+ metadata.gz: e6165d7e7567e21e95a0b4c9f0263bca9baf1d2a
4
+ data.tar.gz: f737d7aae3b511e5d41f716a99f7188fa2d6eae8
5
5
  SHA512:
6
- metadata.gz: 8303873cd744d2acfd901862fe306c1858bbc9df2a2c600377331ea8e56b78ad49ad5091c5bbb83383f4d68bc713cc3348289b25e126abae2c0d9467260fa7de
7
- data.tar.gz: 53a0bf07a69ec8a5054b36b5b732a0c4e725a7c5c507f32bfcc6d5ebd97f7d9d85cac85f095b6ee45c0e31f6f20187a657c5ec1d698e284e1a73671ec82b9f2d
6
+ metadata.gz: e0bea417908e09c9565ae39882217efbcdc04c1f67a194c2f72ef0048c913afb3c6fa49df617861e14d3f0dbf870623082349bcd59e6592def62c3d16d995dc2
7
+ data.tar.gz: 40c009c5f09acfdc47a41d7c353a56e7599d10b3d72809a755adc2c2c9dc4a619ce5bd5b8d5a69cc16ecb0703960c09300db042eb99c37957a4a95c4446d9a4d
@@ -0,0 +1,7 @@
1
+ # Twitterpunch Changelog
2
+
3
+ ## v0.0.9
4
+
5
+ This now resizes images that are too large to post to the Twitter API, and will
6
+ allow you to configure the remote to trigger other photo booth apps besides
7
+ the stock *Photo Booth*.
data/README.md CHANGED
@@ -38,6 +38,10 @@ should look similar to the example below.
38
38
  :logfile: ~/.twitterpunch/activity.log # Where to save logs
39
39
  :viewer: # Use the built-in slideshow viewer
40
40
  :count: 5 # How many images to have onscreen at once
41
+ :remote:
42
+ :timeout: 45 # How long the button should remain disabled for
43
+ :apptitle: dslrBooth # The photo booth application title
44
+ :hotkey: space # Which hotkey to send to trigger a photo
41
45
 
42
46
  1. Generate a skeleton configuration file
43
47
  * `twitterpunch --configure`
@@ -59,13 +63,41 @@ Usage
59
63
  1. Profit!
60
64
  * _and by that, I mean take some shots with PhotoBooth!_
61
65
 
66
+ *Note*: if the folder action doesn't seem to work and photos aren't posted to
67
+ Twitter, here are some troubleshooting steps to take:
68
+
69
+ 1. Run Twitterpunch by hand with photos as arguments. This may help you isolate
70
+ configuration or authorization issues.
71
+ * `twitterpunch foo.jpg`
72
+ 1. Correct the path in the workflow.
73
+ * `which twitterpunch`
74
+ * Edit the Twitterpunch folder action to include that path.
75
+
62
76
  #### Using the remote web app
63
77
 
78
+ Configure the remote web app using the `:remote` hash in `config.yaml`. You can
79
+ usually find the title of the app using `system_profiler -detailLevel full SPApplicationsDataType`
80
+ and grepping for the name or path to the `.app`.
81
+
82
+ In this example, the title is _dslrBooth_.
83
+
84
+ [ben@ganymede] ~ $ system_profiler -detailLevel full SPApplicationsDataType | grep -B8 dslrBooth.app
85
+ dslrBooth:
86
+
87
+ Version: 2.9
88
+ Obtained from: Identified Developer
89
+ Last Modified: 10/14/17, 9:50 PM
90
+ Kind: Intel
91
+ 64-Bit (Intel): Yes
92
+ Signed by: Developer ID Application: Hope Pictures LLC (MZR5GHAQX4), Developer ID Certification Authority, Apple Root CA
93
+ Location: /Applications/dslrBooth.app
94
+
64
95
  1. Run the app with `twitterpunch --remote`
65
96
  1. Browse to the app with http://{address}:8080
66
97
  1. [optional] If on an iOS device, add to your homescreen
67
98
  * This will give you "app behaviour", such as full screen, and a nice icon
68
99
 
100
+
69
101
  #### Troubleshooting.
70
102
 
71
103
  1. Make sure the folder action is installed properly
@@ -89,6 +121,12 @@ multiple files at once.
89
121
 
90
122
  [ben@ganymede] ~ $ twitterpunch photo.jpg [photo2.jpg photo3.jpg photo4.jpg]
91
123
 
124
+ You can manually install the Folder Action, or you can follow the automated
125
+ install process after tweaking the workflow slightly.
126
+
127
+ 1. Identify where the app stores the resulting image files.
128
+ 1. Edit the Twitterpunch folder action to include that path.
129
+ 1. Follow the steps above to install the Folder Action.
92
130
 
93
131
  ### Viewing the Twitter stream
94
132
 
@@ -46,11 +46,11 @@ optparse = OptionParser.new { |opts|
46
46
  config[:action] = :configure
47
47
  end
48
48
 
49
- opts.on("-i", "--remote", "Start the Twitterpunch remote web service") do
49
+ opts.on("-r", "--remote", "Start the Twitterpunch remote web service") do
50
50
  config[:action] = :remote
51
51
  end
52
52
 
53
- opts.on("-r", "--install", "Install the Folder Action workflow (OS X only).") do
53
+ opts.on("-i", "--install", "Install the Folder Action workflow (OS X only).") do
54
54
  config[:action] = :install
55
55
  end
56
56
 
@@ -79,6 +79,12 @@ config[:queue] = {}
79
79
  config[:queue][:file] = File.expand_path('~/.twitterpunch/queue.yaml')
80
80
  config[:queue][:ttl] = 30
81
81
 
82
+ config[:remote] ||= {}
83
+ config[:remote][:port] ||= 8080
84
+ config[:remote][:timeout] ||= 3
85
+ config[:remote][:apptitle] ||= 'Photo Booth'
86
+ config[:remote][:hotkey] ||= 'return'
87
+
82
88
  FileUtils.touch(config[:queue][:file])
83
89
  FileUtils.touch(config[:statefile])
84
90
 
@@ -95,7 +101,7 @@ when :stream
95
101
  Twitterpunch::Streamer.new(config).thread
96
102
  viewer.run
97
103
 
98
- File.open(statefile, 'w') {|f| f.write(config[:state].to_yaml) }
104
+ File.open(config[:statefile], 'w') {|f| f.write(config[:state].to_yaml) }
99
105
 
100
106
  when :post
101
107
  require 'twitterpunch/poster'
@@ -128,9 +134,10 @@ when :install
128
134
  when :remote
129
135
  require 'twitterpunch/remote'
130
136
  options = {
131
- :port => 8080,
132
- :bind => '0.0.0.0',
133
- :queue => Twitterpunch::Queue.new(config),
137
+ :port => config[:remote][:port],
138
+ :bind => '0.0.0.0',
139
+ :queue => Twitterpunch::Queue.new(config),
140
+ :remote => config[:remote],
134
141
  }
135
142
 
136
143
  Twitterpunch::Remote.run! options
@@ -1,5 +1,5 @@
1
1
  module Twitterpunch
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
 
4
4
  # Twitter application credentials
5
5
  API_KEY = 'STurW17Tj7HuoZ7dSzS0uSoIP'
@@ -1,6 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'twitter'
3
3
  require 'twitterpunch/queue'
4
+ require 'tempfile'
5
+ require 'rmagick'
4
6
 
5
7
  module Twitterpunch
6
8
  class Poster
@@ -17,11 +19,38 @@ module Twitterpunch
17
19
  message = @queue.pop || @config[:messages].sample
18
20
  message = "#{message[0..@length]} ##{@config[:hashtag]}"
19
21
 
20
- @client.update_with_media(message, File.new(File.expand_path(img)))
22
+ resample(img) do |path|
23
+ @client.update_with_media(message, File.new(path))
24
+ end
21
25
  chirp()
22
26
  end
23
27
  end
24
28
 
29
+ def resample(img)
30
+ path = File.expand_path(img)
31
+ size = File.size?(path)
32
+ max = 3000000 # max size for twitter images
33
+
34
+ if size < max
35
+ yield path
36
+ else
37
+ # since filesize grows exponentially, this will be smaller than absolutely necessary.
38
+ ratio = Float(max) / Float(size)
39
+ tmpfile = Tempfile.new('twitterpunch')
40
+
41
+ image = Magick::Image.read(path).first
42
+ image.resize!(ratio)
43
+ image.write(tmpfile.path)
44
+
45
+ yield tmpfile.path
46
+
47
+ tmpfile.close
48
+ tmpfile.unlink
49
+
50
+ puts "Resized image to #{Integer(ratio * 100)}%."
51
+ end
52
+ end
53
+
25
54
  def chirp
26
55
  case RUBY_PLATFORM
27
56
  when /mingw|cygwin/
@@ -9,12 +9,15 @@ class Twitterpunch::Remote < Sinatra::Base
9
9
  set :views, File.dirname(__FILE__) + '/../../views'
10
10
  set :public_folder, File.dirname(__FILE__) + '/../../public'
11
11
  set :erb, :trim => '-'
12
- set :configfile, File.expand_path('~/.twitterpunch/queue.yaml')
13
12
 
14
13
  configure :production, :development do
15
14
  enable :logging
16
15
  enable :sessions
17
- system('osascript', '-e' 'tell application "Photo Booth" to activate')
16
+ end
17
+
18
+ def initialize(app=nil)
19
+ super(app)
20
+ system('osascript', '-e' "tell application \"#{settings.remote[:apptitle]}\" to activate")
18
21
  end
19
22
 
20
23
  get '/' do
@@ -33,15 +36,19 @@ class Twitterpunch::Remote < Sinatra::Base
33
36
  helpers do
34
37
  def photo
35
38
  begin
36
- stdout, status = Open3.capture2e('osascript', '-e', 'tell application "Photo Booth" to activate')
37
- puts stdout
38
- raise "Could not activate Photo Booth" unless status.success?
39
+ stdout, status = Open3.capture2e('osascript', '-e', "tell application \"#{settings.remote[:apptitle]}\" to activate")
40
+ unless status.success?
41
+ puts stdout
42
+ raise "Could not activate Photo Booth"
43
+ end
39
44
 
40
45
  # This is kind of iffy, because it depends on having full control over the UI.
41
- # This will only work when Photo Booth actually has the foreground.
42
- stdout, status = Open3.capture2e('osascript', '-e', 'tell application "System Events" to keystroke return')
43
- puts stdout
44
- raise "Snapshot failed" unless status.success?
46
+ # This will only work when the Photo Booth app actually has the foreground.
47
+ stdout, status = Open3.capture2e('osascript', '-e', "tell application \"System Events\" to keystroke #{settings.remote[:hotkey]}")
48
+ unless status.success?
49
+ puts stdout
50
+ raise "Snapshot failed"
51
+ end
45
52
 
46
53
  'ok'
47
54
  rescue => e
@@ -105,7 +105,7 @@ module Twitterpunch
105
105
 
106
106
  def next_image
107
107
  image = Dir.glob(File.expand_path("#{@config[:photodir]}/*")).sample
108
- text = @config[:state][File.basename(image)]
108
+ text = @config[:state][File.basename(image)] rescue nil
109
109
  return image, text
110
110
  end
111
111
 
@@ -104,7 +104,7 @@
104
104
  btn.className = "";
105
105
  btn.value = "Push Me";
106
106
  msg.value = "";
107
- },3000);
107
+ }, <%= settings.remote[:timeout] * 1000 %>);
108
108
 
109
109
  if (txt == "") {
110
110
  get('/photo');
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitterpunch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Ford
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-11 00:00:00.000000000 Z
11
+ date: 2017-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: twitter
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rmagick
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  description: "Twitterpunch\n===============\n\nTwitterpunch is designed to work with
70
98
  PhotoBooth and OS X Folder Actions.\nWhen this script is called with the name of
71
99
  an image file, it will post the\nimage to Twitter, along with a message randomly
@@ -88,54 +116,75 @@ description: "Twitterpunch\n===============\n\nTwitterpunch is designed to work
88
116
  ~/Pictures/twitterpunch/ # Where to save downloaded images\n :logfile: ~/.twitterpunch/activity.log
89
117
  \ # Where to save logs\n :viewer: # Use the built-in
90
118
  slideshow viewer\n :count: 5 # How many images
91
- to have onscreen at once\n\n1. Generate a skeleton configuration file\n * `twitterpunch
92
- --configure`\n1. Edit the configuration file as needed. You'll be prompted with
93
- the path.\n * If you have your own Twitter application credentials, you're welcome
94
- to use them.\n1. Authorize the application with the Twitter API.\n * `twitterpunch
95
- --authorize`\n\n\nUsage \n==========\n\n### Using OS X PhotoBooth\n\n1. Start PhotoBooth
96
- at least once to generate its library.\n1. Install the Twitterpunch Folder Action\n
97
- \ * `twitterpunch --install`\n * It may claim that it could not be attached,
98
- fear not.\n1. Profit!\n * _and by that, I mean take some shots with PhotoBooth!_\n\n####
99
- Using the remote web app\n\n1. Run the app with `twitterpunch --remote`\n1. Browse
100
- to the app with http://{address}:8080\n1. [optional] If on an iOS device, add to
101
- your homescreen\n * This will give you \"app behaviour\", such as full screen,
102
- and a nice icon\n\n#### Troubleshooting.\n\n1. Make sure the folder action is installed
103
- properly\n 1. Use the Finder to navigate to `~/Pictures/`\n 1. Right click
104
- on the `Photo Booth Library` icon and choose _Show Package Contents_.\n 1. Right
105
- click on the `Pictures` folder and choose `Services > Folder Actions Setup`\n 1.
106
- Make sure that the `Twitterpunch` action is attached.\n1. Install the folder action\n
107
- \ 1. Open the `resources` folder of this gem.\n * Likely to be found in
108
- `/Library/Ruby/Gems/{version}/gems/twitterpunch-#{version}/resources/`.\n 1.
109
- Double click on the `Twitterpunch` folder action and install it.\n * It may
110
- claim that it could not be attached, fear not.\n\n\n### Using something besides
119
+ to have onscreen at once\n :remote:\n :timeout: 45 #
120
+ How long the button should remain disabled for\n :apptitle: dslrBooth #
121
+ The photo booth application title\n :hotkey: space #
122
+ Which hotkey to send to trigger a photo\n\n1. Generate a skeleton configuration
123
+ file\n * `twitterpunch --configure`\n1. Edit the configuration file as needed.
124
+ You'll be prompted with the path.\n * If you have your own Twitter application
125
+ credentials, you're welcome to use them.\n1. Authorize the application with the
126
+ Twitter API.\n * `twitterpunch --authorize`\n\n\nUsage \n==========\n\n### Using
127
+ OS X PhotoBooth\n\n1. Start PhotoBooth at least once to generate its library.\n1.
128
+ Install the Twitterpunch Folder Action\n * `twitterpunch --install`\n * It
129
+ may claim that it could not be attached, fear not.\n1. Profit!\n * _and by that,
130
+ I mean take some shots with PhotoBooth!_\n\n*Note*: if the folder action doesn't
131
+ seem to work and photos aren't posted to\nTwitter, here are some troubleshooting
132
+ steps to take:\n\n1. Run Twitterpunch by hand with photos as arguments. This may
133
+ help you isolate\n configuration or authorization issues.\n * `twitterpunch
134
+ foo.jpg`\n1. Correct the path in the workflow.\n * `which twitterpunch`\n *
135
+ Edit the Twitterpunch folder action to include that path.\n\n#### Using the remote
136
+ web app\n\nConfigure the remote web app using the `:remote` hash in `config.yaml`.
137
+ You can\nusually find the title of the app using `system_profiler -detailLevel full
138
+ SPApplicationsDataType`\nand grepping for the name or path to the `.app`.\n\nIn
139
+ this example, the title is _dslrBooth_.\n\n [ben@ganymede] ~ $ system_profiler
140
+ -detailLevel full SPApplicationsDataType | grep -B8 dslrBooth.app\n dslrBooth:\n\n
141
+ \ Version: 2.9\n Obtained from: Identified Developer\n Last
142
+ Modified: 10/14/17, 9:50 PM\n Kind: Intel\n 64-Bit (Intel): Yes\n
143
+ \ Signed by: Developer ID Application: Hope Pictures LLC (MZR5GHAQX4), Developer
144
+ ID Certification Authority, Apple Root CA\n Location: /Applications/dslrBooth.app\n\n1.
145
+ Run the app with `twitterpunch --remote`\n1. Browse to the app with http://{address}:8080\n1.
146
+ [optional] If on an iOS device, add to your homescreen\n * This will give you
147
+ \"app behaviour\", such as full screen, and a nice icon\n\n\n#### Troubleshooting.\n\n1.
148
+ Make sure the folder action is installed properly\n 1. Use the Finder to navigate
149
+ to `~/Pictures/`\n 1. Right click on the `Photo Booth Library` icon and choose
150
+ _Show Package Contents_.\n 1. Right click on the `Pictures` folder and choose
151
+ `Services > Folder Actions Setup`\n 1. Make sure that the `Twitterpunch` action
152
+ is attached.\n1. Install the folder action\n 1. Open the `resources` folder of
153
+ this gem.\n * Likely to be found in `/Library/Ruby/Gems/{version}/gems/twitterpunch-#{version}/resources/`.\n
154
+ \ 1. Double click on the `Twitterpunch` folder action and install it.\n *
155
+ It may claim that it could not be attached, fear not.\n\n\n### Using something besides
111
156
  PhotoBooth\n\nConfigure the program you are using for your photo shoot to call Twitterpunch\neach
112
157
  time it snaps a photo. Pass the name of the new photo as a command line\nargument.
113
158
  \ Alternatively, you could batch them, as Twitterpunch can accept\nmultiple files
114
159
  at once.\n\n [ben@ganymede] ~ $ twitterpunch photo.jpg [photo2.jpg photo3.jpg
115
- photo4.jpg]\n\n\n### Viewing the Twitter stream\n\nTwitterpunch will run on OS X
116
- or Windows equally well. Simply configure it on the\ncomputer that will act as the
117
- Twitter display and then run in streaming mode.\n\n [ben@ganymede] ~ $ twitterpunch
118
- --stream\n\nThere are two modes that Twitterpunch can operate in.\n\n1. If a `:hashtag`
119
- is defined then all images tweeted to the configured hashtag\n will be displayed
120
- in the slideshow.\n1. Otherwise, Twitterpunch will stream the `:handle` Twitter
121
- user's stream and\n display all images either posted by that user or addressed
122
- to that user. With\n protected tweets, you can have rudimentary access control.\n\nIn
123
- either mode, tweets that come from any other user will also be spoken aloud.\n\nIf
124
- you don't want to use the built-in slideshow viewer, you can disable it by\nremoving
125
- the `:viewer` key from your `~/.twitterpunch/config.yaml` config file.\nTwitterpunch
126
- will then simply download the tweeted images and save them into the\n`:photodir`
127
- directory. You can then use anything you like to view them.\n\nThere are currently
128
- two decent viewing options I am aware of.\n\n* Windows background image:\n *
129
- Configure the Windows background to randomly cycle through photos in a directory.\n
130
- \ * Hide desktop icons.\n * Hide the taskbar.\n * Disable screensaver and
131
- power savings.\n * Drawbacks: You're using Windows and you have to install Ruby
132
- & RubyGems manually.\n* OS X screensaver:\n * Choose one of the sexy screensavers
133
- and configure it to show photos from the `:photodir`\n * Set screensaver to a
134
- super short timeout.\n * Disable power savings.\n * Drawbacks: The screensaver
135
- doesn't reload dynamically, so I have to kick it\n and you'll see it reloading
136
- each time a new tweet comes in.\n\n\nLimitations\n===========\n\n* It currently
137
- requires manual setup for Folder Actions.\n* Rubygame is kind of a pain to set up.\n\n\nContact\n=======\n\n*
138
- Author: Ben Ford\n* Email: binford2k@gmail.com\n* Twitter: @binford2k\n* IRC (Freenode):
160
+ photo4.jpg]\n\nYou can manually install the Folder Action, or you can follow the
161
+ automated\ninstall process after tweaking the workflow slightly.\n\n1. Identify
162
+ where the app stores the resulting image files.\n1. Edit the Twitterpunch folder
163
+ action to include that path.\n1. Follow the steps above to install the Folder Action.\n\n###
164
+ Viewing the Twitter stream\n\nTwitterpunch will run on OS X or Windows equally well.
165
+ Simply configure it on the\ncomputer that will act as the Twitter display and then
166
+ run in streaming mode.\n\n [ben@ganymede] ~ $ twitterpunch --stream\n\nThere
167
+ are two modes that Twitterpunch can operate in.\n\n1. If a `:hashtag` is defined
168
+ then all images tweeted to the configured hashtag\n will be displayed in the slideshow.\n1.
169
+ Otherwise, Twitterpunch will stream the `:handle` Twitter user's stream and\n display
170
+ all images either posted by that user or addressed to that user. With\n protected
171
+ tweets, you can have rudimentary access control.\n\nIn either mode, tweets that
172
+ come from any other user will also be spoken aloud.\n\nIf you don't want to use
173
+ the built-in slideshow viewer, you can disable it by\nremoving the `:viewer` key
174
+ from your `~/.twitterpunch/config.yaml` config file.\nTwitterpunch will then simply
175
+ download the tweeted images and save them into the\n`:photodir` directory. You can
176
+ then use anything you like to view them.\n\nThere are currently two decent viewing
177
+ options I am aware of.\n\n* Windows background image:\n * Configure the Windows
178
+ background to randomly cycle through photos in a directory.\n * Hide desktop
179
+ icons.\n * Hide the taskbar.\n * Disable screensaver and power savings.\n
180
+ \ * Drawbacks: You're using Windows and you have to install Ruby & RubyGems manually.\n*
181
+ OS X screensaver:\n * Choose one of the sexy screensavers and configure it to
182
+ show photos from the `:photodir`\n * Set screensaver to a super short timeout.\n
183
+ \ * Disable power savings.\n * Drawbacks: The screensaver doesn't reload dynamically,
184
+ so I have to kick it\n and you'll see it reloading each time a new tweet comes
185
+ in.\n\n\nLimitations\n===========\n\n* It currently requires manual setup for Folder
186
+ Actions.\n* Rubygame is kind of a pain to set up.\n\n\nContact\n=======\n\n* Author:
187
+ Ben Ford\n* Email: binford2k@gmail.com\n* Twitter: @binford2k\n* IRC (Freenode):
139
188
  binford2k\n"
140
189
  email: binford2k@gmail.com
141
190
  executables:
@@ -143,9 +192,11 @@ executables:
143
192
  extensions: []
144
193
  extra_rdoc_files: []
145
194
  files:
195
+ - CHANGELOG.md
146
196
  - LICENSE
147
197
  - README.md
148
198
  - bin/twitterpunch
199
+ - lib/twitterpunch.rb
149
200
  - lib/twitterpunch/configuration.rb
150
201
  - lib/twitterpunch/logger.rb
151
202
  - lib/twitterpunch/poster.rb
@@ -154,7 +205,8 @@ files:
154
205
  - lib/twitterpunch/sprite.rb
155
206
  - lib/twitterpunch/streamer.rb
156
207
  - lib/twitterpunch/viewer.rb
157
- - lib/twitterpunch.rb
208
+ - public/touch-icon-ipad-retina.png
209
+ - public/touch-icon-iphone-retina.png
158
210
  - resources/Tahoma Bold.ttf
159
211
  - resources/Twitterpunch.workflow/Contents/Info.plist
160
212
  - resources/Twitterpunch.workflow/Contents/QuickLook/Thumbnail.png
@@ -162,8 +214,6 @@ files:
162
214
  - resources/say.vbs
163
215
  - resources/tweet_sent.wav
164
216
  - views/index.erb
165
- - public/touch-icon-ipad-retina.png
166
- - public/touch-icon-iphone-retina.png
167
217
  homepage: https://github.com/binford2k/twitterpunch
168
218
  licenses:
169
219
  - MIT
@@ -193,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
193
243
  version: '0'
194
244
  requirements: []
195
245
  rubyforge_project:
196
- rubygems_version: 2.0.14.1
246
+ rubygems_version: 2.5.2
197
247
  signing_key:
198
248
  specification_version: 4
199
249
  summary: A simple tool to automate the posting and streaming of PhotoBooth shots over