Module: QuantumFields::ClassMethods
- Defined in:
- lib/quantum_fields.rb
Overview
This module contains the methods called within the Model to initialize and to manage how the other methods should behave on the given context.
Instance Method Summary collapse
-
#no_sqlize(args = {}) ⇒ Object
Method called in the model context to initialize behavior and pass configuration options into quantum_fields.
Instance Method Details
#no_sqlize(args = {}) ⇒ Object
Method called in the model context to initialize behavior and pass configuration options into quantum_fields. You can use a custom column for your fields and a custom column for your injected validation rules. Initializing the gem behavior on default ‘quantum_fields’ and ‘quantum_rules’ columns:
> no_sqlize
Initializing the gem behavior on default ‘quantum_rules’ column and a custom fields_column ‘my_json_field’
> no_sqlize fields_column: :my_json_field
Initializing the gem behavior on default ‘quantum_fields’ column and a custom rules_column ‘my_json_field’, affecting from where to pull injected validations:
> no_sqlize rules_column: :my_json_field
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/quantum_fields.rb', line 32 def no_sqlize(args = {}) class_eval " def self.fields_column\n :\#{args[:fields_column] || :quantum_fields}\n end\n def self.rules_column\n :\#{args[:rules_column] || :quantum_rules}\n end\n def as_json(*args)\n super.except(self.class.fields_column.to_s, self.class.rules_column.to_s).tap do |hash|\n self.try(:quantum_fields)&.each do |key, value|\n hash[key] = value\n end\n end\n end\n RUBY\n include QuantumFields::NoSqlize\n include QuantumFields::ValidationInjector\nend\n", __FILE__, __LINE__+1 |