module NoBrainer::RQL

Public Instance Methods

db_drop?(rql) click to toggle source
# File lib/no_brainer/rql.rb, line 24
def db_drop?(rql)
  get_rql_statement(rql) == DB_DROP
end
get_rql_statement(rql) click to toggle source
# File lib/no_brainer/rql.rb, line 20
def get_rql_statement(rql)
  rql.is_a?(RethinkDB::RQL) && rql.body.is_a?(Array) && rql.body.first
end
is_write_query?(rql) click to toggle source
# File lib/no_brainer/rql.rb, line 16
def is_write_query?(rql)
  type_of(rql) == :write
end
reset_lambda_var_counter() click to toggle source
# File lib/no_brainer/rql.rb, line 5
def reset_lambda_var_counter
  RethinkDB::RQL.class_variable_set(:@@gensym_cnt, 0)
end
rql_proc_as_json(block) click to toggle source
# File lib/no_brainer/rql.rb, line 9
def rql_proc_as_json(block)
  reset_lambda_var_counter
  RethinkDB::Shim.load_json(
    RethinkDB::Shim.dump_json(
      RethinkDB::RQL.new.new_func(&block)))
end
type_of(rql) click to toggle source
# File lib/no_brainer/rql.rb, line 28
def type_of(rql)
  case get_rql_statement(rql)
  when UPDATE, DELETE, REPLACE, INSERT
    :write
  when DB_CREATE, DB_DROP, DB_LIST, TABLE_CREATE, TABLE_DROP, TABLE_LIST,
       INDEX_CREATE, INDEX_DROP, INDEX_LIST, INDEX_STATUS, INDEX_WAIT, INDEX_RENAME,
       CONFIG, STATUS, WAIT, RECONFIGURE, REBALANCE, SYNC
    :management
  else
    # XXX Not necessarily correct, but we'll be happy for logging colors.
    :read
  end
end