wormwood 0.0.5 → 0.0.6

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/.gitignore CHANGED
@@ -3,6 +3,7 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
+ .DS_Store
6
7
  Gemfile.lock
7
8
  InstalledFiles
8
9
  _yardoc
data/README.md CHANGED
@@ -2,14 +2,18 @@
2
2
 
3
3
  Wormwood is an event-driven file rendering utility inspired by [Jekyll](https://github.com/mojombo/jekyll).
4
4
 
5
- Wormwood watches for changes to a template directory ( _./_ by default), renders the changed files (via [Tilt](https://github.com/rtomayko/tilt)), and writes the rendered output to an output directory ( _public_ by default).
6
-
5
+ Wormwood:
6
+ 1. watches for changes to a template directory ( _./_ by default)
7
+ 2. renders the changed files (via [Tilt](https://github.com/rtomayko/tilt))
8
+ 3. writes the rendered output to an output directory ( _./_ by default).
7
9
 
8
10
  ## Usage
9
11
 
10
- 1. Create a file [Tilt](https://github.com/rtomayko/tilt)) knows how to render, e.g., _foo.erb_
11
- 2. Run `wormwood`
12
- 3. Edit _foo.erb_ and observe changes applied to _foo.html_
12
+ 1. Create a file [Tilt](https://github.com/rtomayko/tilt) knows how to render, e.g., _foo.erb_
13
+ 2. Create a file named "layout" in the same directory, with a Tilt-supported extension, e.g., _layout.erb_
14
+ 3. Reference _content_ in the layout, e.g., `<%= content %>`
15
+ 4. Run `wormwood`
16
+ 5. Edit _foo.erb_ and observe changes applied to _foo.html_
13
17
 
14
18
 
15
19
  ## Configuration
@@ -18,6 +22,12 @@ You can specify _source_ and _destination_ directories as options. For example:
18
22
 
19
23
  wormwood -s templates -d public
20
24
 
25
+ Other options:
26
+
27
+ `--layout` specifies the layout file name (without the extension), e.g., `wormwood --layout default`. Defaults to "layout".
28
+
29
+ `--variable` specifies the variable name used to insert the rendered content into the layout, e.g., `wormwood --variable yield`. Defaults to "content".
30
+
21
31
 
22
32
  ## Installation
23
33
 
data/bin/wormwood CHANGED
@@ -9,8 +9,10 @@ program :description, 'Event-driven template rendering inspired by Jekyll.'
9
9
 
10
10
  default_command :watch
11
11
 
12
- global_option '-s', '--source [DIR]', 'Watches specified directory path (defaults to ./)'
13
- global_option '-d', '--destination [DIR]', 'Writes to specified directory path (defaults to ./)'
12
+ global_option '--source [DIR]', 'Watches specified directory path (defaults to "./")'
13
+ global_option '--destination [DIR]', 'Writes to specified directory path (defaults to "./")'
14
+ global_option '--layout [NAME]', 'The layout file name (defaults to "layout")'
15
+ global_option '--variable [NAME]', 'The layout variable name (defaults to "content")'
14
16
 
15
17
  command :watch do |c|
16
18
  c.syntax = 'wormwood watch [options]'
@@ -18,7 +20,9 @@ command :watch do |c|
18
20
  c.action do |args, options|
19
21
  options.default \
20
22
  :source => './',
21
- :destination => './'
23
+ :destination => './',
24
+ :layout => 'layout',
25
+ :variable => 'content'
22
26
  Wormwood.watch(options)
23
27
  end
24
28
  end
@@ -29,7 +33,9 @@ command :build do |c|
29
33
  c.action do |args, options|
30
34
  options.default \
31
35
  :source => './',
32
- :destination => './'
36
+ :destination => './',
37
+ :layout => 'layout',
38
+ :variable => 'content'
33
39
  Wormwood.build(Dir[Wormwood::GLOB], options)
34
40
  end
35
41
  end
@@ -1,3 +1,3 @@
1
1
  module Wormwood
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/wormwood.rb CHANGED
@@ -21,12 +21,14 @@ module Wormwood
21
21
  end
22
22
 
23
23
  def self.build paths, options
24
+ layout_path = Dir.glob(File.join(options.source, "#{options.layout}*")).first
24
25
  paths.each do |source_path|
25
- dest_path = File.dirname(source_path).sub(options.source, options.destination)
26
- FileUtils.mkdir_p(dest_path) unless File.exists? dest_path
26
+ dest_path = File.join \
27
+ options.destination,
28
+ "#{File.basename(source_path, ".*")}.html"
27
29
  File.write \
28
- "#{dest_path}/#{File.basename(source_path, ".*")}.html",
29
- Tilt.new(source_path).render
30
+ dest_path,
31
+ Tilt.new(layout_path).render(nil, {options.variable => Tilt.new(source_path).render})
30
32
  end
31
33
  end
32
34
 
@@ -8,7 +8,13 @@ describe Wormwood do
8
8
  it "writes to the correct destination" do
9
9
  Wormwood.build \
10
10
  [source_dir("foo.erb")],
11
- OpenStruct.new({'source' => source_dir, 'destination' => dest_dir})
11
+ OpenStruct.new({
12
+ 'source' => source_dir,
13
+ 'destination' => dest_dir,
14
+ 'layout' => 'layout',
15
+ 'variable' => 'content'
16
+ })
12
17
  assert File.exist?(dest_dir('foo.html'))
18
+ assert "asd" == File.read(dest_dir('foo.html'))
13
19
  end
14
20
  end
data/test/test_helper.rb CHANGED
@@ -7,7 +7,8 @@ require_relative '../lib/wormwood.rb'
7
7
  def create_source
8
8
  unless File.exists? source_dir
9
9
  FileUtils.mkdir_p(source_dir)
10
- File.write(source_dir('foo.erb'), "content")
10
+ File.write(source_dir('layout.erb'), "<%= content %>")
11
+ File.write(source_dir('foo.erb'), "asd")
11
12
  end
12
13
  end
13
14
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wormwood
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-26 00:00:00.000000000 Z
12
+ date: 2013-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: commander