extract_files 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - jruby-18mode # JRuby in 1.8 mode
7
+ - jruby-19mode # JRuby in 1.9 mode
8
+ - rbx-18mode
9
+ script: rake test
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in extract_files.gemspec
4
+ gemspec
@@ -0,0 +1,114 @@
1
+ # extract_files
2
+
3
+ Extract files from files or stdin for a given extension.
4
+
5
+ ## Yes, but i can do that with sed.
6
+
7
+ I know. Before this I use this snippet:
8
+
9
+ for css_file in `find css -name "*.css" ` ; do sed -n 's/^.*url *( *"*\'"'"'*\([^"]*\)\'"'"'*"* *).*$/'`dirname $css_file`'\/\1/p' $css_file ; done | ruby -n -e "puts File.expand_path(\$_)[File.expand_path('.').size+1..-1]"
10
+
11
+ Probably could be improve.
12
+
13
+
14
+ ## Usage
15
+
16
+ Given a css file with absolute and relative images
17
+
18
+ $ cat style.css
19
+ body {
20
+ background: url(../images/bg.jpg), url ( ../images/bg2.jpg );
21
+ background: url("../images/bg3.jpg");
22
+ background: url('/images/bg4.jpg);
23
+ background: url('images/bg5.jpg');
24
+ }
25
+
26
+ Extract the images only ``-e jpg -e png -e gif``
27
+
28
+ $ cat style.css | extract_files -e jpg
29
+ ../images/bg.jpg
30
+ ../images/bg2.jpg
31
+ ../images/bg3.jpg
32
+ /images/bg4.jpg
33
+ images/bg5.jpg
34
+
35
+ Now, relative to the css directory ``-b css``
36
+
37
+ $ cat style.css | extract_files -e jpg -b css
38
+ css/../images/bg.jpg
39
+ css/../images/bg2.jpg
40
+ css/../images/bg3.jpg
41
+ css/images/bg4.jpg
42
+ css/images/bg5.jpg
43
+
44
+ And do the path expansion ``-p``.
45
+
46
+ $ cat style.css | extract_files -e jpg -b css -p
47
+ images/bg.jpg
48
+ images/bg2.jpg
49
+ images/bg3.jpg
50
+ css/images/bg4.jpg
51
+ css/images/bg5.jpg
52
+
53
+ Or show the full path ``-f``.
54
+
55
+ $ cat style.css | extract_files -e jpg -b css -p -f
56
+ /Users/guillermo/Documents/extract_files/images/bg.jpg
57
+ /Users/guillermo/Documents/extract_files/images/bg2.jpg
58
+ /Users/guillermo/Documents/extract_files/images/bg3.jpg
59
+ /Users/guillermo/Documents/extract_files/css/images/bg4.jpg
60
+ /Users/guillermo/Documents/extract_files/css/images/bg5.jpg
61
+
62
+
63
+
64
+ You can pass the file/files directly:
65
+
66
+ $ extract_files * -e png
67
+ image1.png
68
+ /images/img1.png
69
+
70
+
71
+ ## Install
72
+
73
+ There are two ways of installing this small libbrary:
74
+
75
+ ### Rubygems
76
+
77
+ $ gem install extract_files
78
+
79
+ You will have the code as a library and the binary
80
+
81
+ ### Script only
82
+
83
+ curl -O https://raw.github.com/guillermo/extract_files/master/bin/extract_files
84
+ chmod +x extract_files
85
+
86
+ ## Development
87
+
88
+ The script is generated automatically with rake, so if you fork, ensure that you edit the correct files.
89
+
90
+ ## License
91
+
92
+ <pre>
93
+ ____ __ __
94
+ | __ ) ___ ___ _ _\ \ / /_ _ _ __ ___
95
+ | _ \ / _ \/ _ \ '__\ \ /\ / / _` | '__/ _ \
96
+ | |_) | __/ __/ | \ V V / (_| | | | __/
97
+ |____/ \___|\___|_| \_/\_/ \__,_|_| \___|
98
+
99
+ _ _
100
+ | | (_) ___ ___ _ __ ___ ___
101
+ | | | |/ __/ _ \ '_ \/ __|/ _ \
102
+ | |___| | (_| __/ | | \__ \ __/
103
+ |_____|_|\___\___|_| |_|___/\___|
104
+
105
+ ----------------------------------------------------------------------------
106
+ "THE BEER-WARE LICENSE" (Revision 42):
107
+ guillermo@cientifico.net wrote this file. As long as you retain this
108
+ notice you can do whatever you want with this stuff. If we meet some day,
109
+ and you think this stuff is worth it, you can buy me a beer in return
110
+ Guillermo Alvarez Fernandez
111
+ ----------------------------------------------------------------------------
112
+
113
+ </pre>
114
+
@@ -0,0 +1,18 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rake/clean'
3
+
4
+
5
+ task :test do
6
+ sh "ruby -I lib -rubygems test/extract_files_test.rb"
7
+ end
8
+
9
+ file 'bin/extract_files' => ['lib/extract_files.rb', 'lib/extract_files/optparse.rb'] do
10
+ sh "echo '#!/usr/bin/env ruby' > bin/extract_files"
11
+ sh "cat lib/extract_files.rb >> bin/extract_files"
12
+ sh "cat lib/extract_files/cli.rb >> bin/extract_files"
13
+ sh "chmod +x bin/extract_files"
14
+ end
15
+
16
+ CLEAN.add 'bin/extract_files'
17
+
18
+
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ module ExtractFiles
4
+ VERSION = "0.0.1"
5
+
6
+ extend self
7
+
8
+ DEFAULT_EXTENSIONS = %w(png jpeg jpg gif css js)
9
+
10
+ # Process the input io, or anything that respond to __read__ and return a string.
11
+ # options are:
12
+ #
13
+ # * **extensions**: Array of extensions to look for. Default is DEFAULT_EXTENSIONS
14
+ #
15
+ # * **base**: Base directory. Image a relative path for a image **bg.png** in a css file inside the **styles** folder. The default output
16
+ # will say "../images/bg.png". If you say that the base directory is "styles" the output will be "styles/../images/bg.png". Is unset by default.
17
+ #
18
+ # * **expand**: If the output is somehing like "sytles/../images/bg.png" expand will convert that in "images/bg.png". Is enabled by false.
19
+ #
20
+ # * **full_path**: Show the full_path
21
+ #
22
+ # If no **block** is passed, it will output to the stdout throught puts. If a block is given, it will yield each founded entry.
23
+ #
24
+ def extract!(io, options = {})
25
+ raise "Incorrect format for IO" unless io.respond_to?(:read)
26
+
27
+ options = {:extensions => DEFAULT_EXTENSIONS}.merge(options)
28
+
29
+ ext = "(" + options[:extensions].join("|") + ")"
30
+ re = /([a-z0-9\-_\/\.]*[a-z0-9]*\.#{ext})/i
31
+
32
+ io.read.scan(re).each do |match|
33
+ path = match[0]
34
+ path = File.join(options[:base], path) if options[:base]
35
+ path = simplify_path(path) if options[:expand]
36
+ path = File.expand_path(path) if options[:full_path]
37
+ if block_given?
38
+ yield path
39
+ else
40
+ puts path
41
+ end
42
+ end
43
+
44
+ end
45
+
46
+ # get! is a wrapper for extract! that returns and array of the matches.
47
+ def get!(io,options)
48
+ matches = []
49
+ extract!(io,options){|match| matches<<match}
50
+ matches
51
+ end
52
+
53
+ protected
54
+
55
+ def simplify_path(string)
56
+ string.gsub(/[^\/]*\/\.\.\//,'').gsub(/^\.\//,'').gsub(/\.\//,'')
57
+ end
58
+
59
+
60
+ end
61
+
62
+ require 'optparse'
63
+
64
+
65
+ options = {:extensions => []}
66
+ OptionParser.new do |opts|
67
+ opts.banner = "Usage: #{File.basename $0} [options] file"
68
+
69
+
70
+ opts.on("-e", "--ext EXT", "Extract files with extension EXT. Can be used several times.") do |v|
71
+ options[:extensions] << v
72
+ end
73
+
74
+ opts.separator ""
75
+
76
+ opts.on("-b", "--base-directory DIR", "Use DIR as a base directory") do |base_dir|
77
+ options[:base] = base_dir
78
+ end
79
+
80
+ opts.on("-p", "--expand-path", "Remove .. from output directories") do |e|
81
+ options[:expand] = true
82
+ end
83
+
84
+ opts.on("-f", "--full-path", "Show full path") do
85
+ options[:full_path] = true
86
+ end
87
+
88
+ opts.separator ""
89
+
90
+ opts.on("-v", "--version", "Show the version") do
91
+ puts ExtractFiles::VERSION
92
+ exit 0
93
+ end
94
+
95
+ opts.on_tail("-h", "--help", "Show this help") do
96
+ puts opts
97
+ exit 0
98
+ end
99
+
100
+ end.parse!
101
+
102
+ if ARGV.empty? || !$stdin.tty?
103
+ ExtractFiles.extract!($stdin, options)
104
+ exit 0
105
+ end
106
+
107
+ ARGV.each do |file|
108
+ (raise "File #{file} not found" ; exit -1) unless File.exists?(file)
109
+
110
+ if options[:extensions].any?
111
+
112
+ begin
113
+ file = File.open(file)
114
+ ExtractFiles.extract!(file, options)
115
+ ensure
116
+ file.close
117
+ end
118
+ end
119
+
120
+
121
+ end
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "extract_files"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "extract_files"
7
+ s.version = ExtractFiles::VERSION
8
+ s.authors = ["Guillermo Álvarez"]
9
+ s.email = ["guillermo@cientifico.net"]
10
+ s.homepage = "https://github.com/guillermo/extract_files"
11
+ s.summary = %q{Extract files from stdin or files given an extension/extensions}
12
+ s.description = File.read('README.md')
13
+
14
+ s.rubyforge_project = "extract_files"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_development_dependency "minitest"
22
+ end
@@ -0,0 +1,59 @@
1
+
2
+ module ExtractFiles
3
+ VERSION = "0.0.1"
4
+
5
+ extend self
6
+
7
+ DEFAULT_EXTENSIONS = %w(png jpeg jpg gif css js)
8
+
9
+ # Process the input io, or anything that respond to __read__ and return a string.
10
+ # options are:
11
+ #
12
+ # * **extensions**: Array of extensions to look for. Default is DEFAULT_EXTENSIONS
13
+ #
14
+ # * **base**: Base directory. Image a relative path for a image **bg.png** in a css file inside the **styles** folder. The default output
15
+ # will say "../images/bg.png". If you say that the base directory is "styles" the output will be "styles/../images/bg.png". Is unset by default.
16
+ #
17
+ # * **expand**: If the output is somehing like "sytles/../images/bg.png" expand will convert that in "images/bg.png". Is enabled by false.
18
+ #
19
+ # * **full_path**: Show the full_path
20
+ #
21
+ # If no **block** is passed, it will output to the stdout throught puts. If a block is given, it will yield each founded entry.
22
+ #
23
+ def extract!(io, options = {})
24
+ raise "Incorrect format for IO" unless io.respond_to?(:read)
25
+
26
+ options = {:extensions => DEFAULT_EXTENSIONS}.merge(options)
27
+
28
+ ext = "(" + options[:extensions].join("|") + ")"
29
+ re = /([a-z0-9\-_\/\.]*[a-z0-9]*\.#{ext})/i
30
+
31
+ io.read.scan(re).each do |match|
32
+ path = match[0]
33
+ path = File.join(options[:base], path) if options[:base]
34
+ path = simplify_path(path) if options[:expand]
35
+ path = File.expand_path(path) if options[:full_path]
36
+ if block_given?
37
+ yield path
38
+ else
39
+ puts path
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ # get! is a wrapper for extract! that returns and array of the matches.
46
+ def get!(io,options)
47
+ matches = []
48
+ extract!(io,options){|match| matches<<match}
49
+ matches
50
+ end
51
+
52
+ protected
53
+
54
+ def simplify_path(string)
55
+ string.gsub(/[^\/]*\/\.\.\//,'').gsub(/^\.\//,'').gsub(/\.\//,'')
56
+ end
57
+
58
+
59
+ end
@@ -0,0 +1,61 @@
1
+
2
+ require 'optparse'
3
+
4
+
5
+ options = {:extensions => []}
6
+ OptionParser.new do |opts|
7
+ opts.banner = "Usage: #{File.basename $0} [options] file"
8
+
9
+
10
+ opts.on("-e", "--ext EXT", "Extract files with extension EXT. Can be used several times.") do |v|
11
+ options[:extensions] << v
12
+ end
13
+
14
+ opts.separator ""
15
+
16
+ opts.on("-b", "--base-directory DIR", "Use DIR as a base directory") do |base_dir|
17
+ options[:base] = base_dir
18
+ end
19
+
20
+ opts.on("-p", "--expand-path", "Remove .. from output directories") do |e|
21
+ options[:expand] = true
22
+ end
23
+
24
+ opts.on("-f", "--full-path", "Show full path") do
25
+ options[:full_path] = true
26
+ end
27
+
28
+ opts.separator ""
29
+
30
+ opts.on("-v", "--version", "Show the version") do
31
+ puts ExtractFiles::VERSION
32
+ exit 0
33
+ end
34
+
35
+ opts.on_tail("-h", "--help", "Show this help") do
36
+ puts opts
37
+ exit 0
38
+ end
39
+
40
+ end.parse!
41
+
42
+ if ARGV.empty? || !$stdin.tty?
43
+ ExtractFiles.extract!($stdin, options)
44
+ exit 0
45
+ end
46
+
47
+ ARGV.each do |file|
48
+ (raise "File #{file} not found" ; exit -1) unless File.exists?(file)
49
+
50
+ if options[:extensions].any?
51
+
52
+ begin
53
+ file = File.open(file)
54
+ ExtractFiles.extract!(file, options)
55
+ ensure
56
+ file.close
57
+ end
58
+ end
59
+
60
+
61
+ end
@@ -0,0 +1,47 @@
1
+
2
+ require 'minitest/autorun'
3
+ require 'extract_files'
4
+
5
+
6
+ class ExtractFilesTest < MiniTest::Unit::TestCase
7
+
8
+ HTML = ["css/font.css", "css/font2.css", "../css/font3.css", "./css/font3.css", "js/script.js", "js/script2.JS", "/js/script3.JS", "./js/script4.JS", "/images/img1.png", "./images/img2.GIF", "../images/img3.GIF"]
9
+ JSON = ["image1.png", "image_3.jpeg", "images/img2.gif"]
10
+ CSS = ["../images/bg.jpg", "../images/bg2.jpg", "../images/bg3.jpg", "/images/bg4.jpg", "images/bg5.jpg"]
11
+
12
+
13
+ def test_extract
14
+ assert_equal JSON, extract!('files.json'), 'should extract files from files.json'
15
+ assert_equal HTML, extract!('index.html'), 'should extract files from index.html'
16
+ assert_equal CSS, extract!('style.css'), 'should extract files from style.css'
17
+ end
18
+
19
+ CSS2 = ["fixtures/../images/bg.jpg", "fixtures/../images/bg2.jpg", "fixtures/../images/bg3.jpg", "fixtures/images/bg4.jpg", "fixtures/images/bg5.jpg"]
20
+
21
+ def test_base
22
+ assert_equal CSS2, extract!('style.css', :base => "fixtures"), 'should append fixtures path'
23
+ end
24
+
25
+ CSS3 = ["images/bg.jpg", "images/bg2.jpg", "images/bg3.jpg", "fixtures/images/bg4.jpg", "fixtures/images/bg5.jpg"]
26
+
27
+ def test_base_expand
28
+ assert_equal CSS3, extract!('style.css', :base => 'fixtures', :expand => true), "Should expand the path"
29
+ end
30
+
31
+ CSS4 = ["/images/bg.jpg", "/images/bg2.jpg", "/images/bg3.jpg", "/fixtures/images/bg4.jpg", "/fixtures/images/bg5.jpg"]
32
+ def test_base_expand_full
33
+ files = extract!('style.css', :base => 'fixtures', :expand => true, :full_path => true).map{|f| f[File.expand_path('.').size..-1]}
34
+ assert_equal CSS4, files, "Should show the full path"
35
+ end
36
+
37
+ def extract!(filename, options = {})
38
+ file = File.join(File.dirname($0), 'fixtures', filename)
39
+ raise "File #{file} not found" unless File.file?(file)
40
+
41
+ f = File.open(file,"r")
42
+ ExtractFiles.get!(f,options)
43
+ ensure
44
+ f.close
45
+ end
46
+
47
+ end
@@ -0,0 +1,2 @@
1
+ { url: "image1.png", url2: 'image_3.jpeg', url3: 'images/img2.gif' }
2
+
@@ -0,0 +1,21 @@
1
+ <html>
2
+ <head>
3
+ <link rel='stylesheet' href='css/font.css'/>
4
+ <link rel='stylesheet' href="css/font2.css"/>
5
+ <link rel="stylesheet" HREF="../css/font3.css"/>
6
+ <link rel="stylesheet" HREF="./css/font3.css"/>
7
+
8
+ <script src="js/script.js"></script>
9
+ <script src="js/script2.JS"></script>
10
+ <script src="/js/script3.JS"></script>
11
+ <script src="./js/script4.JS"></script>
12
+ </head>
13
+ <body>
14
+ <img src="/images/img1.png">
15
+ <img src="./images/img2.GIF">
16
+ <img src="../images/img3.GIF">
17
+ </body>
18
+ </html>
19
+
20
+
21
+
@@ -0,0 +1,6 @@
1
+ body {
2
+ background: url(../images/bg.jpg), url ( ../images/bg2.jpg );
3
+ background: url("../images/bg3.jpg");
4
+ background: url('/images/bg4.jpg);
5
+ background: url('images/bg5.jpg');
6
+ }
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: extract_files
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Guillermo Álvarez
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-11 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: minitest
16
+ requirement: &70282753354860 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70282753354860
25
+ description: ! "# extract_files\n\nExtract files from files or stdin for a given extension.\n\n##
26
+ Yes, but i can do that with sed.\n\nI know. Before this I use this snippet:\n\n
27
+ \ for css_file in `find css -name \"*.css\" ` ; do sed -n 's/^.*url *( *\"*\\'\"'\"'*\\([^\"]*\\)\\'\"'\"'*\"*
28
+ *).*$/'`dirname $css_file`'\\/\\1/p' $css_file ; done | ruby -n -e \"puts File.expand_path(\\$_)[File.expand_path('.').size+1..-1]\"\n\nProbably
29
+ could be improve.\n\n\n## Usage\n\nGiven a css file with absolute and relative images\n\n\t\t$
30
+ cat style.css\n\t\tbody {\n\t\t\tbackground: url(../images/bg.jpg), url ( ../images/bg2.jpg
31
+ );\n\t\t\tbackground: url(\"../images/bg3.jpg\");\n\t\t\tbackground: url('/images/bg4.jpg);\n\t\t\tbackground:
32
+ url('images/bg5.jpg');\n\t\t}\n\nExtract the images only ``-e jpg -e png -e gif``\n\n\t\t$
33
+ cat style.css | extract_files -e jpg\n\t\t../images/bg.jpg\n\t\t../images/bg2.jpg\n\t\t../images/bg3.jpg\n\t\t/images/bg4.jpg\n\t\timages/bg5.jpg\n\nNow,
34
+ relative to the css directory ``-b css``\n\n\t\t$ cat style.css | extract_files
35
+ \ -e jpg -b css\n\t\tcss/../images/bg.jpg\n\t\tcss/../images/bg2.jpg\n\t\tcss/../images/bg3.jpg\n\t\tcss/images/bg4.jpg\n\t\tcss/images/bg5.jpg\n\nAnd
36
+ do the path expansion ``-p``.\n\n\t\t$ cat style.css | extract_files -e jpg -b
37
+ css -p\n\t\timages/bg.jpg\n\t\timages/bg2.jpg\n\t\timages/bg3.jpg\n\t\tcss/images/bg4.jpg\n\t\tcss/images/bg5.jpg\n\nOr
38
+ show the full path ``-f``.\n\n\t\t$ cat style.css | extract_files -e jpg -b css
39
+ -p -f\n\t\t/Users/guillermo/Documents/extract_files/images/bg.jpg\n\t\t/Users/guillermo/Documents/extract_files/images/bg2.jpg\n\t\t/Users/guillermo/Documents/extract_files/images/bg3.jpg\n\t\t/Users/guillermo/Documents/extract_files/css/images/bg4.jpg\n\t\t/Users/guillermo/Documents/extract_files/css/images/bg5.jpg\n\n\n\nYou
40
+ can pass the file/files directly: \n\n\t\t$ extract_files * -e png\n\t\timage1.png\n\t\t/images/img1.png\n\n\n##
41
+ Install\n\nThere are two ways of installing this small libbrary:\n\n### Rubygems\n\n
42
+ \ $ gem install extract_files\n\nYou will have the code as a library and the binary\n\n###
43
+ Script only\n\n\t\tcurl -O https://raw.github.com/guillermo/extract_files/master/bin/extract_files\n\t\tchmod
44
+ +x extract_files\n\n## Development\n\nThe script is generated automatically with
45
+ rake, so if you fork, ensure that you edit the correct files.\n\n## License\n\n<pre>\n
46
+ ____ __ __ \n| __ ) ___ ___ _ _\\ \\ / /_
47
+ _ _ __ ___ \n| _ \\ / _ \\/ _ \\ '__\\ \\ /\\ / / _` | '__/ _ \\\n| |_) | __/
48
+ \ __/ | \\ V V / (_| | | | __/\n|____/ \\___|\\___|_| \\_/\\_/ \\__,_|_|
49
+ \ \\___|\n \n _ _ \n|
50
+ | (_) ___ ___ _ __ ___ ___ \n| | | |/ __/ _ \\ '_ \\/ __|/ _ \\\n| |___| |
51
+ (_| __/ | | \\__ \\ __/\n|_____|_|\\___\\___|_| |_|___/\\___|\n \n----------------------------------------------------------------------------\n\"THE
52
+ BEER-WARE LICENSE\" (Revision 42):\nguillermo@cientifico.net wrote this file. As
53
+ long as you retain this \nnotice you can do whatever you want with this stuff. If
54
+ we meet some day,\nand you think this stuff is worth it, you can buy me a beer in
55
+ return \nGuillermo Alvarez Fernandez\n----------------------------------------------------------------------------\n\n</pre>\n\n"
56
+ email:
57
+ - guillermo@cientifico.net
58
+ executables:
59
+ - extract_files
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - .gitignore
64
+ - .travis.yml
65
+ - Gemfile
66
+ - README.md
67
+ - Rakefile
68
+ - bin/extract_files
69
+ - extract_files.gemspec
70
+ - lib/extract_files.rb
71
+ - lib/extract_files/cli.rb
72
+ - lib/extract_files/optparse.rb
73
+ - test/extract_files_test.rb
74
+ - test/fixtures/files.json
75
+ - test/fixtures/index.html
76
+ - test/fixtures/style.css
77
+ homepage: https://github.com/guillermo/extract_files
78
+ licenses: []
79
+ post_install_message:
80
+ rdoc_options: []
81
+ require_paths:
82
+ - lib
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project: extract_files
97
+ rubygems_version: 1.8.10
98
+ signing_key:
99
+ specification_version: 3
100
+ summary: Extract files from stdin or files given an extension/extensions
101
+ test_files:
102
+ - test/extract_files_test.rb
103
+ - test/fixtures/files.json
104
+ - test/fixtures/index.html
105
+ - test/fixtures/style.css