massimo 0.3.9

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.
Files changed (59) hide show
  1. data/.document +5 -0
  2. data/.gitignore +25 -0
  3. data/LICENSE +20 -0
  4. data/README.md +108 -0
  5. data/Rakefile +62 -0
  6. data/VERSION +1 -0
  7. data/bin/massimo +6 -0
  8. data/lib/massimo/command.rb +242 -0
  9. data/lib/massimo/helpers.rb +26 -0
  10. data/lib/massimo/javascript.rb +38 -0
  11. data/lib/massimo/page.rb +113 -0
  12. data/lib/massimo/resource.rb +52 -0
  13. data/lib/massimo/site.rb +186 -0
  14. data/lib/massimo/stylesheet.rb +46 -0
  15. data/lib/massimo/templates.rb +20 -0
  16. data/lib/massimo/view.rb +30 -0
  17. data/lib/massimo.rb +38 -0
  18. data/massimo.gemspec +130 -0
  19. data/test/assertions.rb +8 -0
  20. data/test/helper.rb +54 -0
  21. data/test/source/config.yml +4 -0
  22. data/test/source/helpers/test_helper.rb +5 -0
  23. data/test/source/javascripts/_plugin.js +1 -0
  24. data/test/source/javascripts/application.js +3 -0
  25. data/test/source/javascripts/lib.js +1 -0
  26. data/test/source/lib/site.rb +5 -0
  27. data/test/source/pages/_skipped_page.haml +0 -0
  28. data/test/source/pages/about_us.erb +5 -0
  29. data/test/source/pages/erb.erb +5 -0
  30. data/test/source/pages/erb_with_layout.erb +4 -0
  31. data/test/source/pages/feed.haml +6 -0
  32. data/test/source/pages/haml.haml +5 -0
  33. data/test/source/pages/html.html +4 -0
  34. data/test/source/pages/index.erb +4 -0
  35. data/test/source/pages/markdown.markdown +5 -0
  36. data/test/source/pages/posts/first-post.haml +1 -0
  37. data/test/source/pages/with_extension.haml +4 -0
  38. data/test/source/pages/with_meta_data.haml +7 -0
  39. data/test/source/pages/with_title.haml +4 -0
  40. data/test/source/pages/with_url.haml +4 -0
  41. data/test/source/pages/without_extension.haml +0 -0
  42. data/test/source/pages/without_meta_data.haml +1 -0
  43. data/test/source/pages/without_title.haml +1 -0
  44. data/test/source/pages/without_url.haml +1 -0
  45. data/test/source/stylesheets/_base.sass +2 -0
  46. data/test/source/stylesheets/application.sass +4 -0
  47. data/test/source/stylesheets/basic.css +3 -0
  48. data/test/source/stylesheets/less_file.less +5 -0
  49. data/test/source/views/layouts/application.haml +2 -0
  50. data/test/source/views/with_helper.haml +1 -0
  51. data/test/source/views/with_locals.haml +1 -0
  52. data/test/source/views/without_locals.haml +1 -0
  53. data/test/test_javascript.rb +30 -0
  54. data/test/test_page.rb +136 -0
  55. data/test/test_resource.rb +27 -0
  56. data/test/test_site.rb +126 -0
  57. data/test/test_stylesheet.rb +40 -0
  58. data/test/test_view.rb +46 -0
  59. metadata +191 -0
