Module: Prato

Extended by:
Prato
Included in:
Prato
Defined in:
lib/prato/internal/join_helper_legacy.rb,
lib/prato.rb,
lib/prato/table.rb,
lib/prato/version.rb,
lib/prato/query/sort.rb,
lib/prato/query/filter.rb,
lib/prato/configuration.rb,
lib/prato/table_builder.rb,
lib/prato/query/or_filter.rb,
lib/prato/query/and_filter.rb,
lib/prato/query/parameters.rb,
lib/prato/types/ruby_column.rb,
lib/prato/types/direct_column.rb,
lib/prato/internal/join_helper.rb,
lib/prato/internal/query_state.rb,
lib/prato/internal/sql_support.rb,
lib/prato/query/default_parser.rb,
lib/prato/query/field_resolver.rb,
lib/prato/internal/specification.rb,
lib/prato/types/aggregate_column.rb,
lib/prato/internal/query_executor.rb,
lib/prato/types/expression_column.rb,
lib/prato/types/association_column.rb,
lib/prato/internal/pipeline/sorting.rb,
lib/prato/internal/lazy_loader_cache.rb,
lib/prato/internal/pipeline/filtering.rb,
lib/prato/internal/pipeline/pagination.rb,
lib/prato/internal/pipeline/serializer.rb,
lib/prato/internal/active_record_version.rb,
lib/prato/internal/specification_builder.rb

Overview

Rails 5.0 and 5.1ºs joins work in a different way, so we need to handle them…manually

Defined Under Namespace

Modules: Internal, Query, Types Classes: Configuration, Table, TableBuilder

Constant Summary collapse

VERSION =
'0.1.0'

Instance Method Summary collapse

Instance Method Details

#setup(&block) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/prato.rb', line 59

def setup(&block)
  if block_given?
    Configuration.configure(&block)
  else
    Configuration.new
  end
end

#table(base_model, &block) ⇒ Object

Raises:

  • (ArgumentError)


47
48
49
50
51
52
53
54
55
56
57
# File 'lib/prato.rb', line 47

def table(base_model, &block)
  raise ArgumentError, "Prato.table requires a block" unless block_given?
  raise ArgumentError, "Prato.table block must not accept arguments" unless block.parameters.empty?

  builder = TableBuilder.new
  builder.instance_exec(&block)

  spec = builder.spec_builder.build(base_model)

  Table.new(spec)
end