wormwood 0.0.2 → 0.0.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/README.md CHANGED
@@ -2,15 +2,21 @@
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 (_raw_ 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).
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
6
 
7
7
 
8
8
  ## Usage
9
9
 
10
- 1. Create a _raw_ directory
11
- 2. Create a _public_ directory
12
- 3. Run `wormwood`
13
- 4. Edit files in _raw_ and observe the changes rendered in _public_
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_
13
+
14
+
15
+ ## Configuration
16
+
17
+ You can specify _source_ and _destination_ directories as options. For example:
18
+
19
+ wormwood -s templates -d public
14
20
 
15
21
 
16
22
  ## Installation
data/bin/wormwood CHANGED
@@ -10,7 +10,7 @@ program :description, 'Wormwood is an event-driven file rendering utility inspir
10
10
  default_command :watch
11
11
 
12
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 ./public)'
13
+ global_option '-d', '--destination [DIR]', 'Writes to specified directory path (defaults to ./)'
14
14
 
15
15
  command :watch do |c|
16
16
  c.syntax = 'wormwood [options]'
@@ -18,7 +18,7 @@ command :watch do |c|
18
18
  c.action do |args, options|
19
19
  options.default \
20
20
  :source => './',
21
- :destination => './public'
21
+ :destination => './'
22
22
  Wormwood.watch(options)
23
23
  end
24
24
  end
@@ -1,3 +1,3 @@
1
1
  module Wormwood
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/wormwood.rb CHANGED
@@ -1,13 +1,16 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require 'wormwood/version'
2
3
  require 'directory_watcher'
4
+ require 'fileutils'
3
5
  require 'tilt'
4
6
 
5
7
  module Wormwood
8
+ GLOB = '**/*.{erb,rhtml,markdown,mkd,md}'
6
9
 
7
10
  # ref: https://github.com/mojombo/jekyll/blob/master/lib/jekyll/commands/build.rb
8
11
  # ref: https://github.com/TwP/directory_watcher/blob/master/lib/directory_watcher.rb
9
12
  def self.watch(options)
10
- dw = DirectoryWatcher.new(options.source)
13
+ dw = DirectoryWatcher.new(options.source, :glob => GLOB, :pre_load => true)
11
14
  dw.interval = 1
12
15
  dw.add_observer do |*events|
13
16
  build events.collect{|e| e.path}, options
@@ -18,14 +21,12 @@ module Wormwood
18
21
  end
19
22
 
20
23
  def self.build paths, options
21
- paths.each do |path|
22
- begin
23
- File.write \
24
- "#{options.destination}/#{File.basename(path, ".*")}.html",
25
- Tilt.new(path).render
26
- rescue Exception => e
27
- puts "wormwood build error: #{e.inspect}"
28
- end
24
+ 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
27
+ File.write \
28
+ "#{dest_path}/#{File.basename(source_path, ".*")}.html",
29
+ Tilt.new(source_path).render
29
30
  end
30
31
  end
31
32
 
@@ -6,7 +6,9 @@ describe Wormwood do
6
6
  end
7
7
 
8
8
  it "writes to the correct destination" do
9
- Wormwood.build [source_dir("foo.erb")], {'source' => source_dir, 'destination' => dest_dir}
9
+ Wormwood.build \
10
+ [source_dir("foo.erb")],
11
+ OpenStruct.new({'source' => source_dir, 'destination' => dest_dir})
10
12
  assert File.exist?(dest_dir('foo.html'))
11
13
  end
12
14
  end
data/test/test_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'minitest/autorun'
2
2
  require 'minitest/pride'
3
3
  require 'fileutils'
4
+ require 'ostruct'
4
5
  require_relative '../lib/wormwood.rb'
5
6
 
6
7
  def create_source
data/wormwood.gemspec CHANGED
@@ -3,16 +3,15 @@ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'wormwood/version'
5
5
 
6
-
7
6
  Gem::Specification.new do |gem|
8
7
  gem.name = "wormwood"
9
8
  gem.version = Wormwood::VERSION
10
9
  gem.authors = ["Erik Eldridge"]
11
10
  gem.email = "contact@erikeldridge.com"
12
11
  gem.description = "Wormwood is an event-driven file rendering utility inspired by Jekyll."
13
- gem.summary = "Wormwood watches for changes to a template directory (\"raw\" by default), "+
12
+ gem.summary = "Wormwood watches for changes to a template directory (\"./\" by default), "+
14
13
  "renders the changed files (via Tilt), and writes the rendered output to "+
15
- "an output directory (\"public\" by default)."
14
+ "an output directory (\"./\" by default)."
16
15
  gem.homepage = "http://github.com/erikeldridge/wormwood"
17
16
 
18
17
  gem.files = `git ls-files`.split($/)
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.2
4
+ version: 0.0.4
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-25 00:00:00.000000000 Z
12
+ date: 2013-02-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: commander
@@ -100,9 +100,9 @@ rubyforge_project:
100
100
  rubygems_version: 1.8.24
101
101
  signing_key:
102
102
  specification_version: 3
103
- summary: Wormwood watches for changes to a template directory ("raw" by default),
104
- renders the changed files (via Tilt), and writes the rendered output to an output
105
- directory ("public" by default).
103
+ summary: Wormwood watches for changes to a template directory ("./" by default), renders
104
+ the changed files (via Tilt), and writes the rendered output to an output directory
105
+ ("./" by default).
106
106
  test_files:
107
107
  - test/lib/wormwood/build_test.rb
108
108
  - test/test_helper.rb