gifme 0.0.3 → 0.0.4

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.
Files changed (5) hide show
  1. data/README.md +6 -0
  2. data/Rakefile +1 -1
  3. data/bin/gifme +22 -1
  4. data/gifme.gemspec +1 -1
  5. metadata +3 -3
data/README.md CHANGED
@@ -42,6 +42,12 @@ them to the animation so it looks like one smooth motion and back again.
42
42
 
43
43
  gifme FILES --reverse
44
44
 
45
+ If you pass in a URL of a gif instead of FILES, we'll download that gif, split
46
+ it into its constituent frames, and let you recreate it. For example, you could
47
+ take a gif you find online and give it that `--reverse` look:
48
+
49
+ gifme http://tumblr.com/some-crazy.gif --reverse
50
+
45
51
  For other options, check out the help:
46
52
 
47
53
  gifme -h
data/Rakefile CHANGED
@@ -13,7 +13,7 @@ def name
13
13
  end
14
14
 
15
15
  def version
16
- "0.0.3"
16
+ "0.0.4"
17
17
  end
18
18
 
19
19
  def date
data/bin/gifme CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'optparse'
4
+ require 'open-uri'
4
5
 
5
6
  def escape(str)
6
7
  String(str).gsub(/(?=[^a-zA-Z0-9_.\/\-\x7F-\xFF\n])/n, '\\').
@@ -49,7 +50,7 @@ parser = OptionParser.new do |opts|
49
50
  end
50
51
 
51
52
  parser.parse!
52
- files = *ARGV.collect{|a| escape a}
53
+ files = *ARGV
53
54
 
54
55
  unless system("which convert 2>&1 > /dev/null")
55
56
  puts "You need to install ImageMagick first.\n\n"
@@ -63,6 +64,26 @@ unless files
63
64
  exit(1)
64
65
  end
65
66
 
67
+ # WORKING WITH REMOTE FILES
68
+ if files.first[0..3] == 'http'
69
+ path = "/tmp/downloaded-gifme.gif"
70
+ open(path, 'wb') do |file|
71
+ file << open(files.first).read
72
+ end
73
+
74
+ FileUtils.rm_rf "/tmp/gifme"
75
+ FileUtils.mkdir "/tmp/gifme"
76
+ system "cd /tmp/gifme && convert #{path} -coalesce frame_%d.gif"
77
+
78
+ files = Dir.entries("/tmp/gifme")
79
+ files.delete(".")
80
+ files.delete("..")
81
+ files = files.collect{|f| "/tmp/gifme/#{f}"}
82
+ end
83
+
84
+ # Escape spaces and all that jazz
85
+ files = files.collect{|a| escape a}
86
+
66
87
  cmd = "convert"
67
88
  cmd += " -delay #{options[:delay]}"
68
89
  cmd += " -loop 0"
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'gifme'
16
- s.version = '0.0.3'
16
+ s.version = '0.0.4'
17
17
  s.date = '2011-05-23'
18
18
  s.rubyforge_project = 'gifme'
19
19
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gifme
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Zach Holman