lib/awestruct/handlers/base_handler.rb in awestructx-0.4.0 vs lib/awestruct/handlers/base_handler.rb in awestructx-0.4.1.x1
- old
+ new
@@ -1,7 +1,8 @@
require 'hashery/open_cascade'
+require 'open3'
module Awestruct
module Handlers
class BaseHandler
@@ -37,16 +38,20 @@
return @delegate.output_filename if @delegate
nil
end
def output_path
- File.join( File.dirname( relative_source_path ), output_filename )
+ ( p = relative_source_path ) if relative_source_path
+ ( of = output_filename ) if output_filename
+ return File.join( File.dirname( p ), output_filename ) if ( p && of )
+ nil
end
def output_extension
- return @delegate.output_extension if @delegate
- File.extname( output_filename )
+ return @delegate.output_extension if @delegate
+ return File.extname( output_filename ) unless output_filename.nil?
+ nil
end
def path
return @delegate.path if @delegate
nil
@@ -76,16 +81,30 @@
return @delegate.content_line_offset if @delegate
0
end
def inherit_front_matter(page)
- @delegate.inherit_front_matter(page) if @delegate
+ return @delegate.inherit_front_matter(page) if @delegate
end
+ def dependencies
+ return @delegate.dependencies if @delegate
+ []
+ end
+
def to_chain
chain = [ self ]
chain += @delegate.to_chain if @delegate
chain.flatten
+ end
+
+ def execute_shell(command, input=nil)
+ Open3.popen3(command) do |stdin, stdout, _|
+ stdin.puts input unless input.nil?
+ out = stdout.read
+ end
+ rescue Errno::EPIPE
+ ""
end
end
end
end