Sha256: 286e8dd4690c906db909b3a9a9ac7f44dc077bc592060a9d7e4241557f55cf23
Contents?: true
Size: 1.08 KB
Versions: 4
Compression:
Stored size: 1.08 KB
Contents
module BB class Relation extend Forwardable attr_reader :builder def initialize @builder = Builder.new end def_delegator(:builder, :build) alias_method(:to_sql, :build) API[:basic].each do |name| define_method(name) do |*args| raise ArgumentError, "wrong number of arguments ##{__method__} (at least 1)" if args.empty? tap { builder.assign(name).append_formatted_filters(args) } end end API[:joins].each do |name| define_method(name) do |*args| raise ArgumentError, "wrong number of arguments ##{__method__} (at least 1)" if args.empty? tap { builder.append_joins(name).append_formatted_filters(args) } end end def and tap { builder.options[:operator] = "AND" } end def or tap { builder.options[:operator] = "OR" } end def not tap { builder.options[:negation] = true } end def on(rel) tap { builder.add_option_to_just_before_join(rel) } end def offset(offset) tap { builder.add_offset_to_limit(offset) } end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
b_b-0.1.3 | lib/b_b/relation.rb |
b_b-0.1.2 | lib/b_b/relation.rb |
b_b-0.1.1 | lib/b_b/relation.rb |
b_b-0.1.0 | lib/b_b/relation.rb |