frank 1.0.2 → 1.0.3

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 CHANGED
@@ -54,7 +54,7 @@ Frank Templates
54
54
 
55
55
  Frank (as of 1.0) has support for saving "templates" in `~/.frank_templates`. This is very handy if find yourself wanting a custom starting point. All you have to do to use the feature is create a `~/.frank_templates` folder and start putting templates in it.
56
56
 
57
- Once you have a few templates saved you can simply run `frank new` to be presented with a list of templates to choose from as the starting point for the project.
57
+ Once you have a few templates saved, when you run `frank new <project_path>` you'll be presented with a list of templates to choose from as the starting point for the project.
58
58
 
59
59
  Views & Meta Data
60
60
  -------------------------
@@ -233,4 +233,4 @@ Installation
233
233
  [11]: http://en.wikipedia.org/wiki/Lorem_ipsum
234
234
  [12]: http://www.imagemagick.org/script/binary-releases.php?ImageMagick=4pg9cdfr8e6gn7aru9mtelepr3
235
235
  [13]: http://www.yaml.org/start.html
236
- [14]: http://placehold.it
236
+ [14]: http://placehold.it
data/frank.gemspec CHANGED
@@ -1,119 +1,117 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{frank}
8
- s.version = "1.0.2"
8
+ s.version = "1.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["blahed", "nwah"]
12
- s.date = %q{2010-11-12}
12
+ s.date = %q{2010-11-16}
13
13
  s.default_executable = %q{frank}
14
14
  s.description = %q{Rapidly develop static sites using any supported templating language}
15
15
  s.email = %q{travis.dunn@thisismedium.com}
16
16
  s.executables = ["frank"]
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE",
19
- "README.md"
19
+ "README.md"
20
20
  ]
