massimo 0.3.9

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