massimo 0.4.3 → 0.4.4

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/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
- source "http://gemcutter.org"
2
- source "http://gems.github.com"
1
+ source "http://rubygems.org"
3
2
 
4
3
  gem "activesupport", ">= 3.0.0.beta"
4
+ gem "warden", ">= 0.10.1" # needed for sinatra_more
5
5
  gem "sinatra_more", ">= 0.3.39"
6
6
  gem "directory_watcher", ">= 1.3.1"
7
7
  gem "sprockets", ">= 1.0.2"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.3
1
+ 0.4.4
@@ -1,8 +1,8 @@
1
- require "optparse"
2
- require "yaml"
3
1
  require "active_support/backtrace_cleaner"
4
2
  require "active_support/core_ext/hash/keys"
5
3
  begin require "growl"; rescue LoadError; end
4
+ require "optparse"
5
+ require "yaml"
6
6
 
7
7
  module Massimo
8
8
  class Command
@@ -1,3 +1,5 @@
1
+ begin require "sinatra_more"; rescue LoadError; end
2
+
1
3
  module Massimo
2
4
  class Helpers
3
5
  if defined? SinatraMore
@@ -1,3 +1,7 @@
1
+ require "jsmin"
2
+ require "sprockets"
3
+ require "massimo/resource/base"
4
+
1
5
  module Massimo
2
6
  class Javascript < Massimo::Resource::Base
3
7
  processable!
data/lib/massimo/page.rb CHANGED
@@ -1,3 +1,8 @@
1
+ require "active_support/inflector"
2
+ require "pathname"
3
+ require "yaml"
4
+ require "massimo/view"
5
+
1
6
  module Massimo
2
7
  class Page < Massimo::View
3
8
  META_SEP = %r/\A---\s*(?:\r\n|\n)?\z/ # :nodoc:
@@ -1,11 +1,13 @@
1
+ require "active_support/inflector"
2
+ require "pathname"
1
3
  require "massimo/resource/processing"
2
4
  require "massimo/resource/collection"
3
5
 
4
6
  module Massimo
5
7
  module Resource
6
8
  class Base
7
- include Massimo::Resource::Processing
8
- extend Massimo::Resource::Collection
9
+ include Processing
10
+ extend Collection
9
11
 
10
12
  attr_reader :source_path, :body
11
13
 
@@ -1,3 +1,6 @@
1
+ require "fileutils"
2
+ require "pathname"
3
+
1
4
  module Massimo
2
5
  module Resource
3
6
  module Processing
data/lib/massimo/site.rb CHANGED
@@ -1,3 +1,9 @@
1
+ require "active_support/inflector"
2
+ require "active_support/core_ext/hash/keys"
3
+ require "singleton"
4
+ # require "massimo/helpers"
5
+ # require "massimo/view"
6
+
1
7
  module Massimo
2
8
  class Site
3
9
  include Singleton
@@ -116,8 +122,10 @@ module Massimo
116
122
  # Reload the given files and an Array of the reloaded Constants.
117
123
  def reload_files(files)
118
124
  files.collect do |file|
125
+ class_name = File.basename(file).gsub(File.extname(file), "").classify
126
+ Object.class_eval { remove_const(class_name) if const_defined?(class_name) }
119
127
  load(file)
120
- File.basename(file).gsub(File.extname(file), "").classify.constantize rescue nil
128
+ class_name.constantize rescue nil
121
129
  end
122
130
  end
123
131
  end
@@ -1,3 +1,6 @@
1
+ require "pathname"
2
+ require "massimo/resource/base"
3
+
1
4
  module Massimo
2
5
  class Stylesheet < Massimo::Resource::Base
3
6
  processable!
@@ -1,3 +1,5 @@
1
+ require "tilt"
2
+
1
3
  module Tilt
2
4
  register :html, Tilt::ERBTemplate
3
5
  register :php, Tilt::ERBTemplate
data/lib/massimo/view.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require "tilt"
2
+ require "massimo/resource/base"
3
+
1
4
  module Massimo
2
5
  class View < Massimo::Resource::Base
3
6
  attr_reader :meta_data
@@ -18,9 +21,15 @@ module Massimo
18
21
 
19
22
  # All undefined methods are sent to the `@meta_data` hash.
20
23
  def method_missing(method, *args, &block)
21
- if method.to_s.match(/(.*)\=$/) && args.length == 1
22
- @meta_data[$1.to_sym] = args.first
23
- elsif args.empty? && @meta_data.key?(method)
24
+ case args.length
25
+ when 1
26
+ method_name = method.to_s
27
+ if method_name.chomp!('=')
28
+ @meta_data[method_name.to_sym] = args.first
29
+ else
30
+ super
31
+ end
32
+ when 0
24
33
  @meta_data[method]
