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