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
-
.normalize(obj) ⇒ Object
Deep-converts all Hash keys to Strings and recurses into nested Hashes and Arrays.
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 |