massimo 0.8.4 → 0.8.5
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/lib/massimo/helpers.rb +0 -1
- data/lib/massimo/javascript.rb +13 -17
- data/lib/massimo/page.rb +4 -6
- data/lib/massimo/resource.rb +19 -1
- data/lib/massimo/stylesheet.rb +0 -14
- data/lib/massimo/version.rb +1 -1
- data/massimo.gemspec +6 -5
- data/spec/massimo/helpers_spec.rb +0 -1
- data/spec/massimo/javascript_spec.rb +1 -1
- data/spec/massimo/stylesheet_spec.rb +1 -1
- metadata +45 -128
data/lib/massimo/helpers.rb
CHANGED
data/lib/massimo/javascript.rb
CHANGED
@@ -1,22 +1,9 @@
|
|
1
|
+
require 'sprockets'
|
2
|
+
|
1
3
|
module Massimo
|
2
4
|
class Javascript < Massimo::Resource
|
3
5
|
def render
|
4
|
-
|
5
|
-
end
|
6
|
-
|
7
|
-
def extension
|
8
|
-
@extension ||= '.js'
|
9
|
-
end
|
10
|
-
|
11
|
-
protected
|
12
|
-
|
13
|
-
def compile
|
14
|
-
case source_path.extname
|
15
|
-
when '.coffee'
|
16
|
-
require 'coffee-script' unless defined?(CoffeeScript)
|
17
|
-
CoffeeScript.compile(content, Massimo.config.options_for(:coffee_script))
|
18
|
-
else
|
19
|
-
require 'sprockets' unless defined?(Sprockets)
|
6
|
+
output = if source_path.extname == '.js'
|
20
7
|
options = Massimo.config.options_for(:sprockets).merge(
|
21
8
|
:assert_root => Massimo.config.output_path,
|
22
9
|
:source_files => [ source_path.to_s ]
|
@@ -24,8 +11,17 @@ module Massimo
|
|
24
11
|
secretary = Sprockets::Secretary.new(options)
|
25
12
|
secretary.install_assets
|
26
13
|
secretary.concatenation.to_s
|
14
|
+
else
|
15
|
+
super
|
27
16
|
end
|
28
|
-
|
17
|
+
compress(output)
|
18
|
+
end
|
19
|
+
|
20
|
+
def extension
|
21
|
+
@extension ||= '.js'
|
22
|
+
end
|
23
|
+
|
24
|
+
protected
|
29
25
|
|
30
26
|
def compress(javascript)
|
31
27
|
case Massimo.config.javascripts_compressor.to_s
|
data/lib/massimo/page.rb
CHANGED
@@ -7,13 +7,11 @@ require 'yaml'
|
|
7
7
|
module Massimo
|
8
8
|
class Page < Resource
|
9
9
|
def render
|
10
|
-
output =
|
11
|
-
|
12
|
-
if template_type = Tilt[filename]
|
13
|
-
options = Massimo.config.options_for(source_path.extname[1..-1])
|
14
|
-
template = template_type.new(source_path.to_s, @line, options) { output }
|
10
|
+
output = if template?
|
15
11
|
meta_data = @meta_data.merge self.class.resource_name.singularize.to_sym => self
|
16
|
-
|
12
|
+
template.render Massimo.site.template_scope, meta_data
|
13
|
+
else
|
14
|
+
content
|
17
15
|
end
|
18
16
|
|
19
17
|
if found_layout = Massimo::View.find("layouts/#{layout}")
|
data/lib/massimo/resource.rb
CHANGED
@@ -2,6 +2,7 @@ require 'active_support/core_ext/string/starts_ends_with'
|
|
2
2
|
require 'active_support/inflector'
|
3
3
|
require 'fileutils'
|
4
4
|
require 'pathname'
|
5
|
+
require 'tilt'
|
5
6
|
|
6
7
|
module Massimo
|
7
8
|
class Resource
|
@@ -85,7 +86,11 @@ module Massimo
|
|
85
86
|
|
86
87
|
# Runs the content through any necessary filters, templates, etc.
|
87
88
|
def render
|
88
|
-
|
89
|
+
if template?
|
90
|
+
template.render
|
91
|
+
else
|
92
|
+
content
|
93
|
+
end
|
89
94
|
end
|
90
95
|
|
91
96
|
# Writes the rendered content to the output file.
|
@@ -101,5 +106,18 @@ module Massimo
|
|
101
106
|
def read_source
|
102
107
|
@content = source_path.read
|
103
108
|
end
|
109
|
+
|
110
|
+
def template
|
111
|
+
@template ||= begin
|
112
|
+
if template_type = Tilt[filename]
|
113
|
+
options = Massimo.config.options_for(source_path.extname[1..-1])
|
114
|
+
template_type.new(source_path.to_s, @line, options) { content }
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def template?
|
120
|
+
!!Tilt[filename]
|
121
|
+
end
|
104
122
|
end
|
105
123
|
end
|
data/lib/massimo/stylesheet.rb
CHANGED
@@ -1,19 +1,5 @@
|
|
1
1
|
module Massimo
|
2
2
|
class Stylesheet < Massimo::Resource
|
3
|
-
def render
|
4
|
-
case source_path.extname
|
5
|
-
when '.sass', '.scss'
|
6
|
-
require 'sass' unless defined?(Sass)
|
7
|
-
options = Massimo.config.options_for(:sass).merge(:css_filename => output_path)
|
8
|
-
Sass::Files.tree_for(source_path.to_s, options).render
|
9
|
-
when '.less'
|
10
|
-
require 'less' unless defined?(Less)
|
11
|
-
Less::Engine.new(content, Massimo.config.options_for(:less)).to_css
|
12
|
-
else
|
13
|
-
super
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
3
|
def extension
|
18
4
|
@extension ||= '.css'
|
19
5
|
end
|
data/lib/massimo/version.rb
CHANGED
data/massimo.gemspec
CHANGED
@@ -17,17 +17,18 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.add_dependency 'rack', '~> 1.2.0'
|
18
18
|
s.add_dependency 'padrino-helpers', '~> 0.9.0'
|
19
19
|
s.add_dependency 'thor', '~> 0.14.0'
|
20
|
-
s.add_dependency 'tilt', '~> 1.
|
20
|
+
s.add_dependency 'tilt', '~> 1.3.1'
|
21
21
|
s.add_dependency 'tzinfo', '~> 0.3.0'
|
22
|
-
s.
|
22
|
+
s.add_dependency 'sprockets', '~> 1.0.0'
|
23
|
+
s.add_development_dependency 'rspec', '~> 2.5.0'
|
23
24
|
s.add_development_dependency 'rr', '~> 1.0.0'
|
24
25
|
s.add_development_dependency 'test-construct', '~> 1.2.0'
|
25
26
|
s.add_development_dependency 'rack-test', '~> 0.5.0'
|
26
27
|
s.add_development_dependency 'unindent', '~> 0.9.0'
|
27
|
-
s.add_development_dependency 'haml', '~> 3.
|
28
|
+
s.add_development_dependency 'haml', '~> 3.1.0'
|
29
|
+
s.add_development_dependency 'sass', '~> 3.1.0'
|
28
30
|
s.add_development_dependency 'less', '~> 1.2.0'
|
29
|
-
s.add_development_dependency 'coffee-script', '~>
|
30
|
-
s.add_development_dependency 'sprockets', '~> 1.0.0'
|
31
|
+
s.add_development_dependency 'coffee-script', '~> 2.2.0'
|
31
32
|
s.add_development_dependency 'jsmin', '~> 1.0.0'
|
32
33
|
s.add_development_dependency 'packr', '~> 3.1.0'
|
33
34
|
s.add_development_dependency 'yui-compressor', '~> 0.9.0'
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Massimo::Helpers do
|
4
|
-
it { should include(Padrino::Helpers::DomHelpers) }
|
5
4
|
it { should include(Padrino::Helpers::OutputHelpers) }
|
6
5
|
it { should include(Padrino::Helpers::TagHelpers) }
|
7
6
|
it { should include(Padrino::Helpers::AssetTagHelpers) }
|
@@ -24,7 +24,7 @@ describe Massimo::Javascript do
|
|
24
24
|
|
25
25
|
it 'renders using CoffeeScript' do
|
26
26
|
with_file 'javascripts/main.coffee', 'number: 42' do
|
27
|
-
mock(CoffeeScript).compile('number: 42', {}) { '' }
|
27
|
+
mock(CoffeeScript).compile('number: 42', { :bare => false }) { '' }
|
28
28
|
javascript.render
|
29
29
|
end
|
30
30
|
end
|
@@ -24,7 +24,7 @@ describe Massimo::Stylesheet do
|
|
24
24
|
|
25
25
|
it 'should import other .sass files' do
|
26
26
|
within_construct do |c|
|
27
|
-
c.file 'stylesheets/main.sass',
|
27
|
+
c.file 'stylesheets/main.sass', '@import "base"'
|
28
28
|
c.file 'stylesheets/_base.sass', "#header\n font-size: 36px"
|
29
29
|
stylesheet.render.should == "#header {\n font-size: 36px; }\n"
|
30
30
|
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: massimo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 8
|
8
|
-
- 4
|
9
|
-
version: 0.8.4
|
4
|
+
prerelease:
|
5
|
+
version: 0.8.5
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Pete Browne
|
@@ -14,8 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
18
|
-
default_executable:
|
13
|
+
date: 2011-05-23 00:00:00 Z
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: activesupport
|
@@ -25,10 +20,6 @@ dependencies:
|
|
25
20
|
requirements:
|
26
21
|
- - ~>
|
27
22
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 3
|
30
|
-
- 0
|
31
|
-
- 0
|
32
23
|
version: 3.0.0
|
33
24
|
type: :runtime
|
34
25
|
version_requirements: *id001
|
@@ -40,10 +31,6 @@ dependencies:
|
|
40
31
|
requirements:
|
41
32
|
- - ~>
|
42
33
|
- !ruby/object:Gem::Version
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
- 4
|
46
|
-
- 0
|
47
34
|
version: 0.4.0
|
48
35
|
type: :runtime
|
49
36
|
version_requirements: *id002
|
@@ -55,10 +42,6 @@ dependencies:
|
|
55
42
|
requirements:
|
56
43
|
- - ~>
|
57
44
|
- !ruby/object:Gem::Version
|
58
|
-
segments:
|
59
|
-
- 1
|
60
|
-
- 2
|
61
|
-
- 0
|
62
45
|
version: 1.2.0
|
63
46
|
type: :runtime
|
64
47
|
version_requirements: *id003
|
@@ -70,10 +53,6 @@ dependencies:
|
|
70
53
|
requirements:
|
71
54
|
- - ~>
|
72
55
|
- !ruby/object:Gem::Version
|
73
|
-
segments:
|
74
|
-
- 0
|
75
|
-
- 9
|
76
|
-
- 0
|
77
56
|
version: 0.9.0
|
78
57
|
type: :runtime
|
79
58
|
version_requirements: *id004
|
@@ -85,10 +64,6 @@ dependencies:
|
|
85
64
|
requirements:
|
86
65
|
- - ~>
|
87
66
|
- !ruby/object:Gem::Version
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
- 14
|
91
|
-
- 0
|
92
67
|
version: 0.14.0
|
93
68
|
type: :runtime
|
94
69
|
version_requirements: *id005
|
@@ -100,11 +75,7 @@ dependencies:
|
|
100
75
|
requirements:
|
101
76
|
- - ~>
|
102
77
|
- !ruby/object:Gem::Version
|
103
|
-
|
104
|
-
- 1
|
105
|
-
- 2
|
106
|
-
- 0
|
107
|
-
version: 1.2.0
|
78
|
+
version: 1.3.1
|
108
79
|
type: :runtime
|
109
80
|
version_requirements: *id006
|
110
81
|
- !ruby/object:Gem::Dependency
|
@@ -115,223 +86,174 @@ dependencies:
|
|
115
86
|
requirements:
|
116
87
|
- - ~>
|
117
88
|
- !ruby/object:Gem::Version
|
118
|
-
segments:
|
119
|
-
- 0
|
120
|
-
- 3
|
121
|
-
- 0
|
122
89
|
version: 0.3.0
|
123
90
|
type: :runtime
|
124
91
|
version_requirements: *id007
|
125
92
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
93
|
+
name: sprockets
|
127
94
|
prerelease: false
|
128
95
|
requirement: &id008 !ruby/object:Gem::Requirement
|
129
96
|
none: false
|
130
97
|
requirements:
|
131
98
|
- - ~>
|
132
99
|
- !ruby/object:Gem::Version
|
133
|
-
|
134
|
-
|
135
|
-
- 4
|
136
|
-
- 0
|
137
|
-
version: 2.4.0
|
138
|
-
type: :development
|
100
|
+
version: 1.0.0
|
101
|
+
type: :runtime
|
139
102
|
version_requirements: *id008
|
140
103
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
104
|
+
name: rspec
|
142
105
|
prerelease: false
|
143
106
|
requirement: &id009 !ruby/object:Gem::Requirement
|
144
107
|
none: false
|
145
108
|
requirements:
|
146
109
|
- - ~>
|
147
110
|
- !ruby/object:Gem::Version
|
148
|
-
|
149
|
-
- 1
|
150
|
-
- 0
|
151
|
-
- 0
|
152
|
-
version: 1.0.0
|
111
|
+
version: 2.5.0
|
153
112
|
type: :development
|
154
113
|
version_requirements: *id009
|
155
114
|
- !ruby/object:Gem::Dependency
|
156
|
-
name:
|
115
|
+
name: rr
|
157
116
|
prerelease: false
|
158
117
|
requirement: &id010 !ruby/object:Gem::Requirement
|
159
118
|
none: false
|
160
119
|
requirements:
|
161
120
|
- - ~>
|
162
121
|
- !ruby/object:Gem::Version
|
163
|
-
|
164
|
-
- 1
|
165
|
-
- 2
|
166
|
-
- 0
|
167
|
-
version: 1.2.0
|
122
|
+
version: 1.0.0
|
168
123
|
type: :development
|
169
124
|
version_requirements: *id010
|
170
125
|
- !ruby/object:Gem::Dependency
|
171
|
-
name:
|
126
|
+
name: test-construct
|
172
127
|
prerelease: false
|
173
128
|
requirement: &id011 !ruby/object:Gem::Requirement
|
174
129
|
none: false
|
175
130
|
requirements:
|
176
131
|
- - ~>
|
177
132
|
- !ruby/object:Gem::Version
|
178
|
-
|
179
|
-
- 0
|
180
|
-
- 5
|
181
|
-
- 0
|
182
|
-
version: 0.5.0
|
133
|
+
version: 1.2.0
|
183
134
|
type: :development
|
184
135
|
version_requirements: *id011
|
185
136
|
- !ruby/object:Gem::Dependency
|
186
|
-
name:
|
137
|
+
name: rack-test
|
187
138
|
prerelease: false
|
188
139
|
requirement: &id012 !ruby/object:Gem::Requirement
|
189
140
|
none: false
|
190
141
|
requirements:
|
191
142
|
- - ~>
|
192
143
|
- !ruby/object:Gem::Version
|
193
|
-
|
194
|
-
- 0
|
195
|
-
- 9
|
196
|
-
- 0
|
197
|
-
version: 0.9.0
|
144
|
+
version: 0.5.0
|
198
145
|
type: :development
|
199
146
|
version_requirements: *id012
|
200
147
|
- !ruby/object:Gem::Dependency
|
201
|
-
name:
|
148
|
+
name: unindent
|
202
149
|
prerelease: false
|
203
150
|
requirement: &id013 !ruby/object:Gem::Requirement
|
204
151
|
none: false
|
205
152
|
requirements:
|
206
153
|
- - ~>
|
207
154
|
- !ruby/object:Gem::Version
|
208
|
-
|
209
|
-
- 3
|
210
|
-
- 0
|
211
|
-
- 0
|
212
|
-
version: 3.0.0
|
155
|
+
version: 0.9.0
|
213
156
|
type: :development
|
214
157
|
version_requirements: *id013
|
215
158
|
- !ruby/object:Gem::Dependency
|
216
|
-
name:
|
159
|
+
name: haml
|
217
160
|
prerelease: false
|
218
161
|
requirement: &id014 !ruby/object:Gem::Requirement
|
219
162
|
none: false
|
220
163
|
requirements:
|
221
164
|
- - ~>
|
222
165
|
- !ruby/object:Gem::Version
|
223
|
-
|
224
|
-
- 1
|
225
|
-
- 2
|
226
|
-
- 0
|
227
|
-
version: 1.2.0
|
166
|
+
version: 3.1.0
|
228
167
|
type: :development
|
229
168
|
version_requirements: *id014
|
230
169
|
- !ruby/object:Gem::Dependency
|
231
|
-
name:
|
170
|
+
name: sass
|
232
171
|
prerelease: false
|
233
172
|
requirement: &id015 !ruby/object:Gem::Requirement
|
234
173
|
none: false
|
235
174
|
requirements:
|
236
175
|
- - ~>
|
237
176
|
- !ruby/object:Gem::Version
|
238
|
-
|
239
|
-
- 0
|
240
|
-
- 3
|
241
|
-
- 0
|
242
|
-
version: 0.3.0
|
177
|
+
version: 3.1.0
|
243
178
|
type: :development
|
244
179
|
version_requirements: *id015
|
245
180
|
- !ruby/object:Gem::Dependency
|
246
|
-
name:
|
181
|
+
name: less
|
247
182
|
prerelease: false
|
248
183
|
requirement: &id016 !ruby/object:Gem::Requirement
|
249
184
|
none: false
|
250
185
|
requirements:
|
251
186
|
- - ~>
|
252
187
|
- !ruby/object:Gem::Version
|
253
|
-
|
254
|
-
- 1
|
255
|
-
- 0
|
256
|
-
- 0
|
257
|
-
version: 1.0.0
|
188
|
+
version: 1.2.0
|
258
189
|
type: :development
|
259
190
|
version_requirements: *id016
|
260
191
|
- !ruby/object:Gem::Dependency
|
261
|
-
name:
|
192
|
+
name: coffee-script
|
262
193
|
prerelease: false
|
263
194
|
requirement: &id017 !ruby/object:Gem::Requirement
|
264
195
|
none: false
|
265
196
|
requirements:
|
266
197
|
- - ~>
|
267
198
|
- !ruby/object:Gem::Version
|
268
|
-
|
269
|
-
- 1
|
270
|
-
- 0
|
271
|
-
- 0
|
272
|
-
version: 1.0.0
|
199
|
+
version: 2.2.0
|
273
200
|
type: :development
|
274
201
|
version_requirements: *id017
|
275
202
|
- !ruby/object:Gem::Dependency
|
276
|
-
name:
|
203
|
+
name: jsmin
|
277
204
|
prerelease: false
|
278
205
|
requirement: &id018 !ruby/object:Gem::Requirement
|
279
206
|
none: false
|
280
207
|
requirements:
|
281
208
|
- - ~>
|
282
209
|
- !ruby/object:Gem::Version
|
283
|
-
|
284
|
-
- 3
|
285
|
-
- 1
|
286
|
-
- 0
|
287
|
-
version: 3.1.0
|
210
|
+
version: 1.0.0
|
288
211
|
type: :development
|
289
212
|
version_requirements: *id018
|
290
213
|
- !ruby/object:Gem::Dependency
|
291
|
-
name:
|
214
|
+
name: packr
|
292
215
|
prerelease: false
|
293
216
|
requirement: &id019 !ruby/object:Gem::Requirement
|
294
217
|
none: false
|
295
218
|
requirements:
|
296
219
|
- - ~>
|
297
220
|
- !ruby/object:Gem::Version
|
298
|
-
|
299
|
-
- 0
|
300
|
-
- 9
|
301
|
-
- 0
|
302
|
-
version: 0.9.0
|
221
|
+
version: 3.1.0
|
303
222
|
type: :development
|
304
223
|
version_requirements: *id019
|
305
224
|
- !ruby/object:Gem::Dependency
|
306
|
-
name:
|
225
|
+
name: yui-compressor
|
307
226
|
prerelease: false
|
308
227
|
requirement: &id020 !ruby/object:Gem::Requirement
|
309
228
|
none: false
|
310
229
|
requirements:
|
311
230
|
- - ~>
|
312
231
|
- !ruby/object:Gem::Version
|
313
|
-
|
314
|
-
- 0
|
315
|
-
- 3
|
316
|
-
- 0
|
317
|
-
version: 0.3.0
|
232
|
+
version: 0.9.0
|
318
233
|
type: :development
|
319
234
|
version_requirements: *id020
|
320
235
|
- !ruby/object:Gem::Dependency
|
321
|
-
name:
|
236
|
+
name: closure-compiler
|
322
237
|
prerelease: false
|
323
238
|
requirement: &id021 !ruby/object:Gem::Requirement
|
324
239
|
none: false
|
325
240
|
requirements:
|
326
241
|
- - ~>
|
327
242
|
- !ruby/object:Gem::Version
|
328
|
-
|
329
|
-
- 1
|
330
|
-
- 0
|
331
|
-
- 0
|
332
|
-
version: 1.0.0
|
243
|
+
version: 0.3.0
|
333
244
|
type: :development
|
334
245
|
version_requirements: *id021
|
246
|
+
- !ruby/object:Gem::Dependency
|
247
|
+
name: growl
|
248
|
+
prerelease: false
|
249
|
+
requirement: &id022 !ruby/object:Gem::Requirement
|
250
|
+
none: false
|
251
|
+
requirements:
|
252
|
+
- - ~>
|
253
|
+
- !ruby/object:Gem::Version
|
254
|
+
version: 1.0.0
|
255
|
+
type: :development
|
256
|
+
version_requirements: *id022
|
335
257
|
description: Massimo builds HTML, Javascript, and CSS Files from your source.
|
336
258
|
email: me@petebrowne.com
|
337
259
|
executables:
|
@@ -388,7 +310,6 @@ files:
|
|
388
310
|
- spec/spec_helper.rb
|
389
311
|
- spec/support/matchers/be_a_directory_matcher.rb
|
390
312
|
- spec/support/matchers/be_a_file_matcher.rb
|
391
|
-
has_rdoc: true
|
392
313
|
homepage: http://massimo.petebrowne.com/
|
393
314
|
licenses: []
|
394
315
|
|
@@ -402,21 +323,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
402
323
|
requirements:
|
403
324
|
- - ">="
|
404
325
|
- !ruby/object:Gem::Version
|
405
|
-
segments:
|
406
|
-
- 0
|
407
326
|
version: "0"
|
408
327
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
409
328
|
none: false
|
410
329
|
requirements:
|
411
330
|
- - ">="
|
412
331
|
- !ruby/object:Gem::Version
|
413
|
-
segments:
|
414
|
-
- 0
|
415
332
|
version: "0"
|
416
333
|
requirements: []
|
417
334
|
|
418
335
|
rubyforge_project: massimo
|
419
|
-
rubygems_version: 1.
|
336
|
+
rubygems_version: 1.7.2
|
420
337
|
signing_key:
|
421
338
|
specification_version: 3
|
422
339
|
summary: Massimo is a static website builder.
|