25
34
  else
26
35
  super
data/lib/massimo.rb CHANGED
@@ -1,18 +1,6 @@
1
- # Rubygems
2
- require "rubygems"
1
+ libdir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
3
3
 
4
- # External
5
- require "pathname"
6
- require "fileutils"
7
- require "singleton"
8
- require "active_support/inflector"
9
- require "active_support/core_ext/hash/keys"
10
- require "sinatra_more"
11
- require "sprockets"
12
- require "jsmin"
13
- require "tilt"
14
-
15
- # Internal
16
4
  require "massimo/helpers"
17
5
  require "massimo/templates"
18
6
  require "massimo/site"
@@ -28,7 +16,7 @@ module Massimo
28
16
  # instance.
29
17
  def self.Site(options = {})
30
18
  return @site if defined?(@site) && options.empty?
31
- @site = Massimo::Site.instance.setup(options)
19
+ @site = Site.instance.setup(options)
32
20
  end
33
21
 
34
22
  # All the avaiable Resource types
data/massimo.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{massimo}
8
- s.version = "0.4.3"
8
+ s.version = "0.4.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Peter Browne"]
12
- s.date = %q{2010-03-29}
12
+ s.date = %q{2010-03-30}
13
13
  s.default_executable = %q{massimo}
14
14
  s.description = %q{Massimo builds HTML, Javascript, and CSS Files from your source.}
15
15
  s.email = %q{me@petebrowne.com}
data/test/helper.rb CHANGED
@@ -1,36 +1,40 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
1
+ testdir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift(testdir) unless $LOAD_PATH.include?(testdir)
3
+
4
+ libdir = File.expand_path("../../lib", __FILE__)
5
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
2
6
 
3
7
  require "rubygems"
8
+ require "massimo"
4
9
  require "test/unit"
5
- require "shoulda"
6
- # begin require "redgreen"; rescue LoadError; end
7
- begin require "turn"; rescue LoadError; end
8
10
  require "assertions"
11
+ require "shoulda"
9
12
  require "rr"
10
13
 
11
- # Load Massimo
12
- require File.expand_path("../../lib/massimo", __FILE__)
14
+ begin
15
+ require "turn"
16
+ rescue LoadError
17
+ begin require "redgreen"; rescue LoadError; end
18
+ end
13
19
 
14
20
  class Test::Unit::TestCase
15
21
  include Assertions
16
22
  include RR::Adapters::TestUnit
17
23
 
18
- #
19
24
  def source_dir(*subdirs)
20
25
  File.join("./test/source", *subdirs)
21
26
  end
22
27
 
23
- #
24
28
  def output_dir(*subdirs)
25
29
  File.join("./test/output", *subdirs)
26
30
  end
27
31
 
28
- #
32
+ # Clears all the output files created during tests.
29
33
  def clear_output
30
34
  FileUtils.rm_rf(output_dir)
31
35
  end
32
36
 
33
- #
37
+ # Create a new Site instance
34
38
  def site(options = {})
35
39
  @site = ::Massimo::Site({
36
40
  :source => source_dir,
@@ -39,19 +43,19 @@ class Test::Unit::TestCase
39
43
  }.merge(options))
40
44
  end
41
45
 
42
- #
46
+ # Creates a Page instance for the given path
43
47
  def page(*path)
44
48
  @page ||= ::Massimo::Page.new(source_dir("pages", *path))
45
49
  end
46
50
 
47
- #
51
+ # Creates a View Instance for the given path
48
52
  def view(*path)
49
53
  return @view if defined?(@view)
50
54
  meta_data = path.extract_options!
51
55
  @view = ::Massimo::View.new(source_dir("views", *path), meta_data)
52
56
  end
53
57
 
54
- #
58
+ # All the Page paths in the source dir
55
59
  def source_page_paths
56
60
  @source_page_paths ||= Pathname.glob(source_dir("pages/**/*")).
57
61
  reject { |p| p.basename.to_s =~ /^_/ || File.directory?(p) }.
data/test/test_view.rb CHANGED
@@ -43,8 +43,8 @@ class TestView < Test::Unit::TestCase
43
43
  assert_equal "test", @view.new_data
44
44
  end
45
45
 
46
- should "still raise NoMethodError when accessing non-existent meta_data properties" do
47
- assert_raise(::NoMethodError) { @view.non_existent_prop }
46
+ should "still return nil when accessing non-existent meta_data properties" do
47
+ assert_nil @view.non_existent_prop
48
48
  end
49
49
  end
50
50
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 4
8
- - 3
9
- version: 0.4.3
8
+ - 4
9
+ version: 0.4.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Peter Browne
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-29 00:00:00 -05:00
17
+ date: 2010-03-30 00:00:00 -05:00
18
18
  default_executable: massimo
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency