jello 2 → 3

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.
data/Rakefile.rb CHANGED
@@ -132,7 +132,7 @@ end
132
132
 
133
133
  desc 'Check everything over before commiting'
134
134
  task :aok => [:'documentation:generate', :'documentation:open',
135
- :'package:manifest',
135
+ :'package:manifest', :'package:gemspec',
136
136
  :'coverage:run', :'coverage:verify', :'coverage:open']
137
137
 
138
138
  task :ci => [:'documentation:generate', :'coverage:run', :'coverage:verify']
data/bin/jello CHANGED
@@ -4,11 +4,41 @@
4
4
 
5
5
  options = Hash.new
6
6
  OptionParser.new do |opts|
7
- opts.banner = "Usage: jello [options] <mould> (<mould> …)"
7
+ opts.banner = "\
8
+ = Jello =
9
+
10
+ Moulds may be any string that matches a part of a path of a Ruby file relative\
11
+ to one of the entries in the Jello search path:
12
+ - ~/.jello
13
+ - /etc/jello
14
+ - <`gem contents jello`>/moulds
15
+
16
+ If a file matches earlier in the search path, later ones that also match will\
17
+ be ignored.
18
+
19
+ A directory may match, in which case all Ruby files in that directory will be\
20
+ utilized.
21
+
22
+ The follow moulds are included for your enjoyment:
23
+ - jello say
24
+ - jello grabup
25
+ - jello shorten
26
+
27
+ == Usage ==
28
+ `jello [options] <mould> (<mould> <mould> …)`
29
+ "
8
30
 
9
31
  opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
10
32
  options[:verbose] = v
11
33
  end
34
+
35
+ opts.on("-f", "--[no-]feedback", "Feedback on successful process") do |f|
36
+ options[:feedback] = f
37
+ end
38
+
39
+ opts.on("-p", "--period PERIOD", "Period over which to cycle watcher process") do |p|
40
+ options[:period] = p
41
+ end
12
42
  end.parse!
13
43
 
14
44
  ARGV.each do |mould|
data/jello.gemspec CHANGED
@@ -1,18 +1,18 @@
1
1
 
2
- # Gem::Specification for Jello-2
2
+ # Gem::Specification for Jello-3
3
3
  # Originally generated by Echoe
4
4
 
5
5
  --- !ruby/object:Gem::Specification
6
6
  name: jello
7
7
  version: !ruby/object:Gem::Version
8
- version: "2"
8
+ version: "3"
9
9
  platform: ruby
10
10
  authors:
11
11
  - elliottcable
12
12
  autorequire:
13
13
  bindir: bin
14
14
 
15
- date: 2008-09-29 00:00:00 -08:00
15
+ date: 2008-10-09 00:00:00 -08:00
16
16
  default_executable:
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
data/lib/jello.rb CHANGED
@@ -3,10 +3,13 @@ require 'jello/pasteboard'
3
3
  require 'jello/mould'
4
4
 
5
5
  module Jello
6
- Version = 2
6
+ Version = 3
7
7
 
8
8
  def self.start! options = {}
9
9
  options = {:verbose => false, :period => 0.5}.merge(options)
10
+ raise ArgumentError, 'period must be capable of becoming a Numeric Float' unless
11
+ options[:period].respond_to? :to_f
12
+ options[:period] = options[:period].to_f
10
13
 
11
14
  forever do
12
15
 
@@ -16,11 +19,13 @@ module Jello
16
19
 
17
20
  puts "#{pasteboard.board} received: [#{initial_paste}]" if options[:verbose]
18
21
  moulds.each do |mould|
19
- paste = mould.on_paste[paste]
22
+ modified = mould.on_paste[paste]
23
+ paste = modified if modified.is_a?(String)
20
24
  end
21
25
 
22
26
  if paste.is_a?(String) and paste != initial_paste
23
27
  puts " --> [#{paste}]" if options[:verbose]
28
+ print "\a" if options[:feedback]
24
29
  pasteboard.puts paste
25
30
  end
26
31
  end
data/moulds/grabup.rb CHANGED
@@ -1,5 +1,3 @@
1
- require 'open-uri'
2
-
3
1
  Jello::Mould.new do |paste|
4
2
  if paste =~ %r{^http://www\.grabup\.com/uploads/[0-9a-z]{32}\.png$}
5
3
  paste.gsub!(%r{^http://www\.}, 'http://')
data/moulds/shorten.rb CHANGED
@@ -1,4 +1,6 @@
1
+ require 'cgi'
1
2
  require 'rubygems'
3
+ require 'open-uri'
2
4
  require 'JSON'
3
5
 
4
6
  Jello::Mould.new do |paste, board|
@@ -6,13 +8,29 @@ Jello::Mould.new do |paste, board|
6
8
  if paste =~ %r{^http://.*}
7
9
  uri = $&
8
10
  unless paste =~ %r{^http://tr.im}
9
- uri.gsub! /#/, '%23' # Fix anchors
11
+ # We're going to add the main part of the domain to the end of the URI
12
+ # as a bullshit parameter, to give visitors some indication of what
13
+ # their destination is. If you're in a character-limited location, such
14
+ # as twitter or a text message, feel free to simply delete this section
15
+ # of the URL by hand after pasting. (⌥⌫ is helpful!)
16
+ base = uri.match(%r{^http://([\w\d\.]+\.)?([\w\d]+)\.[\w]{2,4}/})[2]
10
17
 
11
- shortener = 'http://tr.im/api/trim_url.json?url=' + uri
18
+ uri = CGI::escape uri
19
+
20
+ # Feel free to copy this Mould to your ~/.jello directory and hardcode
21
+ # in your username and password, if you don't feel like having your
22
+ # username and password in your shell history.
23
+ params = {}
24
+ params[:username] = ENV['TRIM_USERNAME'] if ENV['TRIM_USERNAME']
25
+ params[:password] = ENV['TRIM_PASSWORD'] if ENV['TRIM_PASSWORD']
26
+ params[:url] = uri
27
+
28
+ shortener = 'http://tr.im/api/trim_url.json?' +
29
+ params.to_a.map {|a| a.join '=' }.join('&')
12
30
 
13
31
  reply = open(shortener).read
14
32
  short = JSON.parse reply
15
- short['url']
33
+ [short['url'], base].join('?')
16
34
  end
17
35
  end
18
36
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jello
3
3
  version: !ruby/object:Gem::Version
4
- version: "2"
4
+ version: "3"
5
5
  platform: ruby
6
6
  authors:
7
7
  - elliottcable
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-29 00:00:00 -08:00
12
+ date: 2008-10-09 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency