class Slacker::Sql

Attributes

base_folder[RW]
rspec_ext[RW]

Public Class Methods

new(base_folder, rspec_ext) click to toggle source
# File lib/slacker/sql.rb, line 8
def initialize(base_folder, rspec_ext)
  @base_folder = base_folder
  @rspec_ext = rspec_ext
end

Public Instance Methods

method_missing(method_name, *params, &block) click to toggle source
# File lib/slacker/sql.rb, line 13
def method_missing(method_name, *params, &block)
  ::Kernel.raise "Slacker::Sql.rspec_ext not initialized" if rspec_ext.nil?
  ::Kernel.raise "Missing folder #{base_folder}" if !::File.directory?(base_folder)

  method_name = method_name.to_s
  
  if ::File.directory?(::File.join(base_folder, method_name))
    ::Slacker::Sql.new(::File.join(base_folder, method_name), rspec_ext)
  else
    sql_file = ::Slacker.sql_file_from_method_name(base_folder, method_name)
    case sql_file
    when nil
      ::Kernel.raise "No SQL file found corresponding to method '#{method_name}' in folder #{base_folder}"
    else
      rspec_ext.query sql_file, *params, &block
    end
  end
end
respond_to?(method_name) click to toggle source
# File lib/slacker/sql.rb, line 32
def respond_to?(method_name)
  method_name = method_name.to_s
  ::Kernel.raise "Slacker::Sql.rspec_ext not initialized" if rspec_ext.nil?
  ::File.directory?(::File.join(base_folder, method_name)) ||
    !(::Slacker.sql_file_from_method_name(base_folder, method_name).nil?)
end