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 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