spar 0.2.7 → 1.0
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/README.md +272 -1
- data/bin/spar +30 -1
- data/lib/spar.rb +128 -7
- data/lib/spar/assets/404.jpg +0 -0
- data/lib/spar/assets/500.jpg +0 -0
- data/lib/spar/cli.rb +75 -22
- data/lib/spar/compiled_asset.rb +90 -0
- data/lib/spar/compiler.rb +74 -0
- data/lib/spar/compressor.rb +18 -0
- data/lib/spar/deployers/cloudfront_deployer.rb +33 -0
- data/lib/spar/deployers/deployer.rb +26 -0
- data/lib/spar/deployers/local_deployer.rb +15 -0
- data/lib/spar/deployers/s3_deployer.rb +75 -0
- data/lib/spar/directive_processor.rb +36 -0
- data/lib/spar/exceptions.rb +330 -0
- data/lib/spar/generators/templates/{README → base/README} +0 -0
- data/lib/spar/generators/templates/base/config.yml +12 -0
- data/lib/spar/generators/templates/pages/haml/app/pages/index.html.haml +11 -0
- data/lib/spar/generators/templates/pages/html/app/pages/index.html +16 -0
- data/lib/spar/generators/templates/{app/assets/javascripts/javascript.js.coffee → scripts/coffee/app/javascripts/application.js.coffee} +6 -3
- data/lib/spar/generators/templates/scripts/js/app/javascripts/application.js +11 -0
- data/lib/spar/generators/templates/styles/css/app/stylesheets/application.css +18 -0
- data/lib/spar/generators/templates/{app/assets → styles/sass/app}/stylesheets/application.css.sass +8 -4
- data/lib/spar/helpers.rb +31 -102
- data/lib/spar/not_found.rb +64 -0
- data/lib/spar/rewrite.rb +29 -0
- data/lib/spar/static.rb +46 -0
- data/lib/spar/tasks.rb +8 -13
- data/lib/spar/version.rb +1 -1
- metadata +261 -66
- data/lib/spar/assets.rb +0 -78
- data/lib/spar/base.rb +0 -54
- data/lib/spar/css_compressor.rb +0 -17
- data/lib/spar/deployer.rb +0 -198
- data/lib/spar/generators/application.rb +0 -42
- data/lib/spar/generators/templates/Gemfile +0 -3
- data/lib/spar/generators/templates/Rakefile +0 -8
- data/lib/spar/generators/templates/app/views/index.haml +0 -7
- data/lib/spar/generators/templates/config.ru +0 -9
- data/lib/spar/generators/templates/config/application.rb +0 -12
- data/lib/spar/generators/templates/script/server +0 -1
- data/lib/spar/static_compiler.rb +0 -91
data/lib/spar/generators/templates/{app/assets → styles/sass/app}/stylesheets/application.css.sass
RENAMED
@@ -1,11 +1,15 @@
|
|
1
|
+
//= deploy
|
2
|
+
|
1
3
|
// This is a manifest file that'll be compiled into application.css, which will include all the files
|
2
4
|
// listed below.
|
3
5
|
|
4
|
-
// Any CSS and SASS file within this directory
|
5
|
-
// or vendor/assets/stylesheets of gems, if any, can be referenced here using a relative path.
|
6
|
+
// Any CSS and SASS file within this directory or vendor/stylesheets can be referenced here using a relative path.
|
6
7
|
|
7
8
|
// You're free to add application-wide styles to this file and they'll appear at the top of the
|
8
9
|
// compiled file, but it's generally better to create a new file per style scope.
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
//= require_self
|
12
|
+
//= require_tree .
|
13
|
+
|
14
|
+
body
|
15
|
+
background: white
|
data/lib/spar/helpers.rb
CHANGED
@@ -3,121 +3,67 @@ require 'sprockets'
|
|
3
3
|
module Spar
|
4
4
|
module Helpers
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
attr_accessor :asset_environment, :asset_prefix, :digest_assets, :asset_digests, :compile_assets, :debug_assets, :asset_host
|
9
|
-
|
10
|
-
# Convience method for configuring Sprockets::Helpers.
|
11
|
-
def configure
|
12
|
-
yield self
|
13
|
-
end
|
6
|
+
def self.paths
|
7
|
+
@paths ||= Spar::Helpers::Paths.new()
|
14
8
|
end
|
15
9
|
|
16
|
-
def
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
paths.asset_digests = Helpers.asset_digests
|
21
|
-
paths.compile_assets = compile_assets?
|
22
|
-
paths.digest_assets = digest_assets?
|
23
|
-
paths.asset_host = Helpers.asset_host
|
24
|
-
paths
|
25
|
-
end
|
10
|
+
def self.path_to(asset_name, options={})
|
11
|
+
asset_name = asset_name.logical_path if asset_name.respond_to?(:logical_path)
|
12
|
+
path = paths.compute_public_path(asset_name, options.merge(:body => true))
|
13
|
+
options[:body] ? "#{path}?body=1" : path
|
26
14
|
end
|
27
15
|
|
28
|
-
def javascript_include_tag(*sources)
|
16
|
+
def self.javascript_include_tag(*sources)
|
29
17
|
sources.collect do |source|
|
30
|
-
if
|
18
|
+
if Spar.settings['debug'] && asset = paths.asset_for(source, 'js')
|
31
19
|
asset.to_a.map { |dep|
|
32
|
-
javascript_tag(
|
20
|
+
javascript_tag(path_to(dep, :ext => 'js', :body => true))
|
33
21
|
}
|
34
22
|
else
|
35
|
-
javascript_tag(
|
23
|
+
javascript_tag(path_to(source, :ext => 'js', :body => false))
|
36
24
|
end
|
37
25
|
end.join("\n")
|
38
26
|
end
|
39
27
|
|
40
|
-
def javascript_tag(src)
|
28
|
+
def self.javascript_tag(src)
|
41
29
|
"<script src='#{src}' charset='utf-8'></script>"
|
42
30
|
end
|
43
31
|
|
44
|
-
def stylesheet_link_tag(*sources)
|
32
|
+
def self.stylesheet_link_tag(*sources)
|
45
33
|
sources.collect do |source|
|
46
|
-
if
|
34
|
+
if Spar.settings['debug'] && asset = paths.asset_for(source, 'css')
|
47
35
|
asset.to_a.map { |dep|
|
48
|
-
stylesheet_tag(
|
36
|
+
stylesheet_tag(path_to(dep, :ext => 'css', :body => true, :protocol => :request))
|
49
37
|
}
|
50
38
|
else
|
51
|
-
stylesheet_tag(
|
39
|
+
stylesheet_tag(path_to(source, :ext => 'css', :body => false, :protocol => :request))
|
52
40
|
end
|
53
41
|
end.join("\n")
|
54
42
|
end
|
55
43
|
|
56
|
-
def stylesheet_tag(src)
|
44
|
+
def self.stylesheet_tag(src)
|
57
45
|
"<link href='#{src}' rel='stylesheet'>"
|
58
46
|
end
|
59
47
|
|
60
|
-
|
61
|
-
source = source.logical_path if source.respond_to?(:logical_path)
|
62
|
-
path = asset_paths.compute_public_path(source, Helpers.asset_prefix, options.merge(:body => true))
|
63
|
-
options[:body] ? "#{path}?body=1" : path
|
64
|
-
end
|
65
|
-
|
66
|
-
def image_path(source, options = {})
|
67
|
-
asset_path(source, options)
|
68
|
-
end
|
69
|
-
|
70
|
-
def font_path(source, options = {})
|
71
|
-
asset_path(source, options)
|
72
|
-
end
|
73
|
-
|
74
|
-
def javascript_path(source, options = {})
|
75
|
-
asset_path(source, options.merge(:ext => 'js'))
|
76
|
-
end
|
77
|
-
|
78
|
-
def stylesheet_path(source, options = {})
|
79
|
-
asset_path(source, options.merge(:ext => 'css'))
|
80
|
-
end
|
81
|
-
|
82
|
-
private
|
83
|
-
def debug_assets?
|
84
|
-
compile_assets? && !!Helpers.debug_assets
|
85
|
-
rescue NameError
|
86
|
-
false
|
87
|
-
end
|
88
|
-
|
89
|
-
def compile_assets?
|
90
|
-
!!Helpers.compile_assets
|
91
|
-
end
|
92
|
-
|
93
|
-
def digest_assets?
|
94
|
-
!!Helpers.digest_assets
|
95
|
-
end
|
96
|
-
|
97
|
-
class AssetPaths
|
48
|
+
class Paths
|
98
49
|
URI_REGEXP = %r{^[-a-z]+://|^cid:|^//}
|
99
50
|
|
100
|
-
|
101
|
-
|
102
|
-
class AssetNotPrecompiledError < StandardError; end
|
103
|
-
|
104
|
-
def asset_for(source, ext)
|
51
|
+
def asset_for(source, ext, options={})
|
105
52
|
source = source.to_s
|
106
53
|
return nil if is_uri?(source)
|
107
|
-
source = rewrite_extension(source,
|
108
|
-
|
54
|
+
source = rewrite_extension(source, ext)
|
55
|
+
Spar.sprockets.find_asset(source, options)
|
109
56
|
rescue Sprockets::FileOutsidePaths
|
110
57
|
nil
|
111
58
|
end
|
112
59
|
|
113
|
-
def compute_public_path(source,
|
60
|
+
def compute_public_path(source, options = {})
|
114
61
|
source = source.to_s
|
115
62
|
return source if is_uri?(source)
|
116
63
|
|
117
|
-
source = rewrite_extension(source,
|
118
|
-
source = rewrite_asset_path(source,
|
64
|
+
source = rewrite_extension(source, options[:ext]) if options[:ext]
|
65
|
+
source = rewrite_asset_path(source, options)
|
119
66
|
source = rewrite_host_and_protocol(source, options[:protocol])
|
120
|
-
source = rewrite_for_compression(source)
|
121
67
|
source
|
122
68
|
end
|
123
69
|
|
@@ -125,33 +71,24 @@ module Spar
|
|
125
71
|
path =~ URI_REGEXP
|
126
72
|
end
|
127
73
|
|
128
|
-
def digest_for(logical_path)
|
129
|
-
if
|
130
|
-
return
|
131
|
-
end
|
132
|
-
|
133
|
-
if compile_assets
|
134
|
-
if digest_assets && asset = asset_environment[logical_path]
|
135
|
-
return asset.digest_path
|
136
|
-
end
|
137
|
-
return logical_path
|
138
|
-
else
|
139
|
-
raise AssetNotPrecompiledError.new("#{logical_path} isn't precompiled")
|
74
|
+
def digest_for(logical_path, options={})
|
75
|
+
if Spar.settings['digests'] && !Spar.settings['debug'] && asset = Spar.sprockets.find_asset(logical_path, options)
|
76
|
+
return asset.digest_path
|
140
77
|
end
|
78
|
+
return logical_path
|
141
79
|
end
|
142
80
|
|
143
|
-
def rewrite_asset_path(source,
|
81
|
+
def rewrite_asset_path(source, options = {})
|
144
82
|
if source[0] == ?/
|
145
83
|
source
|
146
84
|
else
|
147
|
-
source = digest_for(source
|
148
|
-
source = File.join(dir, source)
|
85
|
+
source = digest_for(source, options)
|
149
86
|
source = "/#{source}" unless source =~ /^\//
|
150
87
|
source
|
151
88
|
end
|
152
89
|
end
|
153
90
|
|
154
|
-
def rewrite_extension(source,
|
91
|
+
def rewrite_extension(source, ext)
|
155
92
|
if ext && File.extname(source) != ".#{ext}"
|
156
93
|
"#{source}.#{ext}"
|
157
94
|
else
|
@@ -159,16 +96,8 @@ module Spar
|
|
159
96
|
end
|
160
97
|
end
|
161
98
|
|
162
|
-
def rewrite_for_compression(source)
|
163
|
-
if App.request_gzip and %w[.js .css].index File.extname(source)
|
164
|
-
source + 'gz'
|
165
|
-
else
|
166
|
-
source
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
99
|
def rewrite_host_and_protocol(source, protocol = nil)
|
171
|
-
asset_host ? "#{asset_host}#{source}" : source
|
100
|
+
Spar.settings['asset_host'] ? "#{Spar.settings['asset_host']}#{source}" : source
|
172
101
|
end
|
173
102
|
|
174
103
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'rack/showexceptions'
|
2
|
+
|
3
|
+
module Spar
|
4
|
+
|
5
|
+
class NotFound < Rack::ShowExceptions
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@template = ERB.new(TEMPLATE)
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(env)
|
12
|
+
path = env["PATH_INFO"]
|
13
|
+
|
14
|
+
body = [@template.result(binding)]
|
15
|
+
|
16
|
+
[404,
|
17
|
+
{"Content-Type" => "text/html",
|
18
|
+
"Content-Length" => Rack::Utils.bytesize(body.join).to_s},
|
19
|
+
body]
|
20
|
+
end
|
21
|
+
|
22
|
+
TEMPLATE = <<-HTML # :nodoc:
|
23
|
+
<!DOCTYPE html>
|
24
|
+
<html>
|
25
|
+
<head>
|
26
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
27
|
+
<title>Not Found: <%=h path %></title>
|
28
|
+
|
29
|
+
<style type="text/css" media="screen">
|
30
|
+
html {min-height: 100%; height: 100%;}
|
31
|
+
* {margin: 0; padding: 0; border: 0; outline: 0;}
|
32
|
+
body {background: #EEEEEE; margin: 0; padding: 0;
|
33
|
+
font-family: 'Lucida Grande', 'Lucida Sans Unicode',
|
34
|
+
'Garuda';
|
35
|
+
min-height: 100%; height: 100%;}
|
36
|
+
code {font-family: 'Lucida Console', monospace;
|
37
|
+
font-size: 12px;}
|
38
|
+
li {height: 18px;}
|
39
|
+
ul {list-style: none; margin: 0; padding: 0;}
|
40
|
+
ol:hover {cursor: pointer;}
|
41
|
+
ol li {white-space: pre;}
|
42
|
+
#explanation {font-size: 12px; color: #666666;
|
43
|
+
margin: 20px 0 0 100px;}
|
44
|
+
/* WRAP */
|
45
|
+
#wrap {width: 1000px; background: #FFFFFF; margin: 0 auto; min-height: 100%; height: 100%;
|
46
|
+
padding: 110px 50px 20px;
|
47
|
+
text-align: center;
|
48
|
+
border-left: 1px solid #DDDDDD;
|
49
|
+
border-right: 1px solid #DDDDDD;}
|
50
|
+
h1 {margin: 20px 0 0; font-size: 36px; color: #BE292B;}
|
51
|
+
h2 {margin: 0; font-size: 22px; color: #333333;}
|
52
|
+
</style>
|
53
|
+
</head>
|
54
|
+
<body>
|
55
|
+
<div id="wrap">
|
56
|
+
<img src="<%= env['SCRIPT_NAME'] %>/__spar__/404.jpg" alt="application error" height="223" width="191" />
|
57
|
+
<h1><strong>Spar couldn't find <strong><%=h path %></strong></h1>
|
58
|
+
<h2>Error 404</h2>
|
59
|
+
</div> <!-- /WRAP -->
|
60
|
+
</body>
|
61
|
+
</html>
|
62
|
+
HTML
|
63
|
+
end
|
64
|
+
end
|
data/lib/spar/rewrite.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'time'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module Spar
|
5
|
+
|
6
|
+
class Rewrite
|
7
|
+
|
8
|
+
def initialize(app)
|
9
|
+
@app = app
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(env)
|
13
|
+
|
14
|
+
if env['HTTP_ACCEPT'] =~ /text\/html/
|
15
|
+
if env['PATH_INFO'] == '/'
|
16
|
+
env['PATH_INFO'] = '/index.html'
|
17
|
+
else
|
18
|
+
unless env['PATH_INFO'] =~ /\.[a-zA-Z]+$/
|
19
|
+
env['PATH_INFO'] << '.html'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
@app.call(env)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/lib/spar/static.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'rack/showexceptions'
|
2
|
+
require 'rack/mime'
|
3
|
+
|
4
|
+
module Spar
|
5
|
+
|
6
|
+
class Static
|
7
|
+
|
8
|
+
def call(env)
|
9
|
+
path = env["PATH_INFO"]
|
10
|
+
|
11
|
+
# Try getting the file form the public directory - this overrides everything
|
12
|
+
public_path = "#{Spar.root.join('public')}/#{path}"
|
13
|
+
if File.exists?(public_path)
|
14
|
+
return send_static(public_path, env)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Try getting the file form the static directory
|
18
|
+
static_path = "#{Spar.root.join('static')}/#{path}"
|
19
|
+
if File.exists?(static_path)
|
20
|
+
return send_static(static_path, env)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Try getting the file form the local spar gems assets
|
24
|
+
spar_file = "#{File.dirname(__FILE__)}/assets/#{path.gsub('__spar__/','')}"
|
25
|
+
if File.exists?(spar_file)
|
26
|
+
return send_static(spar_file, env)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Return a 404 but let it pass on with the X-Cascade header
|
30
|
+
[ 404, { "Content-Type" => "text/plain", "Content-Length" => "9", "X-Cascade" => "pass" }, [ "Not found" ] ]
|
31
|
+
end
|
32
|
+
|
33
|
+
def send_static(path, env)
|
34
|
+
last_modified = File.mtime(path).httpdate
|
35
|
+
return [304, {}, []] if env['HTTP_IF_MODIFIED_SINCE'] == last_modified
|
36
|
+
[ 200,
|
37
|
+
{
|
38
|
+
"Last-Modified" => last_modified,
|
39
|
+
"Content-Type" => Rack::Mime.mime_type(File.extname(path), 'text/plain')
|
40
|
+
},
|
41
|
+
File.new(path)
|
42
|
+
]
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
data/lib/spar/tasks.rb
CHANGED
@@ -1,21 +1,16 @@
|
|
1
1
|
namespace :assets do
|
2
|
-
desc "Compile all the assets"
|
2
|
+
desc "Compile all the assets to the public directory"
|
3
3
|
task :precompile => :clean do
|
4
|
-
Spar
|
5
|
-
|
6
|
-
end
|
4
|
+
puts "Precompiling Assets for environment #{Spar.environment}"
|
5
|
+
Spar.settings['deploy_path'] = 'public'
|
7
6
|
|
8
|
-
|
9
|
-
|
7
|
+
require "spar/deployers/local_deployer"
|
8
|
+
|
9
|
+
LocalDeployer.new.run(Spar::Compiler.assets)
|
10
10
|
end
|
11
11
|
|
12
12
|
desc "Remove compiled assets"
|
13
|
-
task :clean
|
14
|
-
system "/bin/rm", "-rf",
|
13
|
+
task :clean do
|
14
|
+
system "/bin/rm", "-rf", 'public'
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
18
|
-
desc "Deploy a freshly precompiled site to S3 and purge CloudFront as is appropriate."
|
19
|
-
task :deploy => "assets:precompile" do
|
20
|
-
Spar::Deployer.new(App).deploy
|
21
|
-
end
|
data/lib/spar/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0
|
4
|
+
version: '1.0'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cucumber
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: aruba
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,37 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rack
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.4'
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.4.1
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ~>
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '1.4'
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 1.4.1
|
36
68
|
- !ruby/object:Gem::Dependency
|
37
69
|
name: sinatra
|
38
|
-
requirement:
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
39
71
|
none: false
|
40
72
|
requirements:
|
41
73
|
- - ~>
|
@@ -46,10 +78,18 @@ dependencies:
|
|
46
78
|
version: 1.3.2
|
47
79
|
type: :runtime
|
48
80
|
prerelease: false
|
49
|
-
version_requirements:
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ~>
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '1.3'
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.3.2
|
50
90
|
- !ruby/object:Gem::Dependency
|
51
91
|
name: sass
|
52
|
-
requirement:
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
53
93
|
none: false
|
54
94
|
requirements:
|
55
95
|
- - ~>
|
@@ -60,10 +100,18 @@ dependencies:
|
|
60
100
|
version: 3.1.10
|
61
101
|
type: :runtime
|
62
102
|
prerelease: false
|
63
|
-
version_requirements:
|
103
|
+
version_requirements: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ~>
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '3.1'
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 3.1.10
|
64
112
|
- !ruby/object:Gem::Dependency
|
65
113
|
name: haml
|
66
|
-
requirement:
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
67
115
|
none: false
|
68
116
|
requirements:
|
69
117
|
- - ~>
|
@@ -74,10 +122,18 @@ dependencies:
|
|
74
122
|
version: 3.1.4
|
75
123
|
type: :runtime
|
76
124
|
prerelease: false
|
77
|
-
version_requirements:
|
125
|
+
version_requirements: !ruby/object:Gem::Requirement
|
126
|
+
none: false
|
127
|
+
requirements:
|
128
|
+
- - ~>
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '3.1'
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 3.1.4
|
78
134
|
- !ruby/object:Gem::Dependency
|
79
135
|
name: coffee-script
|
80
|
-
requirement:
|
136
|
+
requirement: !ruby/object:Gem::Requirement
|
81
137
|
none: false
|
82
138
|
requirements:
|
83
139
|
- - ~>
|
@@ -88,10 +144,18 @@ dependencies:
|
|
88
144
|
version: 2.2.0
|
89
145
|
type: :runtime
|
90
146
|
prerelease: false
|
91
|
-
version_requirements:
|
147
|
+
version_requirements: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
149
|
+
requirements:
|
150
|
+
- - ~>
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '2.2'
|
153
|
+
- - ! '>='
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: 2.2.0
|
92
156
|
- !ruby/object:Gem::Dependency
|
93
157
|
name: uglifier
|
94
|
-
requirement:
|
158
|
+
requirement: !ruby/object:Gem::Requirement
|
95
159
|
none: false
|
96
160
|
requirements:
|
97
161
|
- - ~>
|
@@ -102,24 +166,56 @@ dependencies:
|
|
102
166
|
version: 1.0.3
|
103
167
|
type: :runtime
|
104
168
|
prerelease: false
|
105
|
-
version_requirements:
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ~>
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '1.0'
|
175
|
+
- - ! '>='
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: 1.0.3
|
106
178
|
- !ruby/object:Gem::Dependency
|
107
179
|
name: sprockets
|
108
|
-
requirement:
|
180
|
+
requirement: !ruby/object:Gem::Requirement
|
109
181
|
none: false
|
110
182
|
requirements:
|
111
183
|
- - ~>
|
112
184
|
- !ruby/object:Gem::Version
|
113
|
-
version: '2.
|
185
|
+
version: '2.6'
|
114
186
|
- - ! '>='
|
115
187
|
- !ruby/object:Gem::Version
|
116
|
-
version: 2.
|
188
|
+
version: 2.6.0
|
117
189
|
type: :runtime
|
118
190
|
prerelease: false
|
119
|
-
version_requirements:
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
none: false
|
193
|
+
requirements:
|
194
|
+
- - ~>
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '2.6'
|
197
|
+
- - ! '>='
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: 2.6.0
|
200
|
+
- !ruby/object:Gem::Dependency
|
201
|
+
name: compass
|
202
|
+
requirement: !ruby/object:Gem::Requirement
|
203
|
+
none: false
|
204
|
+
requirements:
|
205
|
+
- - ! '>='
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: 0.12.2
|
208
|
+
type: :runtime
|
209
|
+
prerelease: false
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
211
|
+
none: false
|
212
|
+
requirements:
|
213
|
+
- - ! '>='
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: 0.12.2
|
120
216
|
- !ruby/object:Gem::Dependency
|
121
217
|
name: sprockets-sass
|
122
|
-
requirement:
|
218
|
+
requirement: !ruby/object:Gem::Requirement
|
123
219
|
none: false
|
124
220
|
requirements:
|
125
221
|
- - ~>
|
@@ -130,10 +226,18 @@ dependencies:
|
|
130
226
|
version: '0.5'
|
131
227
|
type: :runtime
|
132
228
|
prerelease: false
|
133
|
-
version_requirements:
|
229
|
+
version_requirements: !ruby/object:Gem::Requirement
|
230
|
+
none: false
|
231
|
+
requirements:
|
232
|
+
- - ~>
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '0.5'
|
235
|
+
- - ! '>='
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: '0.5'
|
134
238
|
- !ruby/object:Gem::Dependency
|
135
239
|
name: bundler
|
136
|
-
requirement:
|
240
|
+
requirement: !ruby/object:Gem::Requirement
|
137
241
|
none: false
|
138
242
|
requirements:
|
139
243
|
- - ~>
|
@@ -144,24 +248,40 @@ dependencies:
|
|
144
248
|
version: 1.0.18
|
145
249
|
type: :runtime
|
146
250
|
prerelease: false
|
147
|
-
version_requirements:
|
251
|
+
version_requirements: !ruby/object:Gem::Requirement
|
252
|
+
none: false
|
253
|
+
requirements:
|
254
|
+
- - ~>
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: '1.0'
|
257
|
+
- - ! '>='
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
version: 1.0.18
|
148
260
|
- !ruby/object:Gem::Dependency
|
149
261
|
name: thor
|
150
|
-
requirement:
|
262
|
+
requirement: !ruby/object:Gem::Requirement
|
151
263
|
none: false
|
152
264
|
requirements:
|
153
265
|
- - ~>
|
154
266
|
- !ruby/object:Gem::Version
|
155
|
-
version: '0.
|
267
|
+
version: '0.15'
|
156
268
|
- - ! '>='
|
157
269
|
- !ruby/object:Gem::Version
|
158
|
-
version: 0.
|
270
|
+
version: 0.15.2
|
159
271
|
type: :runtime
|
160
272
|
prerelease: false
|
161
|
-
version_requirements:
|
273
|
+
version_requirements: !ruby/object:Gem::Requirement
|
274
|
+
none: false
|
275
|
+
requirements:
|
276
|
+
- - ~>
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0.15'
|
279
|
+
- - ! '>='
|
280
|
+
- !ruby/object:Gem::Version
|
281
|
+
version: 0.15.2
|
162
282
|
- !ruby/object:Gem::Dependency
|
163
283
|
name: rake
|
164
|
-
requirement:
|
284
|
+
requirement: !ruby/object:Gem::Requirement
|
165
285
|
none: false
|
166
286
|
requirements:
|
167
287
|
- - ~>
|
@@ -172,24 +292,40 @@ dependencies:
|
|
172
292
|
version: 0.9.2
|
173
293
|
type: :runtime
|
174
294
|
prerelease: false
|
175
|
-
version_requirements:
|
295
|
+
version_requirements: !ruby/object:Gem::Requirement
|
296
|
+
none: false
|
297
|
+
requirements:
|
298
|
+
- - ~>
|
299
|
+
- !ruby/object:Gem::Version
|
300
|
+
version: '0.9'
|
301
|
+
- - ! '>='
|
302
|
+
- !ruby/object:Gem::Version
|
303
|
+
version: 0.9.2
|
176
304
|
- !ruby/object:Gem::Dependency
|
177
|
-
name:
|
178
|
-
requirement:
|
305
|
+
name: listen
|
306
|
+
requirement: !ruby/object:Gem::Requirement
|
179
307
|
none: false
|
180
308
|
requirements:
|
181
309
|
- - ~>
|
182
310
|
- !ruby/object:Gem::Version
|
183
|
-
version: '0.
|
311
|
+
version: '0.4'
|
184
312
|
- - ! '>='
|
185
313
|
- !ruby/object:Gem::Version
|
186
|
-
version: 0.
|
314
|
+
version: 0.4.2
|
187
315
|
type: :runtime
|
188
316
|
prerelease: false
|
189
|
-
version_requirements:
|
317
|
+
version_requirements: !ruby/object:Gem::Requirement
|
318
|
+
none: false
|
319
|
+
requirements:
|
320
|
+
- - ~>
|
321
|
+
- !ruby/object:Gem::Version
|
322
|
+
version: '0.4'
|
323
|
+
- - ! '>='
|
324
|
+
- !ruby/object:Gem::Version
|
325
|
+
version: 0.4.2
|
190
326
|
- !ruby/object:Gem::Dependency
|
191
327
|
name: test-unit
|
192
|
-
requirement:
|
328
|
+
requirement: !ruby/object:Gem::Requirement
|
193
329
|
none: false
|
194
330
|
requirements:
|
195
331
|
- - ! '>='
|
@@ -197,10 +333,15 @@ dependencies:
|
|
197
333
|
version: '0'
|
198
334
|
type: :runtime
|
199
335
|
prerelease: false
|
200
|
-
version_requirements:
|
336
|
+
version_requirements: !ruby/object:Gem::Requirement
|
337
|
+
none: false
|
338
|
+
requirements:
|
339
|
+
- - ! '>='
|
340
|
+
- !ruby/object:Gem::Version
|
341
|
+
version: '0'
|
201
342
|
- !ruby/object:Gem::Dependency
|
202
343
|
name: mime-types
|
203
|
-
requirement:
|
344
|
+
requirement: !ruby/object:Gem::Requirement
|
204
345
|
none: false
|
205
346
|
requirements:
|
206
347
|
- - ! '>='
|
@@ -208,10 +349,15 @@ dependencies:
|
|
208
349
|
version: '0'
|
209
350
|
type: :runtime
|
210
351
|
prerelease: false
|
211
|
-
version_requirements:
|
352
|
+
version_requirements: !ruby/object:Gem::Requirement
|
353
|
+
none: false
|
354
|
+
requirements:
|
355
|
+
- - ! '>='
|
356
|
+
- !ruby/object:Gem::Version
|
357
|
+
version: '0'
|
212
358
|
- !ruby/object:Gem::Dependency
|
213
359
|
name: aws-sdk
|
214
|
-
requirement:
|
360
|
+
requirement: !ruby/object:Gem::Requirement
|
215
361
|
none: false
|
216
362
|
requirements:
|
217
363
|
- - ! '>='
|
@@ -219,23 +365,65 @@ dependencies:
|
|
219
365
|
version: '0'
|
220
366
|
type: :runtime
|
221
367
|
prerelease: false
|
222
|
-
version_requirements:
|
368
|
+
version_requirements: !ruby/object:Gem::Requirement
|
369
|
+
none: false
|
370
|
+
requirements:
|
371
|
+
- - ! '>='
|
372
|
+
- !ruby/object:Gem::Version
|
373
|
+
version: '0'
|
223
374
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
225
|
-
requirement:
|
375
|
+
name: rack-livereload
|
376
|
+
requirement: !ruby/object:Gem::Requirement
|
226
377
|
none: false
|
227
378
|
requirements:
|
228
|
-
- -
|
379
|
+
- - ! '>='
|
229
380
|
- !ruby/object:Gem::Version
|
230
|
-
version: '0
|
381
|
+
version: '0'
|
231
382
|
type: :runtime
|
232
383
|
prerelease: false
|
233
|
-
version_requirements:
|
234
|
-
|
235
|
-
|
236
|
-
|
384
|
+
version_requirements: !ruby/object:Gem::Requirement
|
385
|
+
none: false
|
386
|
+
requirements:
|
387
|
+
- - ! '>='
|
388
|
+
- !ruby/object:Gem::Version
|
389
|
+
version: '0'
|
390
|
+
- !ruby/object:Gem::Dependency
|
391
|
+
name: yui-compressor
|
392
|
+
requirement: !ruby/object:Gem::Requirement
|
393
|
+
none: false
|
394
|
+
requirements:
|
395
|
+
- - ! '>='
|
396
|
+
- !ruby/object:Gem::Version
|
397
|
+
version: '0'
|
398
|
+
type: :runtime
|
399
|
+
prerelease: false
|
400
|
+
version_requirements: !ruby/object:Gem::Requirement
|
401
|
+
none: false
|
402
|
+
requirements:
|
403
|
+
- - ! '>='
|
404
|
+
- !ruby/object:Gem::Version
|
405
|
+
version: '0'
|
406
|
+
- !ruby/object:Gem::Dependency
|
407
|
+
name: bluecloth
|
408
|
+
requirement: !ruby/object:Gem::Requirement
|
409
|
+
none: false
|
410
|
+
requirements:
|
411
|
+
- - ! '>='
|
412
|
+
- !ruby/object:Gem::Version
|
413
|
+
version: '0'
|
414
|
+
type: :runtime
|
415
|
+
prerelease: false
|
416
|
+
version_requirements: !ruby/object:Gem::Requirement
|
417
|
+
none: false
|
418
|
+
requirements:
|
419
|
+
- - ! '>='
|
420
|
+
- !ruby/object:Gem::Version
|
421
|
+
version: '0'
|
422
|
+
description: Spar uses Sprockets to provide an asset development environment very
|
423
|
+
similar to the asset pipeline found in Rails. It allows you to use all the awesome
|
424
|
+
features of the asset pipeline without all the heft of Rails.
|
237
425
|
email:
|
238
|
-
- matt@
|
426
|
+
- matt@boundless.com
|
239
427
|
executables:
|
240
428
|
- spar
|
241
429
|
extensions: []
|
@@ -243,23 +431,30 @@ extra_rdoc_files: []
|
|
243
431
|
files:
|
244
432
|
- README.md
|
245
433
|
- bin/spar
|
246
|
-
- lib/spar/assets.
|
247
|
-
- lib/spar/
|
434
|
+
- lib/spar/assets/404.jpg
|
435
|
+
- lib/spar/assets/500.jpg
|
248
436
|
- lib/spar/cli.rb
|
249
|
-
- lib/spar/
|
250
|
-
- lib/spar/
|
251
|
-
- lib/spar/
|
252
|
-
- lib/spar/
|
253
|
-
- lib/spar/
|
254
|
-
- lib/spar/
|
255
|
-
- lib/spar/
|
256
|
-
- lib/spar/
|
257
|
-
- lib/spar/
|
258
|
-
- lib/spar/generators/templates/
|
259
|
-
- lib/spar/generators/templates/README
|
260
|
-
- lib/spar/generators/templates/
|
437
|
+
- lib/spar/compiled_asset.rb
|
438
|
+
- lib/spar/compiler.rb
|
439
|
+
- lib/spar/compressor.rb
|
440
|
+
- lib/spar/deployers/cloudfront_deployer.rb
|
441
|
+
- lib/spar/deployers/deployer.rb
|
442
|
+
- lib/spar/deployers/local_deployer.rb
|
443
|
+
- lib/spar/deployers/s3_deployer.rb
|
444
|
+
- lib/spar/directive_processor.rb
|
445
|
+
- lib/spar/exceptions.rb
|
446
|
+
- lib/spar/generators/templates/base/config.yml
|
447
|
+
- lib/spar/generators/templates/base/README
|
448
|
+
- lib/spar/generators/templates/pages/haml/app/pages/index.html.haml
|
449
|
+
- lib/spar/generators/templates/pages/html/app/pages/index.html
|
450
|
+
- lib/spar/generators/templates/scripts/coffee/app/javascripts/application.js.coffee
|
451
|
+
- lib/spar/generators/templates/scripts/js/app/javascripts/application.js
|
452
|
+
- lib/spar/generators/templates/styles/css/app/stylesheets/application.css
|
453
|
+
- lib/spar/generators/templates/styles/sass/app/stylesheets/application.css.sass
|
261
454
|
- lib/spar/helpers.rb
|
262
|
-
- lib/spar/
|
455
|
+
- lib/spar/not_found.rb
|
456
|
+
- lib/spar/rewrite.rb
|
457
|
+
- lib/spar/static.rb
|
263
458
|
- lib/spar/tasks.rb
|
264
459
|
- lib/spar/version.rb
|
265
460
|
- lib/spar.rb
|
@@ -283,7 +478,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
283
478
|
version: '0'
|
284
479
|
requirements: []
|
285
480
|
rubyforge_project:
|
286
|
-
rubygems_version: 1.8.
|
481
|
+
rubygems_version: 1.8.23
|
287
482
|
signing_key:
|
288
483
|
specification_version: 3
|
289
484
|
summary: A simple framework for developing single page web apps with support for haml,
|