Module: ActiveType::VirtualAttributes::ClassMethods

Defined in:
lib/active_type/virtual_attributes.rb

Instance Method Summary collapse

Instance Method Details

#_has_virtual_column?(name) ⇒ Boolean

Returns:

  • (Boolean)


337
338
339
340
341
342
343
344
345
# File 'lib/active_type/virtual_attributes.rb', line 337

def _has_virtual_column?(name)
  virtual_columns_hash.has_key?(name.to_s) || begin
    if defined?(super)
      super
    else
      false
    end
  end
end

#_virtual_column(name) ⇒ Object



317
318
319
320
321
322
323
324
325
# File 'lib/active_type/virtual_attributes.rb', line 317

def _virtual_column(name)
  virtual_columns_hash[name.to_s] || begin
    if defined?(super)
      super
    else
      raise MissingAttributeError.new("Undefined attribute '#{name}'")
    end
  end
end

#_virtual_column_namesObject



327
328
329
330
331
332
333
334
335
# File 'lib/active_type/virtual_attributes.rb', line 327

def _virtual_column_names
  @virtual_column_names ||= begin
    names = virtual_columns_hash.keys
    if defined?(super)
      names += super
    end
    names
  end
end

#at_attribute(name, *args) ⇒ Object



355
356
357
358
359
360
# File 'lib/active_type/virtual_attributes.rb', line 355

def at_attribute(name, *args)
  options = args.extract_options!
  type = args.first

  Builder.new(self, generated_virtual_attribute_methods).build(name, type, options)
end

#generated_virtual_attribute_methodsObject



347
348
349
350
351
352
353
# File 'lib/active_type/virtual_attributes.rb', line 347

def generated_virtual_attribute_methods
  @generated_virtual_attribute_methods ||= begin
    mod = Module.new
    include mod
    mod
  end
end