21
21
  s.files = [
22
- ".gitignore",
23
- "Gemfile",
24
- "Gemfile.lock",
25
- "LICENSE",
26
- "README.md",
27
- "Rakefile",
28
- "autotest/discover.rb",
29
- "bin/frank",
30
- "frank.gemspec",
31
- "lib/frank.rb",
32
- "lib/frank/base.rb",
33
- "lib/frank/cli.rb",
34
- "lib/frank/compile.rb",
35
- "lib/frank/lorem.rb",
36
- "lib/frank/middleware/imager.rb",
37
- "lib/frank/middleware/refresh.rb",
38
- "lib/frank/middleware/statik.rb",
39
- "lib/frank/publish.rb",
40
- "lib/frank/rescue.rb",
41
- "lib/frank/settings.rb",
42
- "lib/frank/template_helpers.rb",
43
- "lib/frank/templates/404.haml",
44
- "lib/frank/templates/500.haml",
45
- "lib/frank/templates/frank-404.png",
46
- "lib/frank/templates/frank-500.png",
47
- "lib/frank/templates/imager/frank0.jpg",
48
- "lib/frank/templates/imager/frank1.jpg",
49
- "lib/frank/templates/imager/frank2.jpg",
50
- "lib/frank/templates/imager/frank3.jpg",
51
- "lib/frank/templates/imager/frank4.jpg",
52
- "lib/frank/templates/imager/frank5.jpg",
53
- "lib/frank/templates/imager/frank6.jpg",
54
- "lib/frank/templates/imager/frank7.jpg",
55
- "lib/frank/templates/imager/frank8.jpg",
56
- "lib/frank/templates/imager/frank9.jpg",
57
- "lib/frank/tilt_setup.rb",
58
- "lib/frank/upgrades.rb",
59
- "lib/template/dynamic/css/frank.sass",
60
- "lib/template/dynamic/index.haml",
61
- "lib/template/helpers.rb",
62
- "lib/template/layouts/default.haml",
63
- "lib/template/setup.rb",
64
- "lib/template/static/favicon.ico",
65
- "lib/template/static/images/frank-med.png",
66
- "lib/template/static/js/frank.js",
67
- "spec/base_spec.rb",
68
- "spec/compile_spec.rb",
69
- "spec/helper.rb",
70
- "spec/publish_spec.rb",
71
- "spec/render_spec.rb",
72
- "spec/template/dynamic/500.haml",
73
- "spec/template/dynamic/_partial.haml",
74
- "spec/template/dynamic/_partial_with_locals.haml",
75
- "spec/template/dynamic/builder.builder",
76
- "spec/template/dynamic/erb.erb",
77
- "spec/template/dynamic/helper_test.haml",
78
- "spec/template/dynamic/index.haml",
79
- "spec/template/dynamic/layout2_test.haml",
80
- "spec/template/dynamic/liquid.liquid",
81
- "spec/template/dynamic/lorem_test.haml",
82
- "spec/template/dynamic/markdown.md",
83
- "spec/template/dynamic/markdown_in_haml.md",
84
- "spec/template/dynamic/nested/child.haml",
85
- "spec/template/dynamic/nested/deeper/deep.haml",
86
- "spec/template/dynamic/no_layout.haml",
87
- "spec/template/dynamic/partial_locals_test.haml",
88
- "spec/template/dynamic/partial_test.haml",
89
- "spec/template/dynamic/redcloth.textile",
90
- "spec/template/dynamic/refresh.haml",
91
- "spec/template/dynamic/setting_in_layout.haml",
92
- "spec/template/dynamic/stylesheets/sass.sass",
93
- "spec/template/dynamic/stylesheets/sass_with_compass.sass",
94
- "spec/template/dynamic/stylesheets/scss_with_compass.scss",
95
- "spec/template/helpers.rb",
96
- "spec/template/layouts/default.haml",
97
- "spec/template/layouts/explicit/layout2.haml",
98
- "spec/template/layouts/nested/default.haml",
99
- "spec/template/setup.rb",
100
- "spec/template/static/files/static.html",
101
- "spec/template_helpers_spec.rb"
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE",
25
+ "README.md",
26
+ "Rakefile",
27
+ "autotest/discover.rb",
28
+ "bin/frank",
29
+ "frank.gemspec",
30
+ "lib/frank.rb",
31
+ "lib/frank/base.rb",
32
+ "lib/frank/cli.rb",
33
+ "lib/frank/compile.rb",
34
+ "lib/frank/lorem.rb",
35
+ "lib/frank/middleware/imager.rb",
36
+ "lib/frank/middleware/refresh.rb",
37
+ "lib/frank/middleware/statik.rb",
38
+ "lib/frank/publish.rb",
39
+ "lib/frank/rescue.rb",
40
+ "lib/frank/settings.rb",
41
+ "lib/frank/template_helpers.rb",
42
+ "lib/frank/templates/404.haml",
43
+ "lib/frank/templates/500.haml",
44
+ "lib/frank/templates/frank-404.png",
45
+ "lib/frank/templates/frank-500.png",
46
+ "lib/frank/templates/imager/frank0.jpg",
47
+ "lib/frank/templates/imager/frank1.jpg",
48
+ "lib/frank/templates/imager/frank2.jpg",
49
+ "lib/frank/templates/imager/frank3.jpg",
50
+ "lib/frank/templates/imager/frank4.jpg",
51
+ "lib/frank/templates/imager/frank5.jpg",
52
+ "lib/frank/templates/imager/frank6.jpg",
53
+ "lib/frank/templates/imager/frank7.jpg",
54
+ "lib/frank/templates/imager/frank8.jpg",
55
+ "lib/frank/templates/imager/frank9.jpg",
56
+ "lib/frank/tilt_setup.rb",
57
+ "lib/frank/upgrades.rb",
58
+ "lib/template/dynamic/css/frank.sass",
59
+ "lib/template/dynamic/index.haml",
60
+ "lib/template/helpers.rb",
61
+ "lib/template/layouts/default.haml",
62
+ "lib/template/setup.rb",
63
+ "lib/template/static/favicon.ico",
64
+ "lib/template/static/images/frank-med.png",
65
+ "lib/template/static/js/frank.js",
66
+ "spec/base_spec.rb",
67
+ "spec/compile_spec.rb",
68
+ "spec/helper.rb",
69
+ "spec/publish_spec.rb",
70
+ "spec/render_spec.rb",
71
+ "spec/template/dynamic/500.haml",
72
+ "spec/template/dynamic/_partial.haml",
73
+ "spec/template/dynamic/_partial_with_locals.haml",
74
+ "spec/template/dynamic/builder.builder",
75
+ "spec/template/dynamic/erb.erb",
76
+ "spec/template/dynamic/helper_test.haml",
77
+ "spec/template/dynamic/index.haml",
78
+ "spec/template/dynamic/layout2_test.haml",
79
+ "spec/template/dynamic/liquid.liquid",
80
+ "spec/template/dynamic/lorem_test.haml",
81
+ "spec/template/dynamic/markdown.md",
82
+ "spec/template/dynamic/markdown_in_haml.md",
83
+ "spec/template/dynamic/nested/child.haml",
84
+ "spec/template/dynamic/nested/deeper/deep.haml",
85
+ "spec/template/dynamic/no_layout.haml",
86
+ "spec/template/dynamic/partial_locals_test.haml",
87
+ "spec/template/dynamic/partial_test.haml",
88
+ "spec/template/dynamic/redcloth.textile",
89
+ "spec/template/dynamic/refresh.haml",
90
+ "spec/template/dynamic/setting_in_layout.haml",
91
+ "spec/template/dynamic/stylesheets/sass.sass",
92
+ "spec/template/dynamic/stylesheets/sass_with_compass.sass",
93
+ "spec/template/dynamic/stylesheets/scss_with_compass.scss",
94
+ "spec/template/helpers.rb",
95
+ "spec/template/layouts/default.haml",
96
+ "spec/template/layouts/explicit/layout2.haml",
97
+ "spec/template/layouts/nested/default.haml",
98
+ "spec/template/setup.rb",
99
+ "spec/template/static/files/static.html",
100
+ "spec/template_helpers_spec.rb"
102
101
  ]
