stasis 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
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