@@ -0,0 +1,4 @@
1
+ ---
2
+ url: /page-with-url
3
+ ---
4
+ %h1 A Page with a URL
File without changes
@@ -0,0 +1 @@
1
+ %h1 A Page without meta_data
@@ -0,0 +1 @@
1
+ %h1 A Page without a title
@@ -0,0 +1 @@
1
+ %h1 A Page without a URL
@@ -0,0 +1,2 @@
1
+ body
2
+ font-size: 12px
@@ -0,0 +1,4 @@
1
+ @import base.sass
2
+
3
+ #header
4
+ font-size: 36px
@@ -0,0 +1,3 @@
1
+ body {
2
+ font-size: 12px;
3
+ }
@@ -0,0 +1,5 @@
1
+ @brand_color: #4D926F;
2
+
3
+ #header {
4
+ color: @brand_color;
5
+ }
@@ -0,0 +1,2 @@
1
+ %title= page.title
2
+ %body= yield
@@ -0,0 +1 @@
1
+ %p= test_method
@@ -0,0 +1 @@
1
+ %h1= title
@@ -0,0 +1 @@
1
+ %h1 A Partial
@@ -0,0 +1,30 @@
1
+ require File.join(File.dirname(__FILE__), "helper")
2
+
3
+ class TestJavascript < Test::Unit::TestCase
4
+ context "A Site" do
5
+ setup { site() }
6
+
7
+ should "concat js using Sprockets" do
8
+ javascript = Massimo::Javascript.new(source_dir("javascripts", "application.js"))
9
+ assert_equal %{var plugin = "plugin";\n\nvar application = "application";\n}, javascript.render
10
+ end
11
+
12
+ context "processing Javascripts" do
13
+ should "output the js file to the javascripts dir" do
14
+ Massimo::Javascript.new(source_dir("javascripts", "application.js")).process!
15
+ assert_equal %{var plugin = "plugin";\n\nvar application = "application";\n}, File.read(output_dir("javascripts", "application.js"))
16
+ end
17
+
18
+ teardown { clear_output }
19
+ end
20
+ end
21
+
22
+ context "A Production Site" do
23
+ setup { site(:production => true) }
24
+
25
+ should "minify js" do
26
+ javascript = Massimo::Javascript.new(source_dir("javascripts", "application.js"))
27
+ assert_equal %{\nvar plugin="plugin";var application="application";}, javascript.render
28
+ end
29
+ end
30
+ end
data/test/test_page.rb ADDED
@@ -0,0 +1,136 @@
1
+ require File.join(File.dirname(__FILE__), "helper")
2
+
3
+ class TestPage < Test::Unit::TestCase
4
+ context "A Site" do
5
+ setup { site() }
6
+
7
+
8
+ context "Page without meta_data" do
9
+ setup { page("without_meta_data.haml") }
10
+
11
+ should "return a non-empty hash when calling meta_data" do
12
+ assert_instance_of Hash, @page.meta_data
13
+ assert !@page.meta_data.empty?
14
+ end
15
+ end
16
+
17
+ context "Page with meta_data" do
18
+ setup { page("with_meta_data.haml") }
19
+
20
+ should "return a non-empty hash when calling meta_data" do
21
+ assert_instance_of Hash, @page.meta_data
22
+ assert !@page.meta_data.empty?
23
+ end
24
+
25
+ should "be able to access meta_data directly through methods on the Page" do
26
+ assert_instance_of Array, @page.tags
27
+ end
28
+
29
+ should "be able to write new meta_data dynamically" do
30
+ @page.new_tag = "test"
31
+ assert_equal "test", @page.new_tag
32
+ end
33
+ end
34
+
35
+ context "Page with title" do
36
+ setup { page("with_title.haml") }
37
+
38
+ should "fetch the title from the meta_data" do
39
+ assert_equal "A Title", @page.title
40
+ end
41
+ end
42
+
43
+ context "Page without title" do
44
+ setup { page("without_title.haml") }
45
+
46
+ should "create the title from the file name" do
47
+ assert_equal "Without Title", @page.title
48
+ end
49
+ end
50
+
51
+ context "Page with extension" do
52
+ setup { page("with_extension.haml") }
53
+
54
+ should "fetch the extension from the meta_data" do
55
+ assert_equal ".rss", @page.extension
56
+ end
57
+ end
58
+
59
+ context "Page without extension" do
60
+ setup { page("without_extension.haml") }
61
+
62
+ should "default to .html" do
63
+ assert_equal ".html", @page.extension
64
+ end
65
+ end
66
+
67
+ context "Page with URL" do
68
+ setup { page("with_url.haml") }
69
+
70
+ should "fetch the extension from the meta_data" do
71
+ assert_equal "/page-with-url", @page.url
72
+ end
73
+ end
74
+
75
+ context "Page without URL" do
76
+ setup { page("without_url.haml") }
77
+
78
+ should "default to .html" do
79
+ assert_equal "/without-url", @page.url
80
+ end
81
+ end
82
+
83
+ should "fetch the body from the page file" do
84
+ assert_equal %{<h1>An <%= "HTML" %> Page</h1>}, page("about_us.erb").body
85
+ end
86
+
87
+ context "rendering Pages" do
88
+ context "without layouts" do
89
+
90
+ should "render erb content from the page file correctly" do
91
+ assert_equal "<h1>ERB</h1>", page("erb.erb").render
92
+ end
93
+
94
+ should "render haml content from the page file correctly" do
95
+ assert_equal "<h1>Haml</h1>\n", page("haml.haml").render
96
+ end
97
+
98
+ should "render markdown content from the page file correctly" do
99
+ assert_equal "<h1>Markdown</h1>\n", page("markdown.markdown").render
100
+ end
101
+
102
+ should "render html content from the page file correctly" do
103
+ assert_equal "<h1>HTML</h1>", page("html.html").render
104
+ end
105
+
106
+ end
107
+ context "with layouts" do
108
+
109
+ should "filter the content from the page file correctly" do
110
+ assert_equal "<title>ERB With Layout</title>\n<body><h1>ERB With Layout</h1></body>\n", page("erb_with_layout.erb").render
111
+ end
112
+ end
113
+ end
114
+
115
+ context "processing Pages" do
116
+
117
+ should "write the filtered body to a new file in the output dir" do
118
+ page("index.erb").process!
119
+ assert_equal File.read(output_dir("index.html")), page.render
120
+ end
121
+
122
+ should "write the filtered body to a new file using the extension in the meta_data" do
123
+ page("feed.haml").process!
124
+ assert_equal File.read(output_dir("feed.rss")), page.render(false)
125
+ end
126
+
127
+ should "write the filtered body to a new file with a pretty URL scheme in the output dir" do
128
+ page("about_us.erb").process!
129
+ assert_equal File.read(output_dir("about-us", "index.html")), page.render(false)
130
+ end
131
+
132
+ teardown { clear_output }
133
+
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,27 @@
1
+ require File.join(File.dirname(__FILE__), "helper")
2
+
3
+ class TestResource < Test::Unit::TestCase
4
+ context "A site" do
5
+ setup { site() }
6
+
7
+ should "raise an error when reading a non-existent resource" do
8
+ assert_raise Massimo::MissingResource do
9
+ Massimo::Resource.new("some/non-existent/file")
10
+ end
11
+ end
12
+
13
+ should "raise an error when reading an invalid resource" do
14
+ assert_raise Massimo::InvalidResource do
15
+ Massimo::Resource.new(source_dir("views", "layouts"))
16
+ end
17
+ end
18
+
19
+ should "have a method to get the resource's type (extension)" do
20
+ assert_equal Massimo::Resource.new(source_dir("pages", "about_us.erb")).resource_type, "erb"
21
+ end
22
+
23
+ should "render the resource files data" do
24
+ assert_equal Massimo::Resource.new(source_dir("pages", "without_meta_data.haml")).render, "%h1 A Page without meta_data"
25
+ end
26
+ end
27
+ end
data/test/test_site.rb ADDED
@@ -0,0 +1,126 @@
1
+ require File.join(File.dirname(__FILE__), "helper")
2
+
3
+ class TestSite < Test::Unit::TestCase
4
+
5
+ def source_page_paths
6
+ @source_page_paths ||= Pathname.glob(source_dir("pages", "**", "*")).
7
+ reject { |p| p.basename.to_s =~ /^_/ || File.directory?(p) }.
8
+ collect { |p| p.basename }
9
+ end
10
+
11
+ should "store configuration options" do
12
+ @site = Massimo::Site(
13
+ :source => "./source",
14
+ :output => "./output"
15
+ )
16
+ assert_equal "./source", @site.options[:source]
17
+ assert_equal "./output", @site.options[:output]
18
+ end
19
+
20
+ should "use default options unless specified" do
21
+ @site = Massimo::Site(:output => "./output")
22
+ assert_equal Massimo::Site::DEFAULT_OPTIONS[:source], @site.options[:source]
23
+ assert_equal "./output", @site.options[:output]
24
+ end
25
+
26
+ should "have refresh the configuration if new options are set" do
27
+ Massimo::Site(:souce => "/some/strange/dir", :output => "/the/wrong/dir")
28
+ @site = Massimo::Site(:output => "/the/wrong/dir")
29
+ assert_equal Massimo::Site::DEFAULT_OPTIONS[:source], @site.options[:source]
30
+ end
31
+
32
+ should "have methods for determining the environment" do
33
+ @site = Massimo::Site()
34
+ assert @site.development?
35
+ @site = Massimo::Site(:environment => :development)
36
+ assert @site.development?
37
+ @site = Massimo::Site(:environment => :production)
38
+ assert @site.production?
39
+ end
40
+
41
+ context "A Normal Site" do
42
+ setup { site() }
43
+
44
+ should "have a source_dir method" do
45
+ assert_equal source_dir("some", "path"), @site.source_dir("some", "path")
46
+ end
47
+
48
+ should "have a directory shortcut methods" do
49
+ assert_equal source_dir("pages", "some", "file.txt"), @site.pages_dir("some", "file.txt")
50
+ assert_equal source_dir("views", "some", "file.txt"), @site.views_dir("some", "file.txt")
51
+ assert_equal source_dir("stylesheets", "some", "file.txt"), @site.stylesheets_dir("some", "file.txt")
52
+ assert_equal source_dir("javascripts", "some", "file.txt"), @site.javascripts_dir("some", "file.txt")
53
+ end
54
+
55
+ should "have a output_dir method" do
56
+ assert_equal output_dir("some", "path"), @site.output_dir("some", "path")
57
+ end
58
+
59
+ should "render a view by name" do
60
+ assert_equal "<h1>Title</h1>\n", @site.render_view("with_locals", :title => "Title")
61
+ end
62
+
63
+ should "find all the pages in the pages dir" do
64
+ page_paths = @site.pages.collect { |page| page.source_path.basename }
65
+ assert_equal_arrays source_page_paths, page_paths
66
+ end
67
+
68
+ should "add helpers from the helpers directory" do
69
+ assert_equal "<p>working</p>\n", @site.render_view("with_helper")
70
+ end
71
+
72
+ should "require the lib directory for further customization" do
73
+ assert_equal "working", @site.new_method
74
+ end
75
+
76
+ context "processing Sites" do
77
+ setup { @site.process! }
78
+
79
+ should "process each page in the pages dir" do
80
+ output_page_paths = Dir.glob(output_dir("**", "*.{html,rss}"))
81
+ assert_equal source_page_paths.length, output_page_paths.length
82
+ end
83
+
84
+ should "process each stylesheet file in the stylesheets dir" do
85
+ assert File.exist?(output_dir("stylesheets", "application.css"))
86
+ assert File.exist?(output_dir("stylesheets", "less_file.css"))
87
+ assert File.exist?(output_dir("stylesheets", "basic.css"))
88
+ end
89
+
90
+ should "process each javascript file in the javascripts dir" do
91
+ assert File.exist?(output_dir("javascripts", "application.js"))
92
+ assert File.exist?(output_dir("javascripts", "lib.js"))
93
+ end
94
+
95
+ teardown { clear_output }
96
+ end
97
+ end
98
+
99
+ should "find only the pages set in the :pages option" do
100
+ only_pages = %w{about_us.erb feed.haml index.erb}
101
+ page_paths = Massimo::Site(:source => source_dir, :pages => only_pages).pages(true).collect { |page| page.source_path.basename }
102
+ assert_equal_arrays only_pages, page_paths
103
+ end
104
+
105
+ should "skip pages set in the :skip_pages option (as an Array)" do
106
+ skip_pages = %w{about_us.erb erb.erb erb_with_layout.erb feed.haml posts/first-post.haml haml.haml html.html index.erb markdown.markdown}
107
+ page_paths = Massimo::Site(:source => source_dir, :skip_pages => skip_pages).pages(true).collect { |page| page.source_path.basename }
108
+ assert_equal_arrays [
109
+ "with_extension.haml",
110
+ "with_meta_data.haml",
111
+ "with_title.haml",
112
+ "with_url.haml",
113
+ "without_extension.haml",
114
+ "without_meta_data.haml",
115
+ "without_title.haml",
116
+ "without_url.haml"
117
+ ], page_paths
118
+ end
119
+
120
+ should "skip pages set in the :skip_pages option (as a Proc)" do
121
+ site_options = { :source => source_dir, :skip_pages => lambda { |file| file.include?("with") } }
122
+ page_paths = Massimo::Site(site_options).pages(true).collect { |page| page.source_path.basename }
123
+ assert_equal_arrays %w{about_us.erb erb.erb feed.haml first-post.haml haml.haml html.html index.erb markdown.markdown}, page_paths
124
+ end
125
+
126
+ end
@@ -0,0 +1,40 @@
1
+ require File.join(File.dirname(__FILE__), "helper")
2
+
3
+ class TestStylesheet < Test::Unit::TestCase
4
+ context "A Site" do
5
+ setup { site() }
6
+
7
+ should "render CSS stylesheets" do
8
+ stylesheet = Massimo::Stylesheet.new(source_dir("stylesheets", "basic.css"))
9
+ assert_equal "body {\n font-size: 12px;\n}", stylesheet.render
10
+ end
11
+
12
+ should "render Sass stylesheets" do
13
+ stylesheet = Massimo::Stylesheet.new(source_dir("stylesheets", "application.sass"))
14
+ assert_equal "body {\n font-size: 12px; }\n\n#header {\n font-size: 36px; }\n", stylesheet.render
15
+ end
16
+
17
+ should "render Less stylesheets" do
18
+ stylesheet = Massimo::Stylesheet.new(source_dir("stylesheets", "less_file.less"))
19
+ assert_equal "#header { color: #4d926f; }\n", stylesheet.render
20
+ end
21
+
22
+ context "processing Stylesheets" do
23
+ should "output the css file to the stylesheets dir" do
24
+ Massimo::Stylesheet.new(source_dir("stylesheets", "application.sass")).process!
25
+ assert_equal "body {\n font-size: 12px; }\n\n#header {\n font-size: 36px; }\n", File.read(output_dir("stylesheets", "application.css"))
26
+ end
27
+
28
+ teardown { clear_output }
29
+ end
30
+ end
31
+
32
+ context "A Production Site" do
33
+ setup { site(:production => true)}
34
+
35
+ should "should compress Sass stylesheets" do
36
+ stylesheet = Massimo::Stylesheet.new(source_dir("stylesheets", "application.sass"))
37
+ assert_equal "body{font-size:12px}#header{font-size:36px}\n", stylesheet.render
38
+ end
39
+ end
40
+ end
data/test/test_view.rb ADDED
@@ -0,0 +1,46 @@
1
+ require File.join(File.dirname(__FILE__), "helper")
2
+
3
+ class TestView < Test::Unit::TestCase
4
+ context "A View with options" do
5
+ setup do
6
+ site(:haml => { :format => :xhtml })
7
+ view("without_locals.haml")
8
+ end
9
+
10
+ should "render through Tilt with the Site's options for the resource type" do
11
+ tilt = {}
12
+ stub(tilt).render
13
+ mock(Tilt).new(@view.file_name, 1, :format => :xhtml) { tilt }
14
+ @view.render
15
+ end
16
+ end
17
+
18
+ context "View without locals" do
19
+ setup { view("without_locals.haml") }
20
+
21
+ should "fetch the body from the view file" do
22
+ assert_equal "%h1 A Partial", @view.body
23
+ end
24
+
25
+ should "render the content from the view file correctly" do
26
+ assert_equal "<h1>A Partial</h1>\n", @view.render
27
+ end
28
+ end
29
+
30
+ context "View with locals" do
31
+ setup { view("with_locals.haml", :title => "A Partial") }
32
+
33
+ should "render the content from the page file correctly" do
34
+ assert_equal "<h1>A Partial</h1>\n", @view.render
35
+ end
36
+
37
+ should "be able to access meta_data directly" do
38
+ assert_equal "A Partial", @view.title
39
+ end
40
+
41
+ should "be able to write new meta_data dynamically" do
42
+ @view.new_data = "test"
43
+ assert_equal "test", @view.new_data
44
+ end
45
+ end
46
+ end
metadata ADDED
@@ -0,0 +1,191 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: massimo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.9
5
+ platform: ruby
6
+ authors:
7
+ - Peter Browne
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-24 00:00:00 -06:00
13
+ default_executable: massimo
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: shoulda
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.10.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: yard
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.5.2
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: activesupport
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.3.5
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: sinatra_more
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.3.26
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: directory_watcher
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.3.1
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: sprockets
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.0.2
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: jsmin
77
+ type: :runtime
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 1.0.1
84
+ version:
85
+ description: Massimo builds HTML, Javascript, and CSS Files from your source.
86
+ email: peter@peterbrowne.net
87
+ executables:
88
+ - massimo
89
+ extensions: []
90
+
91
+ extra_rdoc_files:
92
+ - LICENSE
93
+ - README.md
94
+ files:
95
+ - .document
96
+ - .gitignore
97
+ - LICENSE
98
+ - README.md
99
+ - Rakefile
100
+ - VERSION
101
+ - bin/massimo
102
+ - lib/massimo.rb
103
+ - lib/massimo/command.rb
104
+ - lib/massimo/helpers.rb
105
+ - lib/massimo/javascript.rb
106
+ - lib/massimo/page.rb
107
+ - lib/massimo/resource.rb
108
+ - lib/massimo/site.rb
109
+ - lib/massimo/stylesheet.rb
110
+ - lib/massimo/templates.rb
111
+ - lib/massimo/view.rb
112
+ - massimo.gemspec
113
+ - test/assertions.rb
114
+ - test/helper.rb
115
+ - test/source/config.yml
116
+ - test/source/helpers/test_helper.rb
117
+ - test/source/javascripts/_plugin.js
118
+ - test/source/javascripts/application.js
119
+ - test/source/javascripts/lib.js
120
+ - test/source/lib/site.rb
121
+ - test/source/pages/_skipped_page.haml
122
+ - test/source/pages/about_us.erb
123
+ - test/source/pages/erb.erb
124
+ - test/source/pages/erb_with_layout.erb
125
+ - test/source/pages/feed.haml
126
+ - test/source/pages/haml.haml
127
+ - test/source/pages/html.html
128
+ - test/source/pages/index.erb
129
+ - test/source/pages/markdown.markdown
130
+ - test/source/pages/posts/first-post.haml
131
+ - test/source/pages/with_extension.haml
132
+ - test/source/pages/with_meta_data.haml
133
+ - test/source/pages/with_title.haml
134
+ - test/source/pages/with_url.haml
135
+ - test/source/pages/without_extension.haml
136
+ - test/source/pages/without_meta_data.haml
137
+ - test/source/pages/without_title.haml
138
+ - test/source/pages/without_url.haml
139
+ - test/source/stylesheets/_base.sass
140
+ - test/source/stylesheets/application.sass
141
+ - test/source/stylesheets/basic.css
142
+ - test/source/stylesheets/less_file.less
143
+ - test/source/views/layouts/application.haml
144
+ - test/source/views/with_helper.haml
145
+ - test/source/views/with_locals.haml
146
+ - test/source/views/without_locals.haml
147
+ - test/test_javascript.rb
148
+ - test/test_page.rb
149
+ - test/test_resource.rb
150
+ - test/test_site.rb
151
+ - test/test_stylesheet.rb
152
+ - test/test_view.rb
153
+ has_rdoc: true
154
+ homepage: http://github.com/peterbrowne/massimo
155
+ licenses: []
156
+
157
+ post_install_message:
158
+ rdoc_options:
159
+ - --charset=UTF-8
160
+ require_paths:
161
+ - lib
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: "0"
167
+ version:
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: "0"
173
+ version:
174
+ requirements: []
175
+
176
+ rubyforge_project:
177
+ rubygems_version: 1.3.5
178
+ signing_key:
179
+ specification_version: 3
180
+ summary: Massimo is a static website builder.
181
+ test_files:
182
+ - test/assertions.rb
183
+ - test/helper.rb
184
+ - test/source/helpers/test_helper.rb
185
+ - test/source/lib/site.rb
186
+ - test/test_javascript.rb
187
+ - test/test_page.rb
188
+ - test/test_resource.rb
189
+ - test/test_site.rb
190
+ - test/test_stylesheet.rb
191
+ - test/test_view.rb