stasis 0.1.13 → 0.1.14

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
@@ -195,6 +195,12 @@ Development mode (auto-regenerate on save):
195
195
 
196
196
  $ stasis -d
197
197
 
198
+ Specify a port to start an HTTP server:
199
+
200
+ <!-- highlight:-d language:console -->
201
+
202
+ $ stasis -d 3000
203
+
198
204
  Only render specific files or directories:
199
205
 
200
206
  <!-- highlight:-o language:console -->
data/bin/stasis CHANGED
@@ -6,7 +6,7 @@ gem "slop", "~> 2.1.0"
6
6
  require 'slop'
7
7
 
8
8
  slop = Slop.parse :help => true do
9
- on :d, :development, "Development mode\t\t(auto-regenerate)"
9
+ on :d, :development, "Development mode\t\t(auto-regenerate)", :optional => true, :as => Integer
10
10
  on :o, :only, "Only generate specific files\t(comma-separated)", :optional => true, :as => Array
11
11
  on :p, :public, "Public directory path", :optional => true
12
12
  on :s, :server, "Server mode\t\t\t(default redis host: localhost:6379/0)", :optional => true, :default => "localhost:6379/0"
@@ -1,6 +1,9 @@
1
1
  gem "directory_watcher", "~> 1.4.1"
2
2
  require 'directory_watcher'
3
3
 
4
+ require 'logger'
5
+ require 'webrick'
6
+
4
7
  class Stasis
5
8
  class DevMode
6
9
 
@@ -31,7 +34,26 @@ class Stasis
31
34
  dw.add_observer { render }
32
35
  dw.start
33
36
 
34
- loop { sleep 1000 }
37
+ if options[:development]
38
+ mime_types = WEBrick::HTTPUtils::DefaultMimeTypes
39
+ mime_types.store 'js', 'application/javascript'
40
+
41
+ server = WEBrick::HTTPServer.new(
42
+ :AccessLog => [ nil, nil ],
43
+ :DocumentRoot => @stasis.destination,
44
+ :Logger => WEBrick::Log.new("/dev/null"),
45
+ :MimeTypes => mime_types,
46
+ :Port => options[:development] || 3000
47
+ )
48
+
49
+ ['INT', 'TERM'].each do |signal|
50
+ trap(signal) { server.shutdown }
51
+ end
52
+
53
+ server.start
54
+ else
55
+ loop { sleep 1000 }
56
+ end
35
57
  end
36
58
 
37
59
  private
@@ -13,6 +13,7 @@ class Stasis
13
13
  # This event triggers before each file renders through Stasis. It sets the `action`
14
14
  # layout from the matching layout for `path`.
15
15
  def before_render
16
+ return unless @stasis.path
16
17
  @stasis.action._layout = nil
17
18
  matches = _match_key?(@layouts, @stasis.path)
18
19
  # Find matching layout with same extension.
@@ -30,7 +30,7 @@ class Stasis
30
30
  # `@@priorities` `Hash`, where the key is a path and the value is the priority.
31
31
  def priority(hash)
32
32
  hash = hash.inject({}) do |hash, (key, value)|
33
- force = key[0..0] == '/'
33
+ force = key[0..0] == '/' if key.is_a?(::String)
34
34
  key = @stasis.controller._resolve(key)
35
35
  hash[key] = [ @stasis.path, value, force ] if key
36
36
  hash
data/stasis.gemspec CHANGED
@@ -6,7 +6,7 @@ $:.unshift lib unless $:.include?(lib)
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "stasis"
9
- s.version = '0.1.13'
9
+ s.version = '0.1.14'
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.authors = [ 'Winton Welsh' ]
12
12
  s.email = [ 'mail@wintoni.us' ]
@@ -19,7 +19,10 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = %w(lib)
20
20
  s.test_files = `cd #{root} && git ls-files -- {features,test,spec}/*`.split("\n")
21
21
 
22
+ s.add_development_dependency "albino"
23
+ s.add_development_dependency "coffee-script"
22
24
  s.add_development_dependency "haml"
25
+ s.add_development_dependency "nokogiri"
23
26
  s.add_development_dependency "rocco"
