class LucidSQL::Repository

Public Class Methods

new(glob) click to toggle source

@param glob [String, to_s] glob pattern for .sql file paths

@example

LucidSQL::Repository.new(Hanami.root.join('sql', '*.sql'))
# File lib/lucid_sql/repository.rb, line 11
def initialize(glob)
  Dir.glob(glob.to_s).each do |f|
    m = File.basename(f, '.sql')
    s = File.read(f).strip.gsub(/\s+/, ' ')

    define_reader(m, s)
  end
end

Private Instance Methods

define_reader(method_name, sql) click to toggle source

@param method_name [String] @param sql [String]

# File lib/lucid_sql/repository.rb, line 24
        def define_reader(method_name, sql)
  define_singleton_method(method_name) do |*args, **kwargs|
    format(sql, *args, **kwargs)
  end
end
format(sql, **kwargs) click to toggle source

@param sql [String] the raw SQL string @param **kwargs [Hash] direct interpolation via template string (do not use with untrusted input)

@return [String]

# File lib/lucid_sql/repository.rb, line 36
        def format(sql, **kwargs)
  sql % kwargs
end