prow 0.2.5 → 0.3.0

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: ccf202f85f65e49efb766a707a8d8c63046ad9be
4
- data.tar.gz: 52e180868e01e094b254cefd807ceab3fbbe1627
3
+ metadata.gz: 770daa6188a05f8c47e7c4b4bcd4a0f1d7c5f7e9
4
+ data.tar.gz: bfc66fc6865668b5646e99edba52683bf8abc07c
5
5
  SHA512:
6
- metadata.gz: f8363fd3020687875cd0af7324d6d48ba272428b1178b97d53a585982bab8602625dbd1e59e855dccfd5468dcb799beb3ea086c04cb8c90d3bcbf856c976369b
7
- data.tar.gz: 7db8162bc758079ede12908ca1801b48390c54db6b783e6ae2f11fdac9f0155ad0037d878057ca22ecfdbf463cf489122d79ab9e16ce308368c234f7b9b36908
6
+ metadata.gz: e080c7f7f1b83492165e6300353d13bf71f9b73ca8696847a398b9c39e6b048e2b69dbd12b341d6d4bb56127c9f7a45ac2bf33ff1eb4ced6d80a1ecb49783bd4
7
+ data.tar.gz: feb4ef1c6111fef869bbc3cbb9d1fca146b7fefd0b1fb6ffe7d34d5e60d291195baf3974a9a8bd7bcb1c8c2c7b1c0fd8792d60b959e64ca9da1199784ab52e57
@@ -20,5 +20,3 @@ require "prow/pages_compiler"
20
20
 
21
21
  require "prow/app_builder/create"
22
22
  require "prow/app_builder/style_compiler"
23
-
24
- require "prow/watcher"
@@ -3,6 +3,7 @@ module Prow
3
3
  class Create < Struct.new(:path)
4
4
  def perform
5
5
  copy('config.ru')
6
+ copy('Guardfile')
6
7
  mkdir('public')
7
8
  mkdir('templates')
8
9
  mkdir('config')
@@ -0,0 +1,12 @@
1
+ guard 'rake', :task => 'prow:compile:css' do
2
+ watch(/^sass\/.+$/)
3
+ end
4
+
5
+ guard 'rake', :task => 'prow:compile:html' do
6
+ watch(/^templates\/.+$/)
7
+ end
8
+
9
+ guard 'rack', :port => 9292 do
10
+ watch('Gemfile.lock')
11
+ watch('config.ru')
12
+ end
@@ -1,2 +1,10 @@
1
- require 'vienna'
2
- run Vienna
1
+ require 'rack'
2
+ require 'rack/contrib/try_static'
3
+
4
+ use Rack::TryStatic,
5
+ root: "public", # static files root dir
6
+ urls: %w[/], # match all requests
7
+ try: ['.html', 'index.html', '/index.html'] # try these postfixes sequentially
8
+
9
+ # otherwise 404 NotFound
10
+ run -> { [404, {'Content-Type' => 'text/html'}, ['whoops! Not Found']]}
@@ -5,6 +5,11 @@
5
5
  "title": "Hello from Prow",
6
6
  "text_logo": "Prow by Shipd Software"
7
7
  }
8
+ },
9
+ "404.html": {
10
+ "data": {
11
+ "title": "Oh, no! Page not found :("
12
+ }
8
13
  }
9
14
  }
10
15
  }
@@ -0,0 +1,8 @@
1
+ <div class='inner centered-content'>
2
+ <h1>Whoa? Where ya goin'?</h1>
3
+ <h1 style="font-size: 300px">?</h1>
4
+ <h2>
5
+ Sorry. Page not found.
6
+ </h2>
7
+ </div>
8
+
@@ -1,3 +1,3 @@
1
1
  module Prow
2
- VERSION = "0.2.5"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -24,8 +24,8 @@ namespace :prow do
24
24
  Prow::AppBuilder::StyleCompiler.new.perform
25
25
  end
26
26
 
27
- desc "Runs the app"
27
+ desc "Runs the app and auto-compiles css and html"
28
28
  task :run do
29
- `rackup`
29
+ `guard`
30
30
  end
31
31
  end
@@ -30,8 +30,11 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.add_dependency "shipd_style"
32
32
  spec.add_dependency "mustache"
33
- spec.add_dependency "vienna"
34
- spec.add_dependency "listen"
33
+ spec.add_dependency "thin"
34
+ spec.add_dependency "rack-contrib"
35
+ spec.add_dependency "guard"
36
+ spec.add_dependency "guard-rack"
37
+ spec.add_dependency "guard-rake"
35
38
 
36
39
  spec.add_development_dependency "bundler", "~> 1.6"
37
40
  spec.add_development_dependency "rspec"
@@ -13,6 +13,12 @@ RSpec.describe Prow::AppBuilder::Create do
13
13
  expect(File.read(app_path + "/config.ru")).to eq(File.read(app_templates_path + "/config.ru"))
14
14
  end
15
15
 
16
+ it "should copy the Guardfile file" do
17
+ creator.perform
18
+ expect(File.exist?(app_path + "/Guardfile")).to be(true)
19
+ expect(File.read(app_path + "/Guardfile")).to eq(File.read(app_templates_path + "/Guardfile"))
20
+ end
21
+
16
22
  it "should make the public directory" do
