Module: BB

Defined in:
lib/b_b.rb,
lib/b_b/builder.rb,
lib/b_b/factory.rb,
lib/b_b/version.rb,
lib/b_b/relation.rb,
lib/b_b/component.rb,
lib/b_b/converter.rb,
lib/b_b/evaluator.rb,
lib/b_b/exception.rb,
lib/b_b/converter/order.rb,
lib/b_b/converter/table.rb,
lib/b_b/converter/value.rb,
lib/b_b/evaluator/table.rb,
lib/b_b/evaluator/value.rb,
lib/b_b/converter/formula.rb,
lib/b_b/evaluator/formula.rb,
lib/b_b/factory_decorator.rb,
lib/b_b/factory_decorator/from.rb,
lib/b_b/factory_decorator/limit.rb,
lib/b_b/factory_decorator/order.rb,
lib/b_b/factory_decorator/joinable.rb,
lib/b_b/factory_decorator/selectable.rb,
lib/b_b/factory_decorator/extractable.rb

Defined Under Namespace

Modules: Converter, Evaluator, FactoryDecorator Classes: ArgumentError, Builder, Component, Error, Factory, NotImplementedError, Relation, UnevaluableTypeError

Constant Summary collapse

API =
{
  basic: i(
    from
    group
    group_each
    having
    limit
    omit_record_if
    order
    select
    where
  ),
  joins: i(
    cross_join
    full_outer_join_each
    inner_join
    inner_join_each
    join
    join_each
    left_join
    left_join_each
    left_outer_join
    left_outer_join_each
    right_join
    right_join_each
    right_outer_join
    right_outer_join_each
  )
}.freeze
VERSION =
"0.1.2".freeze

Class Method Summary collapse

Class Method Details

.build {|relation| ... } ⇒ Object

Yields:

  • (relation)


48
49
50
51
52
# File 'lib/b_b.rb', line 48

def build
  relation = Relation.new
  yield(relation)
  relation.to_sql
end

.method_missing(name, *args) ⇒ Object



54
55
56
# File 'lib/b_b.rb', line 54

def method_missing(name, *args)
  Relation.new.public_send(name, *args)
end