module CustomFields::Types::Json::Target::ClassMethods
Public Instance Methods
apply_json_custom_field(klass, rule)
click to toggle source
Adds a json field
@param [ Class ] klass The class to modify @param [ Hash ] rule It contains the name of the field and if it is required or not
Calls superclass method
# File lib/custom_fields/types/json.rb, line 18 def apply_json_custom_field(klass, rule) name = rule['name'] klass.field name, type: Hash, localize: rule['localized'] || false klass.validates_presence_of name if rule['required'] klass.before_validation { |record| record.send(:add_json_parsing_error, name) } klass.send(:define_method, :"#{name}=") do |json| super(decode_json(name, json)) end end
json_attribute_get(instance, name)
click to toggle source
Build a hash storing the formatted value for a JSON custom field of an instance.
@param [ Object ] instance An instance of the class enhanced by the custom_fields @param [ String
] name The name of the json custom field
@return [ Hash ] field name => JSON
# File lib/custom_fields/types/json.rb, line 39 def json_attribute_get(instance, name) default_attribute_get(instance, name) end
json_attribute_set(instance, name, attributes)
click to toggle source
Set the value for the instance and the date field specified by the 2 params.
@param [ Object ] instance An instance of the class enhanced by the custom_fields @param [ String
] name The name of the date custom field @param [ Hash ] attributes The attributes used to fetch the values
# File lib/custom_fields/types/json.rb, line 50 def json_attribute_set(instance, name, attributes) default_attribute_set(instance, name, attributes) end