103
102
  s.homepage = %q{http://github.com/blahed/frank}
104
- s.rdoc_options = ["--charset=UTF-8"]
105
103
  s.require_paths = ["lib"]
106
104
  s.rubygems_version = %q{1.3.7}
107
105
  s.summary = %q{Static Site Non-Framework}
108
106
  s.test_files = [
109
107
  "spec/base_spec.rb",
110
- "spec/compile_spec.rb",
111
- "spec/helper.rb",
112
- "spec/publish_spec.rb",
113
- "spec/render_spec.rb",
114
- "spec/template/helpers.rb",
115
- "spec/template/setup.rb",
116
- "spec/template_helpers_spec.rb"
108
+ "spec/compile_spec.rb",
109
+ "spec/helper.rb",
110
+ "spec/publish_spec.rb",
111
+ "spec/render_spec.rb",
112
+ "spec/template/helpers.rb",
113
+ "spec/template/setup.rb",
114
+ "spec/template_helpers_spec.rb"
117
115
  ]
118
116
 
119
117
  if s.respond_to? :specification_version then
@@ -121,12 +119,52 @@ Gem::Specification.new do |s|
121
119
  s.specification_version = 3
122
120
 
123
121
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
122
+ s.add_runtime_dependency(%q<rack>, [">= 1.0"])
123
+ s.add_runtime_dependency(%q<mongrel>, [">= 1.0"])
124
+ s.add_runtime_dependency(%q<haml>, [">= 3.0"])
125
+ s.add_runtime_dependency(%q<tilt>, ["= 0.9"])
126
+ s.add_runtime_dependency(%q<net-ssh>, [">= 2.0"])
127
+ s.add_runtime_dependency(%q<net-scp>, [">= 1.0"])
128
+ s.add_runtime_dependency(%q<jeweler>, [">= 0"])
129
+ s.add_runtime_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
130
+ s.add_runtime_dependency(%q<rack-test>, [">= 0.5"])
131
+ s.add_runtime_dependency(%q<rake>, [">= 0"])
132
+ s.add_runtime_dependency(%q<contest>, [">= 0"])
133
+ s.add_runtime_dependency(%q<builder>, [">= 0"])
134
+ s.add_runtime_dependency(%q<erubis>, [">= 0"])
135
+ s.add_runtime_dependency(%q<compass>, [">= 0.10.2"])
136
+ s.add_runtime_dependency(%q<rdiscount>, [">= 0"])
137
+ s.add_runtime_dependency(%q<liquid>, [">= 0"])
138
+ s.add_runtime_dependency(%q<less>, [">= 0"])
139
+ s.add_runtime_dependency(%q<coffee-script>, [">= 0"])
140
+ s.add_runtime_dependency(%q<RedCloth>, [">= 0"])
141
+ s.add_runtime_dependency(%q<ruby-debug>, [">= 0"])
124
142
  s.add_runtime_dependency(%q<rack>, [">= 1.0"])
125
143
  s.add_runtime_dependency(%q<haml>, [">= 3.0"])
126
144
  s.add_runtime_dependency(%q<tilt>, ["= 0.9"])
127
145
  s.add_development_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
128
146
  s.add_development_dependency(%q<rack-test>, [">= 0.5"])
129
147
  else
148
+ s.add_dependency(%q<rack>, [">= 1.0"])
149
+ s.add_dependency(%q<mongrel>, [">= 1.0"])
150
+ s.add_dependency(%q<haml>, [">= 3.0"])
151
+ s.add_dependency(%q<tilt>, ["= 0.9"])
152
+ s.add_dependency(%q<net-ssh>, [">= 2.0"])
153
+ s.add_dependency(%q<net-scp>, [">= 1.0"])
154
+ s.add_dependency(%q<jeweler>, [">= 0"])
155
+ s.add_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
156
+ s.add_dependency(%q<rack-test>, [">= 0.5"])
157
+ s.add_dependency(%q<rake>, [">= 0"])
158
+ s.add_dependency(%q<contest>, [">= 0"])
159
+ s.add_dependency(%q<builder>, [">= 0"])
160
+ s.add_dependency(%q<erubis>, [">= 0"])
161
+ s.add_dependency(%q<compass>, [">= 0.10.2"])
162
+ s.add_dependency(%q<rdiscount>, [">= 0"])
163
+ s.add_dependency(%q<liquid>, [">= 0"])
164
+ s.add_dependency(%q<less>, [">= 0"])
165
+ s.add_dependency(%q<coffee-script>, [">= 0"])
166
+ s.add_dependency(%q<RedCloth>, [">= 0"])
167
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
130
168
  s.add_dependency(%q<rack>, [">= 1.0"])
131
169
  s.add_dependency(%q<haml>, [">= 3.0"])
132
170
  s.add_dependency(%q<tilt>, ["= 0.9"])
@@ -134,6 +172,26 @@ Gem::Specification.new do |s|
134
172
  s.add_dependency(%q<rack-test>, [">= 0.5"])
135
173
  end
136
174
  else
175
+ s.add_dependency(%q<rack>, [">= 1.0"])
176
+ s.add_dependency(%q<mongrel>, [">= 1.0"])
177
+ s.add_dependency(%q<haml>, [">= 3.0"])
178
+ s.add_dependency(%q<tilt>, ["= 0.9"])
179
+ s.add_dependency(%q<net-ssh>, [">= 2.0"])
180
+ s.add_dependency(%q<net-scp>, [">= 1.0"])
181
+ s.add_dependency(%q<jeweler>, [">= 0"])
182
+ s.add_dependency(%q<rspec>, [">= 2.0.0.beta.19"])
183
+ s.add_dependency(%q<rack-test>, [">= 0.5"])
184
+ s.add_dependency(%q<rake>, [">= 0"])
185
+ s.add_dependency(%q<contest>, [">= 0"])
186
+ s.add_dependency(%q<builder>, [">= 0"])
187
+ s.add_dependency(%q<erubis>, [">= 0"])
188
+ s.add_dependency(%q<compass>, [">= 0.10.2"])
189
+ s.add_dependency(%q<rdiscount>, [">= 0"])
190
+ s.add_dependency(%q<liquid>, [">= 0"])
191
+ s.add_dependency(%q<less>, [">= 0"])
192
+ s.add_dependency(%q<coffee-script>, [">= 0"])
193
+ s.add_dependency(%q<RedCloth>, [">= 0"])
194
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
137
195
  s.add_dependency(%q<rack>, [">= 1.0"])
138
196
  s.add_dependency(%q<haml>, [">= 3.0"])
139
197
  s.add_dependency(%q<tilt>, ["= 0.9"])
data/lib/frank.rb CHANGED
@@ -12,7 +12,6 @@ require 'rubygems'
12
12
  require 'yaml'
13
13
  require 'fileutils'
14
14
  require 'rack'
15
- require 'net/ssh'
16
15
  require 'frank/settings'
17
16
  require 'frank/base'
18
17
  require 'frank/compile'
data/lib/frank/base.rb CHANGED
@@ -6,7 +6,7 @@ require 'frank/middleware/statik'
6
6
  require 'frank/middleware/refresh'
7
7
 
8
8
  module Frank
9
- VERSION = '1.0.2'
9
+ VERSION = '1.0.3'
10
10
  extend Frank::Upgrades
11
11
 
12
12
  module Render; end
@@ -231,6 +231,16 @@ module Frank
231
231
  Frank.reset
232
232
  Frank.root = new_root if new_root
233
233
 
234
+ if %w[publish p].include? ARGV.first
235
+ begin
236
+ require 'net/ssh'
237
+ require 'net/scp'
238
+ rescue LoadError
239
+ puts "\033[31mpublish requires the 'net-scp' gem. `gem install net-scp'\033[0m"
240
+ exit!
241
+ end
242
+ end
243
+
234
244
  # setup compass
235
245
  begin
236
246
  require 'compass'
@@ -256,19 +266,7 @@ module Frank
256
266
  load setup
257
267
  elsif File.exist? File.join(Dir.pwd, 'settings.yml')
258
268
  puts "\033[31mFrank could not find setup.rb, perhaps you need to upgrade with the `frank upgrade\' command \033[0m"
259
- exit
260
- else
261
- puts " \033[31mFrank could not find setup.rb \033[0m"
262
- exit
263
- end
264
-
265
- if Frank.publish.host || Frank.publish.path || Frank.publish.username || Frank.publish.password
266
- begin
267
- require 'net/scp'
268
- rescue LoadError
269
- puts "\033[31m`frank publish' requires the 'net-scp' gem. `gem install net-scp'\033[0m"
270
- exit
271
- end
269
+ exit!
272
270
  end
273
271
 
274
272
  end
@@ -284,17 +282,21 @@ module Frank
284
282
  end
285
283
 
286
284
  unless Frank.environment == :test
287
- m = "got it under control \n got your back \n holdin' it down
288
- takin' care of business \n workin' some magic".split("\n").sort_by{rand}.first.strip
289
- puts "\n-----------------------\n" +
290
- " Frank's #{ m }...\n" +
291
- " #{Frank.server.hostname}:#{Frank.server.port} \n\n"
285
+ message = ['got it under control', 'got your back', 'holdin\' it down', 'takin\' care of business', 'workin\' some magic'].sort_by{rand}.first.strip
286
+
287
+ puts "\n-----------------------"
288
+ if Frank.serving_static?
289
+ puts " This doesn't look like a frank project. Frank's serving this folder up his way..."
290
+ else
291
+ puts " Frank's #{ message }..."
292
+ end
293
+ puts " #{Frank.server.hostname}:#{Frank.server.port} \n\n"
292
294
 
293
295
  begin
294
296
  server = Rack::Handler.get(Frank.server.handler)
295
297
  rescue LoadError
296
298
  puts "\n\nUnable to find handler for: #{Frank.server.handler}"
297
- puts "\nUse `gem install \"#{Frank.server.handler}\"` to install it"
299
+ puts "\nUse `gem install #{Frank.server.handler}' to install it"
298
300
  puts "\nDefaulting to using webrick"
299
301
  server = Rack::Handler.get("webrick")
300
302
  end
data/lib/frank/cli.rb CHANGED
@@ -110,10 +110,16 @@ module Frank
110
110
  Frank.server.handler = server_options['handler'] if server_options['handler']
111
111
  Frank.server.hostname = server_options['hostname'] if server_options['hostname']
112
112
  Frank.server.port = server_options['port'] if server_options['port']
113
-
114
- # setup folder options
115
- Frank.dynamic_folder = @options[:dynamic_folder] if @options[:dynamic_folder]
116
- Frank.static_folder = @options[:static_folder] if @options[:static_folder]
113
+ if File.exist? 'setup.rb'
114
+ # setup folder options if we have setup.rb
115
+ Frank.dynamic_folder = @options[:dynamic_folder] if @options[:dynamic_folder]
116
+ Frank.static_folder = @options[:static_folder] if @options[:static_folder]
117
+ else
118
+ # let frank act like a real grown up server
119
+ Frank.serving_static!
120
+ Frank.dynamic_folder = '.'
121
+ Frank.static_folder = '.'
122
+ end
117
123
  Frank.new
118
124
  when 'export', 'e', 'out'
119
125
  # compile the project
@@ -129,6 +135,9 @@ module Frank
129
135
  when 'upgrade'
130
136
  # upgrade if we need to upgrade
131
137
  Frank.upgrade!
138
+ else
139
+ puts "frank doesn't know that one... `frank --help' for usage"
140
+ exit
132
141
  end
133
142
  end
134
143
 
@@ -12,7 +12,7 @@ module Frank
12
12
  def call(env)
13
13
  request = Rack::Request.new(env)
14
14
  if request.path_info.match /^\/__refresh__$/
15
- [ 200, { 'Content-Type' => 'application/json' }, "[#{get_mtime}]" ]
15
+ [ 200, { 'Content-Type' => 'application/json', 'Connection' => 'Keep-Alive', 'Keep-Alive' => 'timeout=60', 'Cache-Control' => 'max-age=0' }, "#{get_mtime}" ]
16
16
  else
17
17
  @app.call(env)
18
18
  end
data/lib/frank/publish.rb CHANGED
@@ -3,6 +3,8 @@ module Frank
3
3
 
4
4
  class SCP
5
5
  def self.execute!
6
+ exit_unless_configured
7
+
6
8
  puts "\nFrank is..."
7
9
  puts " - \033[32mExporting templates\033[0m"
8
10
 
@@ -27,7 +29,7 @@ module Frank
27
29
 
28
30
  # upload the files and report progress
29
31
  Net::SSH.start(Frank.publish.host, Frank.publish.username, ssh_options) do |ssh|
30
- ssh.scp.upload!(tmp_folder, Frank.publish.path, :recursive => true, :chunk_size => 2048) do |ch, name, sent, total|
32
+ ssh.scp.upload!("#{tmp_folder}/", Frank.publish.path, :recursive => true, :chunk_size => 2048) do |ch, name, sent, total|
31
33
 
32
34
  puts " - #{name[tmp_folder.length..-1]}" unless name == current
33
35
 
@@ -40,7 +42,25 @@ module Frank
40
42
 
41
43
  puts "\n\033[32mPublish complete!\033[0m"
42
44
  end
45
+
46
+ def self.exit_unless_configured
47
+ required_settings = { :host => Frank.publish.host, :path => Frank.publish.path, :username => Frank.publish.username }
48
+ should_exit = false
49
+ message = "\033[31m"
50
+
51
+ required_settings.each do |name, value|
52
+ if value.nil?
53
+ message << "Frank.publish.#{name} is required to publish. You can configure it in setup.rb\n"
54
+ exiting = true
55
+ end
56
+ end
57
+
58
+ message << "\033[0m"
59
+
60
+ puts message and exit! if should_exit
61
+ end
62
+
43
63
  end
44
64
 
45
65
  end
46
- end
66
+ end
@@ -57,6 +57,16 @@ module Frank
57
57
  @root.split('/').last
58
58
  end
59
59
 
60
+ # Are we serving up a raw static folder?
61
+ def serving_static?
62
+ @serving_static
63
+ end
64
+
65
+ # Mark this Frank run as serving static
66
+ def serving_static!
67
+ @serving_static = true
68
+ end
69
+
60
70
  # Check to see if we're compiling
61
71
  def exporting?
62
72
  @exporting
@@ -25,19 +25,21 @@ module Frank
25
25
  var when = #{Time.now.to_i};
26
26
 
27
27
  function process( raw ){
28
- if( eval(raw)[0] > when )
28
+ if( parseInt(raw) > when ) {
29
29
  window.location.reload();
30
+ }
30
31
  }
31
-
32
- (function poll(){
33
- var req = new XMLHttpRequest();
34
- req.open('GET', '/__refresh__', true);
32
+
33
+ (function (){
34
+ var req = (typeof XMLHttpRequest !== "undefined") ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
35
35
  req.onreadystatechange = function (aEvt) {
36
- if ( req.readyState == 4 && req.status == 200 )
37
- process(req.responseText);
36
+ if ( req.readyState === 4 ) {
37
+ process( req.responseText );
38
+ }
38
39
  };
39
- req.send(null);
40
- setTimeout( poll, 1000 );
40
+ req.open('GET', '/__refresh__', true);
41
+ req.send( null );
42
+ setTimeout( arguments.callee, 1000 );
41
43
  })();
42
44
 
43
45
  })();
@@ -14,18 +14,18 @@
14
14
  #wrapper
15
15
  %img{:src=>'/__frank__/frank-404.png'}
16
16
  %h1= "Not Found&mdash;"
17
- - unless environment == :serving
17
+ - unless Frank.serving_static?
18
18
  %p
19
19
  - if request['REQUEST_PATH']
20
20
  - path = request['REQUEST_PATH'][1..-1]
21
21
  = "Try creating"
22
-
22
+
23
23
  - if path.match(/\.css$/)
24
24
  = "<tt>#{path.match(/([\w\/]+)\./)[1]}.sass</tt>"
25
25
  - else
26
26
  = "<tt>#{path.gsub(/\/$/, '')}.haml</tt>"
27
27
  = "in the <tt>#{dynamic_folder}</tt> folder, or"
28
-
28
+
29
29
  - if path.match(/\.\w+/)
30
30
  = "<tt>#{path}</tt>"
31
31
  - else
@@ -58,6 +58,9 @@ Frank.layouts_folder = "layouts"
58
58
  # Frank.publish.port = 22
59
59
  #
60
60
 
61
+ # ----------------------
62
+ # Sass Options:
63
+ # Frank.sass_options = { :load_paths => [ File.join(File.dirname(__FILE__), 'dynamic/css') ] }
61
64
 
62
65
 
63
66
  # ----------------------
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frank
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 2
10
- version: 1.0.2
9
+ - 3
10
+ version: 1.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - blahed
@@ -16,12 +16,10 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-11-12 00:00:00 -05:00
19
+ date: 2010-11-16 00:00:00 -05:00
20
20
  default_executable: frank
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
- name: rack
24
- prerelease: false
25
23
  requirement: &id001 !ruby/object:Gem::Requirement
26
24
  none: false
27
25
  requirements:
@@ -33,11 +31,26 @@ dependencies:
33
31
  - 0
34
32
  version: "1.0"
35
33
  type: :runtime
34
+ name: rack
35
+ prerelease: false
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: haml
39
- prerelease: false
40
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 15
44
+ segments:
45
+ - 1
46
+ - 0
47
+ version: "1.0"
48
+ type: :runtime
49
+ name: mongrel
50
+ prerelease: false
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ requirement: &id003 !ruby/object:Gem::Requirement
41
54
  none: false
42
55
  requirements:
43
56
  - - ">="
@@ -48,11 +61,11 @@ dependencies:
48
61
  - 0
49
62
  version: "3.0"
50
63
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: tilt
64
+ name: haml
54
65
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ requirement: &id004 !ruby/object:Gem::Requirement
56
69
  none: false
57
70
  requirements:
58
71
  - - "="
@@ -63,11 +76,55 @@ dependencies:
63
76
  - 9
64
77
  version: "0.9"
65
78
  type: :runtime
66
- version_requirements: *id003
79
+ name: tilt
80
+ prerelease: false
81
+ version_requirements: *id004
67
82
  - !ruby/object:Gem::Dependency
68
- name: rspec
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 2
91
+ - 0
92
+ version: "2.0"
93
+ type: :runtime
94
+ name: net-ssh
69
95
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ hash: 15
104
+ segments:
105
+ - 1
106
+ - 0
107
+ version: "1.0"
108
+ type: :runtime
109
+ name: net-scp
110
+ prerelease: false
111
+ version_requirements: *id006
112
+ - !ruby/object:Gem::Dependency
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ hash: 3
119
+ segments:
120
+ - 0
121
+ version: "0"
122
+ type: :runtime
123
+ name: jeweler
124
+ prerelease: false
125
+ version_requirements: *id007
126
+ - !ruby/object:Gem::Dependency
127
+ requirement: &id008 !ruby/object:Gem::Requirement
71
128
  none: false
72
129
  requirements:
73
130
  - - ">="
@@ -80,12 +137,246 @@ dependencies:
80
137
  - beta
81
138
  - 19
82
139
  version: 2.0.0.beta.19
83
- type: :development
84
- version_requirements: *id004
140
+ type: :runtime
141
+ name: rspec
142
+ prerelease: false
143
+ version_requirements: *id008
85
144
  - !ruby/object:Gem::Dependency
145
+ requirement: &id009 !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ hash: 1
151
+ segments:
152
+ - 0
153
+ - 5
154
+ version: "0.5"
155
+ type: :runtime
86
156
  name: rack-test
87
157
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
158
+ version_requirements: *id009
159
+ - !ruby/object:Gem::Dependency
160
+ requirement: &id010 !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ hash: 3
166
+ segments:
167
+ - 0
168
+ version: "0"
169
+ type: :runtime
170
+ name: rake
171
+ prerelease: false
172
+ version_requirements: *id010
173
+ - !ruby/object:Gem::Dependency
174
+ requirement: &id011 !ruby/object:Gem::Requirement
175
+ none: false
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ hash: 3
180
+ segments:
181
+ - 0
182
+ version: "0"
183
+ type: :runtime
184
+ name: contest
185
+ prerelease: false
186
+ version_requirements: *id011
187
+ - !ruby/object:Gem::Dependency
188
+ requirement: &id012 !ruby/object:Gem::Requirement
189
+ none: false
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ hash: 3
194
+ segments:
195
+ - 0
196
+ version: "0"
197
+ type: :runtime
198
+ name: builder
199
+ prerelease: false
200
+ version_requirements: *id012
201
+ - !ruby/object:Gem::Dependency
202
+ requirement: &id013 !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ hash: 3
208
+ segments:
209
+ - 0
210
+ version: "0"
211
+ type: :runtime
212
+ name: erubis
213
+ prerelease: false
214
+ version_requirements: *id013
215
+ - !ruby/object:Gem::Dependency
216
+ requirement: &id014 !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ hash: 51
222
+ segments:
223
+ - 0
224
+ - 10
225
+ - 2
226
+ version: 0.10.2
227
+ type: :runtime
228
+ name: compass
229
+ prerelease: false
230
+ version_requirements: *id014
231
+ - !ruby/object:Gem::Dependency
232
+ requirement: &id015 !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ hash: 3
238
+ segments:
239
+ - 0
240
+ version: "0"
241
+ type: :runtime
242
+ name: rdiscount
243
+ prerelease: false
244
+ version_requirements: *id015
245
+ - !ruby/object:Gem::Dependency
246
+ requirement: &id016 !ruby/object:Gem::Requirement
247
+ none: false
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ hash: 3
252
+ segments:
253
+ - 0
254
+ version: "0"
255
+ type: :runtime
256
+ name: liquid
257
+ prerelease: false
258
+ version_requirements: *id016
259
+ - !ruby/object:Gem::Dependency
260
+ requirement: &id017 !ruby/object:Gem::Requirement
261
+ none: false
262
+ requirements:
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ hash: 3
266
+ segments:
267
+ - 0
268
+ version: "0"
269
+ type: :runtime
270
+ name: less
271
+ prerelease: false
272
+ version_requirements: *id017
273
+ - !ruby/object:Gem::Dependency
274
+ requirement: &id018 !ruby/object:Gem::Requirement
275
+ none: false
276
+ requirements:
277
+ - - ">="
278
+ - !ruby/object:Gem::Version
279
+ hash: 3
280
+ segments:
281
+ - 0
282
+ version: "0"
283
+ type: :runtime
284
+ name: coffee-script
285
+ prerelease: false
286
+ version_requirements: *id018
287
+ - !ruby/object:Gem::Dependency
288
+ requirement: &id019 !ruby/object:Gem::Requirement
289
+ none: false
290
+ requirements:
291
+ - - ">="
292
+ - !ruby/object:Gem::Version
293
+ hash: 3
294
+ segments:
295
+ - 0
296
+ version: "0"
297
+ type: :runtime
298
+ name: RedCloth
299
+ prerelease: false
300
+ version_requirements: *id019
301
+ - !ruby/object:Gem::Dependency
302
+ requirement: &id020 !ruby/object:Gem::Requirement
303
+ none: false
304
+ requirements:
305
+ - - ">="
306
+ - !ruby/object:Gem::Version
307
+ hash: 3
308
+ segments:
309
+ - 0
310
+ version: "0"
311
+ type: :runtime
312
+ name: ruby-debug
313
+ prerelease: false
314
+ version_requirements: *id020
315
+ - !ruby/object:Gem::Dependency
316
+ requirement: &id021 !ruby/object:Gem::Requirement
317
+ none: false
318
+ requirements:
319
+ - - ">="
320
+ - !ruby/object:Gem::Version
321
+ hash: 15
322
+ segments:
323
+ - 1
324
+ - 0
325
+ version: "1.0"
326
+ type: :runtime
327
+ name: rack
328
+ prerelease: false
329
+ version_requirements: *id021
330
+ - !ruby/object:Gem::Dependency
331
+ requirement: &id022 !ruby/object:Gem::Requirement
332
+ none: false
333
+ requirements:
334
+ - - ">="
335
+ - !ruby/object:Gem::Version
336
+ hash: 7
337
+ segments:
338
+ - 3
339
+ - 0
340
+ version: "3.0"
341
+ type: :runtime
342
+ name: haml
343
+ prerelease: false
344
+ version_requirements: *id022
345
+ - !ruby/object:Gem::Dependency
346
+ requirement: &id023 !ruby/object:Gem::Requirement
347
+ none: false
348
+ requirements:
349
+ - - "="
350
+ - !ruby/object:Gem::Version
351
+ hash: 25
352
+ segments:
353
+ - 0
354
+ - 9
355
+ version: "0.9"
356
+ type: :runtime
357
+ name: tilt
358
+ prerelease: false
359
+ version_requirements: *id023
360
+ - !ruby/object:Gem::Dependency
361
+ requirement: &id024 !ruby/object:Gem::Requirement
362
+ none: false
363
+ requirements:
364
+ - - ">="
365
+ - !ruby/object:Gem::Version
366
+ hash: 62196421
367
+ segments:
368
+ - 2
369
+ - 0
370
+ - 0
371
+ - beta
372
+ - 19
373
+ version: 2.0.0.beta.19
374
+ type: :development
375
+ name: rspec
376
+ prerelease: false
377
+ version_requirements: *id024
378
+ - !ruby/object:Gem::Dependency
379
+ requirement: &id025 !ruby/object:Gem::Requirement
89
380
  none: false
90
381
  requirements:
91
382
  - - ">="
@@ -96,7 +387,9 @@ dependencies:
96
387
  - 5
97
388
  version: "0.5"
98
389
  type: :development
99
- version_requirements: *id005
390
+ name: rack-test
391
+ prerelease: false
392
+ version_requirements: *id025
100
393
  description: Rapidly develop static sites using any supported templating language
101
394
  email: travis.dunn@thisismedium.com
102
395
  executables:
@@ -107,7 +400,6 @@ extra_rdoc_files:
107
400
  - LICENSE
108
401
  - README.md
109
402
  files:
110
- - .gitignore
111
403
  - Gemfile
112
404
  - Gemfile.lock
113
405
  - LICENSE
@@ -192,8 +484,8 @@ homepage: http://github.com/blahed/frank
192
484
  licenses: []
193
485
 
194
486
  post_install_message:
195
- rdoc_options:
196
- - --charset=UTF-8
487
+ rdoc_options: []
488
+
197
489
  require_paths:
198
490
  - lib
199
491
  required_ruby_version: !ruby/object:Gem::Requirement
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- .DS_Store
2
- pkg
3
- lib/frank/output_old.rb
4
- .rvmrc
5
- .sass-cache
6
- .bundle