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

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