furnace 0.3.0 → 0.3.1
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/Rakefile +6 -4
- data/lib/furnace/ast/processor.rb +9 -9
- data/lib/furnace/version.rb +1 -1
- data/test/ast_test.rb +5 -0
- metadata +4 -4
data/Rakefile
CHANGED
@@ -3,6 +3,7 @@ require 'bundler/setup'
|
|
3
3
|
|
4
4
|
task :default => :test
|
5
5
|
|
6
|
+
desc "Run test suite"
|
6
7
|
task :test do
|
7
8
|
require 'bacon'
|
8
9
|
Bacon.summary_at_exit
|
@@ -13,9 +14,10 @@ end
|
|
13
14
|
|
14
15
|
PAGES_REPO = 'git@github.com:whitequark/furnace'
|
15
16
|
|
17
|
+
desc "Build and deploy documentation to GitHub pages"
|
16
18
|
task :pages do
|
17
|
-
system "git clone #{PAGES_REPO} gh-temp/ -b gh-pages; rm gh-temp/* -rf" or abort
|
18
|
-
system "yardoc -o gh-temp/;
|
19
|
-
system "cd gh-temp/; git push -f origin gh-pages" or abort
|
19
|
+
system "git clone #{PAGES_REPO} gh-temp/ -b gh-pages; rm gh-temp/* -rf; touch gh-temp/.nojekyll" or abort
|
20
|
+
system "yardoc -o gh-temp/; cp gh-temp/frames.html gh-temp/index.html; sed s,index.html,_index.html, -i gh-temp/index.html" or abort
|
21
|
+
system "cd gh-temp/; git add -A; git commit -m 'Updated pages.'; git push -f origin gh-pages" or abort
|
20
22
|
FileUtils.rm_rf 'gh-temp'
|
21
|
-
end
|
23
|
+
end
|
@@ -230,18 +230,18 @@ module Furnace::AST
|
|
230
230
|
# @param [AST::Node, nil] node
|
231
231
|
# @return [AST::Node]
|
232
232
|
def process(node)
|
233
|
-
|
234
|
-
# Invoke a specific handler
|
235
|
-
on_handler = :"on_#{node.type}"
|
236
|
-
if respond_to? on_handler
|
237
|
-
new_node = send on_handler, node
|
238
|
-
else
|
239
|
-
new_node = handler_missing(node)
|
240
|
-
end
|
233
|
+
node = node.to_ast
|
241
234
|
|
242
|
-
|
235
|
+
# Invoke a specific handler
|
236
|
+
on_handler = :"on_#{node.type}"
|
237
|
+
if respond_to? on_handler
|
238
|
+
new_node = send on_handler, node
|
239
|
+
else
|
240
|
+
new_node = handler_missing(node)
|
243
241
|
end
|
244
242
|
|
243
|
+
node = new_node if new_node
|
244
|
+
|
245
245
|
node
|
246
246
|
end
|
247
247
|
|
data/lib/furnace/version.rb
CHANGED
data/test/ast_test.rb
CHANGED
@@ -177,4 +177,9 @@ describe AST::Processor do
|
|
177
177
|
| (integer 3)))
|
178
178
|
SEXP
|
179
179
|
end
|
180
|
+
|
181
|
+
it 'should refuse to process non-nodes' do
|
182
|
+
-> { @processor.process(nil) }.should.raise NoMethodError, %r|to_ast|
|
183
|
+
-> { @processor.process([]) }.should.raise NoMethodError, %r|to_ast|
|
184
|
+
end
|
180
185
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: furnace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
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: 2012-
|
12
|
+
date: 2012-12-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -118,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
118
|
version: '0'
|
119
119
|
segments:
|
120
120
|
- 0
|
121
|
-
hash:
|
121
|
+
hash: -2809790994543949274
|
122
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
123
|
none: false
|
124
124
|
requirements:
|
@@ -127,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
127
|
version: '0'
|
128
128
|
segments:
|
129
129
|
- 0
|
130
|
-
hash:
|
130
|
+
hash: -2809790994543949274
|
131
131
|
requirements: []
|
132
132
|
rubyforge_project:
|
133
133
|
rubygems_version: 1.8.23
|