fewer 0.0.0 → 0.0.1
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/VERSION +1 -1
- data/fewer.gemspec +65 -0
- data/lib/fewer/engines.rb +2 -0
- data/lib/fewer/engines/abstract.rb +9 -9
- data/lib/fewer/engines/js.rb +13 -0
- data/lib/fewer/engines/js_min.rb +19 -0
- data/test/engine_test.rb +26 -0
- data/test/sass_engine_test.rb +22 -0
- data/test/test_helper.rb +2 -1
- metadata +11 -8
- data/test/abstract_bundler_test.rb +0 -11
- data/test/less_bundler_test.rb +0 -7
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.1
|
data/fewer.gemspec
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{fewer}
|
8
|
+
s.version = "0.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Ben Pickles"]
|
12
|
+
s.date = %q{2010-08-10}
|
13
|
+
s.description = %q{Rack middleware to bundle assets and help you make fewer HTTP requests.}
|
14
|
+
s.email = %q{spideryoung@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".gitignore",
|
21
|
+
"LICENSE",
|
22
|
+
"README.md",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"fewer.gemspec",
|
26
|
+
"lib/fewer.rb",
|
27
|
+
"lib/fewer/app.rb",
|
28
|
+
"lib/fewer/engines.rb",
|
29
|
+
"lib/fewer/engines/abstract.rb",
|
30
|
+
"lib/fewer/engines/css.rb",
|
31
|
+
"lib/fewer/engines/js.rb",
|
32
|
+
"lib/fewer/engines/js_min.rb",
|
33
|
+
"lib/fewer/engines/less.rb",
|
34
|
+
"lib/fewer/errors.rb",
|
35
|
+
"lib/fewer/serializer.rb",
|
36
|
+
"test/app_test.rb",
|
37
|
+
"test/engine_test.rb",
|
38
|
+
"test/test_helper.rb"
|
39
|
+
]
|
40
|
+
s.homepage = %q{http://github.com/benpickles/fewer}
|
41
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
42
|
+
s.require_paths = ["lib"]
|
43
|
+
s.rubygems_version = %q{1.3.7}
|
44
|
+
s.summary = %q{Rack middleware to bundle assets and help you make fewer HTTP requests.}
|
45
|
+
s.test_files = [
|
46
|
+
"test/app_test.rb",
|
47
|
+
"test/engine_test.rb",
|
48
|
+
"test/sass_engine_test.rb",
|
49
|
+
"test/test_helper.rb"
|
50
|
+
]
|
51
|
+
|
52
|
+
if s.respond_to? :specification_version then
|
53
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
54
|
+
s.specification_version = 3
|
55
|
+
|
56
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
57
|
+
s.add_runtime_dependency(%q<rack>, [">= 0"])
|
58
|
+
else
|
59
|
+
s.add_dependency(%q<rack>, [">= 0"])
|
60
|
+
end
|
61
|
+
else
|
62
|
+
s.add_dependency(%q<rack>, [">= 0"])
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
data/lib/fewer/engines.rb
CHANGED
@@ -9,13 +9,6 @@ module Fewer
|
|
9
9
|
check_paths!
|
10
10
|
end
|
11
11
|
|
12
|
-
def check_paths!
|
13
|
-
if (missing = paths.reject { |path| File.exist?(path) }).any?
|
14
|
-
files = missing.map { |path| path.to_s }.join("\n")
|
15
|
-
raise Fewer::MissingSourceFileError.new("Missing source file#{'s' if missing.size > 1}:\n#{files}")
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
12
|
def content_type
|
20
13
|
'text/plain'
|
21
14
|
end
|
@@ -31,8 +24,7 @@ module Fewer
|
|
31
24
|
|
32
25
|
def paths
|
33
26
|
names.map { |name|
|
34
|
-
#
|
35
|
-
File.join(root, "#{name}#{extension}")
|
27
|
+
File.join(root, "#{File.basename(name.to_s)}#{extension}")
|
36
28
|
}
|
37
29
|
end
|
38
30
|
|
@@ -41,6 +33,14 @@ module Fewer
|
|
41
33
|
File.read(path)
|
42
34
|
}.join("\n")
|
43
35
|
end
|
36
|
+
|
37
|
+
private
|
38
|
+
def check_paths!
|
39
|
+
if (missing = paths.reject { |path| File.exist?(path) }).any?
|
40
|
+
files = missing.map { |path| path.to_s }.join("\n")
|
41
|
+
raise Fewer::MissingSourceFileError.new("Missing source file#{'s' if missing.size > 1}:\n#{files}")
|
42
|
+
end
|
43
|
+
end
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
autoload :Closure, 'closure-compiler'
|
2
|
+
|
3
|
+
module Fewer
|
4
|
+
module Engines
|
5
|
+
class JsMin < Abstract
|
6
|
+
def content_type
|
7
|
+
'application/x-javascript'
|
8
|
+
end
|
9
|
+
|
10
|
+
def extension
|
11
|
+
'.js'
|
12
|
+
end
|
13
|
+
|
14
|
+
def read
|
15
|
+
::Closure::Compiler.new.compress(super)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/test/engine_test.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class EngineTest < Test::Unit::TestCase
|
4
|
+
def test_sanitise_paths
|
5
|
+
bad_files = ['./../private.txt', '/etc/passwd']
|
6
|
+
engine = engine_klass_no_checking.new('./happy-place', bad_files)
|
7
|
+
assert_equal ['./happy-place/private.txt', './happy-place/passwd'], engine.paths
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_stringify_paths
|
11
|
+
engine = engine_klass_no_checking.new('.', [:symbol, { :a => :b }])
|
12
|
+
assert_equal ['./symbol', './ab'], engine.paths
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
def engine_klass(&block)
|
17
|
+
Class.new(Fewer::Engines::Abstract, &block)
|
18
|
+
end
|
19
|
+
|
20
|
+
def engine_klass_no_checking
|
21
|
+
engine_klass do
|
22
|
+
private
|
23
|
+
def check_paths!; end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class EnginesTest < Test::Unit::TestCase
|
4
|
+
def test_sass_engine
|
5
|
+
engine = Fewer::Engines::Sass.new(template_root, 'sass')
|
6
|
+
assert_equal sass, engine.read
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
def sass
|
11
|
+
'#navbar li {
|
12
|
+
border-top-radius: 10px;
|
13
|
+
-moz-border-radius-top: 10px;
|
14
|
+
-webkit-border-top-radius: 10px; }
|
15
|
+
|
16
|
+
#footer {
|
17
|
+
border-top-radius: 10px;
|
18
|
+
-moz-border-radius-top: 10px;
|
19
|
+
-webkit-border-top-radius: 10px; }
|
20
|
+
'
|
21
|
+
end
|
22
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fewer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ben Pickles
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-08-10 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -47,18 +47,21 @@ files:
|
|
47
47
|
- README.md
|
48
48
|
- Rakefile
|
49
49
|
- VERSION
|
50
|
+
- fewer.gemspec
|
50
51
|
- lib/fewer.rb
|
51
52
|
- lib/fewer/app.rb
|
52
53
|
- lib/fewer/engines.rb
|
53
54
|
- lib/fewer/engines/abstract.rb
|
54
55
|
- lib/fewer/engines/css.rb
|
56
|
+
- lib/fewer/engines/js.rb
|
57
|
+
- lib/fewer/engines/js_min.rb
|
55
58
|
- lib/fewer/engines/less.rb
|
56
59
|
- lib/fewer/errors.rb
|
57
60
|
- lib/fewer/serializer.rb
|
58
61
|
- test/app_test.rb
|
62
|
+
- test/engine_test.rb
|
59
63
|
- test/test_helper.rb
|
60
|
-
- test/
|
61
|
-
- test/less_bundler_test.rb
|
64
|
+
- test/sass_engine_test.rb
|
62
65
|
has_rdoc: true
|
63
66
|
homepage: http://github.com/benpickles/fewer
|
64
67
|
licenses: []
|
@@ -94,7 +97,7 @@ signing_key:
|
|
94
97
|
specification_version: 3
|
95
98
|
summary: Rack middleware to bundle assets and help you make fewer HTTP requests.
|
96
99
|
test_files:
|
97
|
-
- test/abstract_bundler_test.rb
|
98
100
|
- test/app_test.rb
|
99
|
-
- test/
|
101
|
+
- test/engine_test.rb
|
102
|
+
- test/sass_engine_test.rb
|
100
103
|
- test/test_helper.rb
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# require 'test_helper'
|
2
|
-
#
|
3
|
-
# class AbstractBundlerTest < Test::Unit::TestCase
|
4
|
-
# def setup
|
5
|
-
# @bundler = Fewer::Engines::Abstract.new('.', ['a.txt', 'b.txt'])
|
6
|
-
# end
|
7
|
-
#
|
8
|
-
# def test_root_to_a_pathname
|
9
|
-
# assert_kind_of Pathname, @bundler.root
|
10
|
-
# end
|
11
|
-
# end
|