Module: Sequel::SequelMarginalia

Defined in:
lib/sequel/extensions/sequel_marginalia.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(dataset_class) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/sequel/extensions/sequel_marginalia.rb', line 3

def self.included(dataset_class)
    dataset_class.class_eval do
        if defined? :execute
            alias_method :execute_without_sequel_marginalia, :execute
            alias_method :execute, :execute_with_sequel_marginalia
        end
    end
end

Instance Method Details

#annotate_sql(sql) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/sequel/extensions/sequel_marginalia.rb', line 16

def annotate_sql(sql)
    comment = caller.
        reject{|ln| ln =~ /lib\/sequel/}.
        first

    if comment && !sql.include?(comment)
        "/* #{comment} */\n#{sql}"
    else
        sql
    end
end

#execute_with_sequel_marginalia(sql, opts = {}, &block) ⇒ Object



12
13
14
# File 'lib/sequel/extensions/sequel_marginalia.rb', line 12

def execute_with_sequel_marginalia(sql, opts={}, &block)
    execute_without_sequel_marginalia(annotate_sql(sql), opts, &block)
end