prow 0.2.5 → 0.3.0

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