17
23
  creator.perform
18
24
  expect(File.exist?(app_path + "/public")).to be(true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kane Baccigalupi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-17 00:00:00.000000000 Z
11
+ date: 2015-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shipd_style
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: vienna
42
+ name: thin
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,49 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: listen
56
+ name: rack-contrib
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard
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
+ - !ruby/object:Gem::Dependency
84
+ name: guard-rack
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rake
57
99
  requirement: !ruby/object:Gem::Requirement
58
100
  requirements:
59
101
  - - ">="
@@ -131,9 +173,11 @@ files:
131
173
  - lib/prow.rb
132
174
  - lib/prow/app_builder/create.rb
133
175
  - lib/prow/app_builder/style_compiler.rb
176
+ - lib/prow/app_builder/templates/Guardfile
134
177
  - lib/prow/app_builder/templates/config.ru
135
178
  - lib/prow/app_builder/templates/config/pages.json
136
179
  - lib/prow/app_builder/templates/templates/layouts/default.mustache
180
+ - lib/prow/app_builder/templates/templates/pages/404.mustache
137
181
  - lib/prow/app_builder/templates/templates/pages/index.mustache
138
182
  - lib/prow/page.rb
139
183
  - lib/prow/page_compiler.rb
@@ -146,7 +190,6 @@ files:
146
190
  - lib/prow/template.rb
147
191
  - lib/prow/templates.rb
148
192
  - lib/prow/version.rb
149
- - lib/prow/watcher.rb
150
193
  - lib/tasks/prow.rake
151
194
  - prow.gemspec
152
195
  - spec/app_builder/create_spec.rb
@@ -169,7 +212,6 @@ files:
169
212
  - spec/support/fixtures/templates/partials/things/it.mustache
170
213
  - spec/template_spec.rb
171
214
  - spec/templates_spec.rb
172
- - spec/watcher_spec.rb
173
215
  homepage: https://github.com/shipd/prow
174
216
  licenses:
175
217
  - MIT
@@ -215,4 +257,3 @@ test_files:
215
257
  - spec/support/fixtures/templates/partials/things/it.mustache
216
258
  - spec/template_spec.rb
217
259
  - spec/templates_spec.rb
218
- - spec/watcher_spec.rb
@@ -1,44 +0,0 @@
1
- module Prow
2
- class Watcher
3
- attr_reader :paths
4
-
5
- def initialize(paths=nil)
6
- @paths = paths || Paths.new
7
- end
8
-
9
- def start
10
- watch_all
11
- end
12
-
13
- def stop
14
- template_listener.stop
15
- end
16
-
17
- def watch_all
18
- silence_warnings do
19
- template_listener.start
20
- sass_listener.start
21
- end
22
- end
23
-
24
- def template_listener
25
- @template_listener ||= Listen.to(paths.templates) do
26
- compile_pages
27
- end
28
- end
29
-
30
- def sass_listener
31
- @sass_listener ||= Listen.to(paths.sass) do
32
- compile_stylesheets
33
- end
34
- end
35
-
36
- def compile_pages
37
- Prow::PagesCompiler.new(paths).compile
38
- end
39
-
40
- def compile_stylesheets
41
- Prow::AppBuilder::StyleCompiler.new(paths).perform
42
- end
43
- end
44
- end
@@ -1,59 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Prow::Watcher do
4
- let(:runner) { Prow::Watcher.new(paths) }
5
- let(:paths) { Prow::Paths.new(File.dirname(__FILE__) + "/support/fixtures" )}
6
-
7
- before do
8
- # create some initial content
9
- Prow::PagesCompiler.new(paths).compile
10
- end
11
-
12
- after do
13
- runner.stop
14
- end
15
-
16
- describe '#start' do
17
- context 'when templates change' do
18
- after do
19
- File.open(header_template_path, 'w') do |f|
20
- f.write(original_header_content)
21
- end
22
- end
23
-
24
- let(:header_template_path) { paths.templates + "/partials/header.mustache" }
25
- let(:new_header_content) { "Yo, header!" }
26
- let(:original_header_content) { "Hello Header World\n" }
27
-
28
- it "regenerates pages" do
29
- runner.start
30
- File.open(header_template_path, 'w') do |f|
31
- f.write(new_header_content)
32
- end
33
- sleep 1
34
- expect(File.read(paths.compile + "/index.html")).to include(new_header_content)
35
- end
36
- end
37
-
38
- context 'when the pages.json changes' do
39
- it "regenerates pages"
40
- end
41
-
42
- context 'when sass files change' do
43
- let(:scss_path) { paths.sass + "/foo.scss" }
44
- let(:stylesheet_path) { paths.compile + "/stylesheets/foo.css" }
45
-
46
- before do
47
- File.delete(scss_path) if File.exist?(scss_path)
48
- File.delete(stylesheet_path) if File.exist?(stylesheet_path)
49
- end
50
-
51
- it "watches sass files and regenerates stylesheets" do
52
- runner.start
53
- File.open(scss_path, 'w') {|f| f.write("body {background: red;}") }
54
- sleep 1
55
- expect(File.exist?(stylesheet_path)).to be(true)
56
- end
57
- end
58
- end
59
- end