class Pakyow::Data::Adapters::Sql::Migrators::Finalizer::Writer
Public Class Methods
new(root: false)
click to toggle source
# File lib/pakyow/data/adapters/sql/migrators/finalizer.rb, line 44 def initialize(root: false) @root, @content = root, String.new end
Public Instance Methods
method_missing(name, *args, **kwargs, &block)
click to toggle source
# File lib/pakyow/data/adapters/sql/migrators/finalizer.rb, line 64 def method_missing(name, *args, **kwargs, &block) method_call = "#{name} #{args_to_string(args, kwargs)}" if block_given? @content << <<~CONTENT #{method_call} do #{indent(Writer.new.tap { |writer| writer.instance_exec(&block) }.to_s)} end CONTENT else @content << <<~CONTENT #{method_call} CONTENT end end
to_ary()
click to toggle source
# File lib/pakyow/data/adapters/sql/migrators/finalizer.rb, line 60 def to_ary [to_s] end
to_s()
click to toggle source
# File lib/pakyow/data/adapters/sql/migrators/finalizer.rb, line 48 def to_s if @root <<~CONTENT change do #{indent(@content.strip)} end CONTENT else @content.strip end end
Private Instance Methods
args_to_string(args, kwargs)
click to toggle source
# File lib/pakyow/data/adapters/sql/migrators/finalizer.rb, line 82 def args_to_string(args, kwargs) kwargs.each_with_object(args.map(&:inspect).join(", ")) { |(key, value), string| string << ", #{key}: #{value.inspect}" } end
indent(content)
click to toggle source
# File lib/pakyow/data/adapters/sql/migrators/finalizer.rb, line 88 def indent(content) content.split("\n").map { |line| " #{line}" }.join("\n") end