Class: PlainParams

Inherits:
Object
  • Object
show all
Extended by:
ActiveModel::Naming
Includes:
ActiveModel::Conversion, ActiveModel::Validations
Defined in:
lib/plain_params.rb

Class Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params_attributes = {}) ⇒ PlainParams

Returns a new instance of PlainParams.



8
9
10
11
12
13
14
15
16
# File 'lib/plain_params.rb', line 8

def initialize(params_attributes = {})
  raise 'No @real_fields or @virtual_fields provided in the class definition' if self.class.real_fields.nil? && self.class.virtual_fields.nil?

  self.class.real_fields ||= []
  self.class.virtual_fields ||= []

  setup_accessors
  self.attributes = params_attributes
end

Class Attribute Details

.real_fieldsObject

Returns the value of attribute real_fields.



19
20
21
# File 'lib/plain_params.rb', line 19

def real_fields
  @real_fields
end

.virtual_fieldsObject

Returns the value of attribute virtual_fields.



19
20
21
# File 'lib/plain_params.rb', line 19

def virtual_fields
  @virtual_fields
end

Instance Method Details

#persisted?Boolean

Returns:

  • (Boolean)


31
# File 'lib/plain_params.rb', line 31

def persisted? = false

#real_valuesObject



29
# File 'lib/plain_params.rb', line 29

def real_values = values[:real]

#valuesObject



22
23
24
25
26
27
# File 'lib/plain_params.rb', line 22

def values
  {
    real: self.class.real_fields.to_h { [it, send(it)] },
    virtual: self.class.virtual_fields.to_h { [it, send(it)] }
  }
end

#virtual_valuesObject



30
# File 'lib/plain_params.rb', line 30

def virtual_values = values[:virtual]