24
27
  s.add_development_dependency "rspec", "~> 1.0"
25
28
 
metadata CHANGED
@@ -1,155 +1,145 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: stasis
3
- version: !ruby/object:Gem::Version
4
- hash: 1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.14
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 13
10
- version: 0.1.13
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Winton Welsh
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-30 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
12
+ date: 2011-11-07 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: albino
16
+ requirement: &70292072374900 !ruby/object:Gem::Requirement
22
17
  none: false
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 0
29
- version: "0"
30
- requirement: *id001
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
31
23
  prerelease: false
24
+ version_requirements: *70292072374900
25
+ - !ruby/object:Gem::Dependency
26
+ name: coffee-script
27
+ requirement: &70292072374300 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70292072374300
36
+ - !ruby/object:Gem::Dependency
32
37
  name: haml
38
+ requirement: &70292072373600 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
33
44
  type: :development
34
- - !ruby/object:Gem::Dependency
35
- version_requirements: &id002 !ruby/object:Gem::Requirement
45
+ prerelease: false
46
+ version_requirements: *70292072373600
47
+ - !ruby/object:Gem::Dependency
48
+ name: nokogiri
49
+ requirement: &70292072372980 !ruby/object:Gem::Requirement
36
50
  none: false
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- hash: 3
41
- segments:
42
- - 0
43
- version: "0"
44
- requirement: *id002
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
45
56
  prerelease: false
57
+ version_requirements: *70292072372980
58
+ - !ruby/object:Gem::Dependency
46
59
  name: rocco
47
- type: :development
48
- - !ruby/object:Gem::Dependency
49
- version_requirements: &id003 !ruby/object:Gem::Requirement
60
+ requirement: &70292072372100 !ruby/object:Gem::Requirement
50
61
  none: false
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- hash: 15
55
- segments:
56
- - 1
57
- - 0
58
- version: "1.0"
59
- requirement: *id003
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
60
67
  prerelease: false
68
+ version_requirements: *70292072372100
69
+ - !ruby/object:Gem::Dependency
61
70
  name: rspec
62
- type: :development
63
- - !ruby/object:Gem::Dependency
64
- version_requirements: &id004 !ruby/object:Gem::Requirement
71
+ requirement: &70292072370660 !ruby/object:Gem::Requirement
65
72
  none: false
66
- requirements:
73
+ requirements:
67
74
  - - ~>
68
- - !ruby/object:Gem::Version
69
- hash: 5
70
- segments:
71
- - 1
72
- - 4
73
- - 1
74
- version: 1.4.1
75
- requirement: *id004
75
+ - !ruby/object:Gem::Version
76
+ version: '1.0'
77
+ type: :development
76
78
  prerelease: false
79
+ version_requirements: *70292072370660
80
+ - !ruby/object:Gem::Dependency
77
81
  name: directory_watcher
78
- type: :runtime
79
- - !ruby/object:Gem::Dependency
80
- version_requirements: &id005 !ruby/object:Gem::Requirement
82
+ requirement: &70292072369860 !ruby/object:Gem::Requirement
81
83
  none: false
82
- requirements:
84
+ requirements:
83
85
  - - ~>
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 2
88
- - 2
89
- - 2
90
- version: 2.2.2
91
- requirement: *id005
86
+ - !ruby/object:Gem::Version
87
+ version: 1.4.1
88
+ type: :runtime
92
89
  prerelease: false
90
+ version_requirements: *70292072369860
91
+ - !ruby/object:Gem::Dependency
93
92
  name: redis
94
- type: :runtime
95
- - !ruby/object:Gem::Dependency
96
- version_requirements: &id006 !ruby/object:Gem::Requirement
93
+ requirement: &70292072369060 !ruby/object:Gem::Requirement
97
94
  none: false
98
- requirements:
95
+ requirements:
99
96
  - - ~>
100
- - !ruby/object:Gem::Version
101
- hash: 11
102
- segments:
103
- - 2
104
- - 1
105
- - 0
106
- version: 2.1.0
107
- requirement: *id006
97
+ - !ruby/object:Gem::Version
98
+ version: 2.2.2
99
+ type: :runtime
108
100
  prerelease: false
