flatrack 0.9.0 → 1.0.0.alpha3
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.
- checksums.yaml +4 -4
- data/Gemfile +0 -4
- data/bin/flatrack +1 -1
- data/flatrack.gemspec +12 -13
- data/lib/flatrack/asset_extensions.rb +3 -1
- data/lib/flatrack/cli.rb +3 -23
- data/lib/flatrack/renderer.rb +1 -1
- data/lib/flatrack/request.rb +1 -1
- data/lib/flatrack/response/view_context.rb +5 -6
- data/lib/flatrack/response.rb +5 -5
- data/lib/flatrack/site.rb +4 -10
- data/lib/flatrack/version.rb +1 -1
- data/lib/flatrack.rb +4 -30
- data/lib/rake/asset_tasks.rb +25 -5
- data/renderers/rb.rb +2 -2
- data/spec/spec_helper.rb +1 -1
- data/templates/.gitignore +1 -3
- data/templates/config.ru +5 -1
- data/templates/layout.html.erb +3 -5
- metadata +5 -26
- data/.rubocop.yml +0 -6
- data/lib/rake/assets.rake +0 -22
- data/logo.png +0 -0
- data/templates/.keep +0 -0
- data/templates/Rakefile +0 -4
- data/templates/boot.rb +0 -4
- data/templates/javascript.js.coffee +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bc30227c382591f8363ba663ff1557e90fe8c7a
|
4
|
+
data.tar.gz: 835e3b73f93a85199af36a262a1cd78f8fbd20e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fac78726e9353b7cc1e100638932815cc0950ef7a0bf89304108e0aead622f33691acdad5d2bfda1736ab9c6bc84f47636f218dcd63677ed45447f015ce1c0c
|
7
|
+
data.tar.gz: 604fcaf7ed419d6aad6d42e524d162a95b8e1f34b32a06f73dcbbd6c63e43e9b49b08257663c22af36fba43d94b5b1a7857b02328dc6ebf277422d7280e2781d
|
data/Gemfile
CHANGED
data/bin/flatrack
CHANGED
data/flatrack.gemspec
CHANGED
@@ -6,29 +6,28 @@ require 'flatrack/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
|
8
8
|
# Information
|
9
|
-
spec.name
|
10
|
-
spec.version
|
11
|
-
spec.authors
|
12
|
-
spec.email
|
13
|
-
spec.summary
|
14
|
-
spec.homepage
|
15
|
-
spec.license
|
9
|
+
spec.name = "flatrack"
|
10
|
+
spec.version = Flatrack::VERSION
|
11
|
+
spec.authors = ["Jason Waldrip"]
|
12
|
+
spec.email = ["jason@waldrip.net"]
|
13
|
+
spec.summary = 'A template based flat rack site'
|
14
|
+
spec.homepage = "https://github.com/jwaldrip/flatrack"
|
15
|
+
spec.license = "MIT"
|
16
16
|
|
17
17
|
# Files
|
18
|
-
spec.files
|
19
|
-
spec.executables
|
20
|
-
spec.test_files
|
21
|
-
spec.require_paths
|
18
|
+
spec.files = `git ls-files`.split($/)
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
|
+
spec.require_paths = ["lib"]
|
22
22
|
|
23
23
|
# Ruby Version
|
24
|
-
spec.required_ruby_version = '>= 1.
|
24
|
+
spec.required_ruby_version = '>= 1.6.8'
|
25
25
|
|
26
26
|
# Dependencies
|
27
27
|
spec.add_dependency 'rack'
|
28
28
|
spec.add_dependency 'activesupport'
|
29
29
|
spec.add_dependency 'sass'
|
30
30
|
spec.add_dependency 'sprockets'
|
31
|
-
spec.add_dependency 'sprockets-sass'
|
32
31
|
spec.add_dependency 'thor'
|
33
32
|
spec.add_dependency 'coffee-script'
|
34
33
|
spec.add_dependency 'rake'
|
data/lib/flatrack/cli.rb
CHANGED
@@ -1,50 +1,30 @@
|
|
1
1
|
require 'thor'
|
2
|
-
require 'flatrack'
|
3
2
|
|
4
3
|
module Flatrack
|
5
4
|
class CLI < Thor
|
6
5
|
include FileUtils
|
7
6
|
include Thor::Actions
|
8
7
|
|
9
|
-
source_root File.join Flatrack.gem_root, '..', 'templates'
|
10
|
-
|
11
8
|
desc 'new NAME', 'create a new flatrack site with the given name'
|
12
9
|
|
10
|
+
source_root File.join Flatrack.root, '..', 'templates'
|
11
|
+
|
13
12
|
def new(name)
|
14
13
|
@name = name.titleize
|
15
14
|
mkdir_p name
|
16
15
|
path = File.expand_path name
|
17
16
|
self.destination_root = path
|
18
|
-
|
19
|
-
# Store keep files
|
20
|
-
template '.keep', 'assets/stylesheets/.keep'
|
21
|
-
template '.keep', 'assets/javascripts/.keep'
|
22
|
-
template '.keep', 'assets/images/.keep'
|
23
|
-
template '.keep', 'pages/.keep'
|
24
|
-
template '.keep', 'layouts/.keep'
|
25
|
-
|
26
|
-
# Write from templates
|
27
17
|
template '.gitignore', '.gitignore'
|
28
|
-
template 'boot.rb', 'boot.rb'
|
29
|
-
template 'Rakefile', 'Rakefile'
|
30
18
|
template 'Gemfile.erb', 'Gemfile'
|
31
19
|
template 'config.ru', 'config.ru'
|
32
20
|
template 'layout.html.erb', 'layouts/layout.html.erb'
|
33
21
|
template 'page.html.erb', 'pages/index.html.erb'
|
34
|
-
template 'stylesheet.css.scss', 'assets/
|
35
|
-
template 'javascript.js.coffee', 'assets/javascripts/main.js.coffee'
|
22
|
+
template 'stylesheet.css.scss', 'assets/stylesheet.css.scss'
|
36
23
|
|
37
24
|
Dir.chdir(path) do
|
38
25
|
system 'bundle install'
|
39
26
|
end
|
40
27
|
end
|
41
28
|
|
42
|
-
desc 'start PORT', 'run the site on the given port'
|
43
|
-
|
44
|
-
def start(port=5959)
|
45
|
-
require './boot'
|
46
|
-
Rack::Server.start app: Flatrack::Site, Port: port
|
47
|
-
end
|
48
|
-
|
49
29
|
end
|
50
30
|
end
|
data/lib/flatrack/renderer.rb
CHANGED
@@ -10,7 +10,7 @@ module Flatrack
|
|
10
10
|
raise FileNotFound, "could not find #{file}" unless template
|
11
11
|
ext = File.extname(template).sub(/\./, '')
|
12
12
|
|
13
|
-
renderer = Base.descendants.find { |descendant| descendant.renders?(ext)
|
13
|
+
renderer = Base.descendants.find { |descendant| descendant.renders?(ext) } ||
|
14
14
|
raise(RendererNotFound, "could not find a renderer for #{file}")
|
15
15
|
|
16
16
|
renderer.new template
|
data/lib/flatrack/request.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module Flatrack
|
2
2
|
class Response
|
3
3
|
class ViewContext
|
4
|
-
include AssetExtensions
|
5
4
|
|
6
5
|
def initialize(response)
|
7
6
|
@response = response
|
@@ -32,7 +31,7 @@ module Flatrack
|
|
32
31
|
|
33
32
|
def javascript_tag(uri)
|
34
33
|
uri = File.join('/assets', uri.to_s) + '.js' if uri.is_a? Symbol
|
35
|
-
html_tag(:script, src: uri)
|
34
|
+
html_tag(:script, src: uri){ nil }
|
36
35
|
end
|
37
36
|
|
38
37
|
def stylesheet_tag(uri)
|
@@ -41,19 +40,19 @@ module Flatrack
|
|
41
40
|
end
|
42
41
|
|
43
42
|
def page_stylesheet_tag
|
44
|
-
file
|
45
|
-
base_path = File.join File.dirname(file), File.basename(file,
|
43
|
+
file = @response.send(:file_for, path.to_s)
|
44
|
+
base_path = File.join File.dirname(file), File.basename(file, '.*')
|
46
45
|
stylesheet_tag base_path if stylesheet_exists?(base_path)
|
47
46
|
end
|
48
47
|
|
49
48
|
def link_to(name, link, options={})
|
50
49
|
link = [link, options.delete(:params).to_param].join('?') if options[:params].is_a?(Hash) && options[:params].present?
|
51
|
-
html_tag(:a, { href: link }.merge(options))
|
50
|
+
html_tag(:a, { href: link }.merge(options) ){ name }
|
52
51
|
end
|
53
52
|
|
54
53
|
def html_tag(tag, options={}, &block)
|
55
54
|
[].tap do |lines|
|
56
|
-
lines << "<#{tag} " + options.map
|
55
|
+
lines << "<#{tag} " + options.map{ |k, v| "#{k}=\"#{v}\"" }.join(' ') + (block_given? ? ">" : "/>")
|
57
56
|
if block_given?
|
58
57
|
lines << yield
|
59
58
|
lines << "</#{tag}>"
|
data/lib/flatrack/response.rb
CHANGED
@@ -3,7 +3,7 @@ module Flatrack
|
|
3
3
|
|
4
4
|
autoload :ViewContext, 'flatrack/response/view_context'
|
5
5
|
|
6
|
-
DEFAULT_FILE
|
6
|
+
DEFAULT_FILE = 'index'
|
7
7
|
CONTENT_TYPES = {
|
8
8
|
html: 'text/html',
|
9
9
|
rb: 'text/html'
|
@@ -42,10 +42,10 @@ module Flatrack
|
|
42
42
|
|
43
43
|
def render_file(file = nil, options={})
|
44
44
|
status, layout = options.values_at(:status, :layout)
|
45
|
-
layout
|
46
|
-
file
|
47
|
-
contents
|
48
|
-
contents
|
45
|
+
layout ||= :layout
|
46
|
+
file ||= file_for(request.path)
|
47
|
+
contents = renderer_for(file).render(view_context)
|
48
|
+
contents = layout_for(layout).render(view_context){ contents } if layout
|
49
49
|
self.body << contents
|
50
50
|
[status, headers, body]
|
51
51
|
end
|
data/lib/flatrack/site.rb
CHANGED
@@ -1,21 +1,15 @@
|
|
1
|
-
require 'rack/server'
|
2
|
-
|
3
1
|
module Flatrack
|
4
|
-
Site = Rack::Builder.app do
|
5
2
|
|
6
|
-
|
7
|
-
use Rack::Static, urls: ["/favicon.ico", "assets"], root: "public"
|
8
|
-
|
9
|
-
Flatrack.middleware.each do |middleware|
|
10
|
-
use *middleware
|
11
|
-
end
|
3
|
+
register_format :html, 'text/html'
|
12
4
|
|
5
|
+
Site = Rack::Builder.app do
|
13
6
|
map '/assets' do
|
14
7
|
run Flatrack.assets
|
15
8
|
end
|
16
9
|
|
17
10
|
map '/' do
|
18
|
-
|
11
|
+
use Rack::Static, urls: ["/favicon.ico", "assets"], root: "public"
|
12
|
+
run ->(env){ Request.new(env).response }
|
19
13
|
end
|
20
14
|
end
|
21
15
|
end
|
data/lib/flatrack/version.rb
CHANGED
data/lib/flatrack.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
require 'flatrack/version'
|
2
|
-
require 'active_support/all'
|
3
2
|
require 'sprockets'
|
4
|
-
require '
|
5
|
-
require 'sass'
|
6
|
-
require 'rack'
|
3
|
+
require 'active_support/all'
|
7
4
|
|
8
5
|
module Flatrack
|
9
6
|
extend ActiveSupport::Autoload
|
@@ -20,20 +17,14 @@ module Flatrack
|
|
20
17
|
|
21
18
|
FORMATS = {}
|
22
19
|
|
23
|
-
def self.
|
20
|
+
def self.root
|
24
21
|
File.expand_path File.join __FILE__, '..'
|
25
22
|
end
|
26
23
|
|
27
|
-
def self.
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.config(&block)
|
32
|
-
yield self
|
24
|
+
def self.register_format(ext, mime)
|
25
|
+
FORMATS[ext.to_s] = mime
|
33
26
|
end
|
34
27
|
|
35
|
-
protected
|
36
|
-
|
37
28
|
def self.assets
|
38
29
|
@assets ||= begin
|
39
30
|
Sprockets::Environment.new.tap do |environment|
|
@@ -45,25 +36,8 @@ module Flatrack
|
|
45
36
|
end
|
46
37
|
end
|
47
38
|
|
48
|
-
def self.register_format(ext, mime)
|
49
|
-
FORMATS[ext.to_s] = mime
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.middleware
|
53
|
-
@middleware ||= []
|
54
|
-
end
|
55
|
-
|
56
|
-
def self.use(*args)
|
57
|
-
self.middleware << args
|
58
|
-
end
|
59
|
-
|
60
|
-
# By default we know how to render 'text/html'
|
61
|
-
register_format :html, 'text/html'
|
62
|
-
|
63
|
-
# Fix Locales issue
|
64
39
|
I18n.enforce_available_locales = false
|
65
40
|
|
66
|
-
# Load all renderers
|
67
41
|
Dir.glob(File.expand_path File.join __FILE__, '../../renderers/**/*.rb').each { |f| require f }
|
68
42
|
|
69
43
|
end
|
data/lib/rake/asset_tasks.rb
CHANGED
@@ -56,16 +56,36 @@ module Rake
|
|
56
56
|
def assets
|
57
57
|
Dir['assets/**/*.*'].map do |file|
|
58
58
|
file_basename = File.basename file
|
59
|
-
|
60
|
-
|
61
|
-
File.expand_path(file).sub(/(#{environment.paths.join('|')})\//, '')
|
59
|
+
file = file.split('.').tap(&:pop).join('.') if file_basename.split('.').size > 2
|
60
|
+
File.expand_path(file).sub(/(#{environment.paths.join('|')})\//,'')
|
62
61
|
end
|
63
62
|
end
|
64
63
|
|
65
64
|
# Define tasks
|
66
65
|
def define
|
67
|
-
|
68
|
-
|
66
|
+
namespace :assets do
|
67
|
+
desc 'precompile assets'
|
68
|
+
task :precompile do
|
69
|
+
with_logger do
|
70
|
+
manifest.compile(assets)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "Remove all assets"
|
75
|
+
task :clobber do
|
76
|
+
with_logger do
|
77
|
+
manifest.clobber
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
desc "Clean old assets"
|
82
|
+
task :clean do
|
83
|
+
with_logger do
|
84
|
+
manifest.clean(keep)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
69
89
|
end
|
70
90
|
|
71
91
|
private
|
data/renderers/rb.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/templates/.gitignore
CHANGED
data/templates/config.ru
CHANGED
data/templates/layout.html.erb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flatrack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.alpha3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Waldrip
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: sprockets-sass
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: thor
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,7 +146,6 @@ extra_rdoc_files: []
|
|
160
146
|
files:
|
161
147
|
- ".gitignore"
|
162
148
|
- ".rspec"
|
163
|
-
- ".rubocop.yml"
|
164
149
|
- Gemfile
|
165
150
|
- LICENSE.txt
|
166
151
|
- README.md
|
@@ -178,8 +163,6 @@ files:
|
|
178
163
|
- lib/flatrack/site.rb
|
179
164
|
- lib/flatrack/version.rb
|
180
165
|
- lib/rake/asset_tasks.rb
|
181
|
-
- lib/rake/assets.rake
|
182
|
-
- logo.png
|
183
166
|
- renderers/erb.rb
|
184
167
|
- renderers/html.rb
|
185
168
|
- renderers/rb.rb
|
@@ -187,12 +170,8 @@ files:
|
|
187
170
|
- spec/rake/asset_tasks_spec.rb
|
188
171
|
- spec/spec_helper.rb
|
189
172
|
- templates/.gitignore
|
190
|
-
- templates/.keep
|
191
173
|
- templates/Gemfile.erb
|
192
|
-
- templates/Rakefile
|
193
|
-
- templates/boot.rb
|
194
174
|
- templates/config.ru
|
195
|
-
- templates/javascript.js.coffee
|
196
175
|
- templates/layout.html.erb
|
197
176
|
- templates/page.html.erb
|
198
177
|
- templates/stylesheet.css.scss
|
@@ -208,12 +187,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
208
187
|
requirements:
|
209
188
|
- - ">="
|
210
189
|
- !ruby/object:Gem::Version
|
211
|
-
version: 1.
|
190
|
+
version: 1.6.8
|
212
191
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
213
192
|
requirements:
|
214
|
-
- - "
|
193
|
+
- - ">"
|
215
194
|
- !ruby/object:Gem::Version
|
216
|
-
version:
|
195
|
+
version: 1.3.1
|
217
196
|
requirements: []
|
218
197
|
rubyforge_project:
|
219
198
|
rubygems_version: 2.2.2
|
data/.rubocop.yml
DELETED
data/lib/rake/assets.rake
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
namespace :assets do
|
2
|
-
desc 'precompile assets'
|
3
|
-
task :precompile do
|
4
|
-
with_logger do
|
5
|
-
manifest.compile(assets)
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
desc "Remove all assets"
|
10
|
-
task :clobber do
|
11
|
-
with_logger do
|
12
|
-
manifest.clobber
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
desc "Clean old assets"
|
17
|
-
task :clean do
|
18
|
-
with_logger do
|
19
|
-
manifest.clean(keep)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/logo.png
DELETED
Binary file
|
data/templates/.keep
DELETED
File without changes
|
data/templates/Rakefile
DELETED
data/templates/boot.rb
DELETED
File without changes
|