Module: Json2sql

Defined in:
lib/json2sql.rb,
lib/json2sql/version.rb,
lib/json2sql/sanitizer.rb,
lib/json2sql/where_model.rb,
lib/json2sql/delete_model.rb,
lib/json2sql/insert_model.rb,
lib/json2sql/select_model.rb,
lib/json2sql/update_model.rb,
lib/json2sql/delete_runner.rb,
lib/json2sql/insert_runner.rb,
lib/json2sql/select_runner.rb,
lib/json2sql/update_runner.rb,
lib/json2sql/where_relation.rb

Overview

Json2sql — SQL builder that generates MySQL/MariaDB query strings from plain Ruby Hashes (or parsed JSON).

All Hash keys may be either Strings or Symbols; they are normalized to Strings internally before processing.

Entry points:

Json2sql::SelectRunner.build(hash) → String
Json2sql::InsertRunner.build(hash) → String
Json2sql::UpdateRunner.build(hash) → String
Json2sql::DeleteRunner.build(hash) → String

Defined Under Namespace

Modules: Sanitizer Classes: DeleteModel, DeleteRunner, InsertModel, InsertRunner, SelectModel, SelectRunner, UpdateModel, UpdateRunner, WhereModel, WhereRelation

Constant Summary collapse

VERSION =
"1.0.1"

Class Method Summary collapse

Class Method Details

.normalize(obj) ⇒ Object

Deep-converts all Hash keys to Strings and recurses into nested Hashes and Arrays. Leaves all other values (Integers, Strings, etc.) unchanged.



31
32
33
34
35
36
37
38
# File 'lib/json2sql.rb', line 31

def self.normalize(obj)

  return obj.each_with_object({}) { |(k, v), h| h[k.to_s] = normalize(v) } if obj.is_a?(Hash)

  return obj.map { |v| normalize(v) } if obj.is_a?(Array)

  obj
end