101
+ version_requirements: *70292072369060
102
+ - !ruby/object:Gem::Dependency
109
103
  name: slop
110
- type: :runtime
111
- - !ruby/object:Gem::Dependency
112
- version_requirements: &id007 !ruby/object:Gem::Requirement
104
+ requirement: &70292072368120 !ruby/object:Gem::Requirement
113
105
  none: false
114
- requirements:
106
+ requirements:
115
107
  - - ~>
116
- - !ruby/object:Gem::Version
117
- hash: 29
118
- segments:
119
- - 1
120
- - 3
121
- - 3
122
- version: 1.3.3
123
- requirement: *id007
108
+ - !ruby/object:Gem::Version
109
+ version: 2.1.0
110
+ type: :runtime
124
111
  prerelease: false
112
+ version_requirements: *70292072368120
113
+ - !ruby/object:Gem::Dependency
125
114
  name: tilt
126
- type: :runtime
127
- - !ruby/object:Gem::Dependency
128
- version_requirements: &id008 !ruby/object:Gem::Requirement
115
+ requirement: &70292072367200 !ruby/object:Gem::Requirement
129
116
  none: false
130
- requirements:
117
+ requirements:
131
118
  - - ~>
132
- - !ruby/object:Gem::Version
133
- hash: 23
134
- segments:
135
- - 1
136
- - 0
137
- - 0
138
- version: 1.0.0
139
- requirement: *id008
119
+ - !ruby/object:Gem::Version
120
+ version: 1.3.3
121
+ type: :runtime
140
122
  prerelease: false
123
+ version_requirements: *70292072367200
124
+ - !ruby/object:Gem::Dependency
141
125
  name: yajl-ruby
126
+ requirement: &70292072365880 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 1.0.0
142
132
  type: :runtime
133
+ prerelease: false
134
+ version_requirements: *70292072365880
143
135
  description: Stasis is a dynamic framework for static sites.
144
- email:
136
+ email:
145
137
  - mail@wintoni.us
146
- executables:
138
+ executables:
147
139
  - stasis
148
140
  extensions: []
149
-
150
141
  extra_rdoc_files: []
151
-
152
- files:
142
+ files:
153
143
  - .gitignore
154
144
  - Gemfile
155
145
  - LICENSE
@@ -220,38 +210,35 @@ files:
220
210
  - stasis.gemspec
221
211
  homepage: http://stasis.me
222
212
  licenses: []
223
-
224
213
  post_install_message:
225
214
  rdoc_options: []
226
-
227
- require_paths:
215
+ require_paths:
228
216
  - lib
229
- required_ruby_version: !ruby/object:Gem::Requirement
217
+ required_ruby_version: !ruby/object:Gem::Requirement
230
218
  none: false
231
- requirements:
232
- - - ">="
233
- - !ruby/object:Gem::Version
234
- hash: 3
235
- segments:
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ segments:
236
224
  - 0
237
- version: "0"
238
- required_rubygems_version: !ruby/object:Gem::Requirement
225
+ hash: 356971476928678245
226
+ required_rubygems_version: !ruby/object:Gem::Requirement
239
227
  none: false
240
- requirements:
241
- - - ">="
242
- - !ruby/object:Gem::Version
243
- hash: 3
244
- segments:
228
+ requirements:
229
+ - - ! '>='
230
+ - !ruby/object:Gem::Version
231
+ version: '0'
232
+ segments:
245
233
  - 0
246
- version: "0"
234
+ hash: 356971476928678245
247
235
  requirements: []
248
-
249
236
  rubyforge_project:
250
- rubygems_version: 1.8.10
237
+ rubygems_version: 1.8.6
251
238
  signing_key:
252
239
  specification_version: 3
253
240
  summary: Static sites made powerful
254
- test_files:
241
+ test_files:
255
242
  - spec/fixtures/project/_partial.html.haml
256
243
  - spec/fixtures/project/before_render_partial.html.haml
257
244
  - spec/fixtures/project/before_render_text.html.haml