flatrack 0.9.0 → 1.0.0.alpha3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f26f0173c80797ab99000a3ace4dd3420d755a06
4
- data.tar.gz: 284e097be8f77ad7dcdda15e532d01a3f127085d
3
+ metadata.gz: 9bc30227c382591f8363ba663ff1557e90fe8c7a
4
+ data.tar.gz: 835e3b73f93a85199af36a262a1cd78f8fbd20e4
5
5
  SHA512:
6
- metadata.gz: aaecd5dfd29f80cc54b8a6d5d4f3444b91a4d43cc62e46a01d640d0cb5e00e03669486ef60f640ebd9e6f5a2f3ee70f5adfdd4cf34ebe93b7a2fd9126ddbfe5b
7
- data.tar.gz: a4c0c83aa72a5bd0f91fa9d26e309f24b97a228358c71ae5c4fb5b9416cedf6492f969d96bf467ea8408c663ac95a02caed4d2a6fc6a81b74966630772b655ee
6
+ metadata.gz: 4fac78726e9353b7cc1e100638932815cc0950ef7a0bf89304108e0aead622f33691acdad5d2bfda1736ab9c6bc84f47636f218dcd63677ed45447f015ce1c0c
7
+ data.tar.gz: 604fcaf7ed419d6aad6d42e524d162a95b8e1f34b32a06f73dcbbd6c63e43e9b49b08257663c22af36fba43d94b5b1a7857b02328dc6ebf277422d7280e2781d
data/Gemfile CHANGED
@@ -1,8 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in flatrack-rack.gemspec
4
- <<<<<<< Updated upstream
5
4
  gemspec
6
- =======
7
- gemspec unless ENV['RM_INFO']
8
- >>>>>>> Stashed changes
data/bin/flatrack CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'flatrack'
4
- Flatrack::CLI.start
4
+ Flatrack::CLI.start
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 = "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"
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 = `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"]
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.9.3'
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'
@@ -1,7 +1,9 @@
1
1
  module Flatrack
2
2
  module AssetExtensions
3
+
3
4
  def asset_path(path, options={})
4
- File.join('/assets', path.to_s)
5
+ File.join('assets', path.to_s)
5
6
  end
7
+
6
8
  end
7
9
  end
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/stylesheets/main.css.scss'
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
@@ -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
@@ -7,7 +7,7 @@ module Flatrack
7
7
 
8
8
  def initialize(env)
9
9
  @rack_request = Rack::Request.new(env)
10
- @env = env
10
+ @env = env
11
11
  end
12
12
 
13
13
  def path
@@ -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) { nil }
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 = @response.send(:file_for, path.to_s)
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)) { name }
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 { |k, v| "#{k}=\"#{v}\"" }.join(' ') + (block_given? ? ">" : "/>")
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}>"
@@ -3,7 +3,7 @@ module Flatrack
3
3
 
4
4
  autoload :ViewContext, 'flatrack/response/view_context'
5
5
 
6
- DEFAULT_FILE = 'index'
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 ||= :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
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
- # Static Assets Should be served directly
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
- run ->(env) { Request.new(env).response }
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
@@ -1,3 +1,3 @@
1
1
  module Flatrack
2
- VERSION = "0.9.0"
2
+ VERSION = "1.0.0.alpha3"
3
3
  end
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 'sprockets-sass'
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.gem_root
20
+ def self.root
24
21
  File.expand_path File.join __FILE__, '..'
25
22
  end
26
23
 
27
- def self.site_root
28
- File.expand_path Dir.pwd
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
@@ -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
- parts = file_basename.split('.').size
60
- file = file.split('.').tap(&:pop).join('.') if parts > 2
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
- file = File.expand_path File.join __FILE__, '../assets.rake'
68
- eval File.read file
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
@@ -5,9 +5,9 @@ class Flatrack::Renderer::Rb < Flatrack::Renderer::Base
5
5
  renders :rb
6
6
 
7
7
  def render(context)
8
- result = nil
8
+ result = nil
9
9
  evaluator = Thread.start do
10
- $SAFE = 3
10
+ $SAFE = 3
11
11
  result = eval contents, context
12
12
  end
13
13
  nil while evaluator.alive?
data/spec/spec_helper.rb CHANGED
@@ -4,6 +4,6 @@ require 'flatrack'
4
4
 
5
5
  RSpec.configure do |config|
6
6
  config.treat_symbols_as_metadata_keys_with_true_values = true
7
- config.run_all_when_everything_filtered = true
7
+ config.run_all_when_everything_filtered = true
8
8
  config.filter_run :focus
9
9
  end
data/templates/.gitignore CHANGED
@@ -1,3 +1 @@
1
- public/assets
2
- .sass-cache
3
- tmp
1
+ public/assets
data/templates/config.ru CHANGED
@@ -1,2 +1,6 @@
1
- require './boot'
1
+ STDOUT.sync = true
2
+
3
+ require 'bundler/setup'
4
+ Bundler.require(:default)
5
+
2
6
  run Flatrack::Site
@@ -1,10 +1,8 @@
1
1
  <!DOCTYPE html>
2
2
  <head>
3
- <title>
4
- <% @name %></title>
5
- <%%= stylesheet_tag :main %>
6
- <%%= javascript_tag :main %>
3
+ <title><% @name %></title>
4
+ <%%= stylesheet_tag :application %>
7
5
  </head>
8
6
  <body>
9
- <%%= yield %>
7
+ <%%= yield %>
10
8
  </body>
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.9.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-28 00:00:00.000000000 Z
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.9.3
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: '0'
195
+ version: 1.3.1
217
196
  requirements: []
218
197
  rubyforge_project:
219
198
  rubygems_version: 2.2.2
data/.rubocop.yml DELETED
@@ -1,6 +0,0 @@
1
- AllCops:
2
- Excludes:
3
- - vendor/bundle/**
4
-
5
- Documentation:
6
- Enabled: false
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
@@ -1,4 +0,0 @@
1
- require './boot'
2
- require 'rake/asset_tasks'
3
-
4
- Rake::AssetTasks.new
data/templates/boot.rb DELETED
@@ -1,4 +0,0 @@
1
- STDOUT.sync = true
2
-
3
- require 'bundler/setup'
4
- Bundler.require(:default)
File without changes