Module: ActiveModel::Serializers::Binary::ClassMethods

Defined in:
lib/active_model_serializers_binary/active_model_serializers_binary.rb

Instance Method Summary collapse

Instance Method Details

#add_virtual_attribute(instance, attr_name, attr_value) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 42

def add_virtual_attribute( instance, attr_name, attr_value )
  attr_name = attr_name.to_s
  if attr_value[:virtual] == true
    true
  else
    if !instance.respond_to? attr_name
      attr_value[:virtual] = true
      attr_accessor attr_name
      true
    else
      false
    end
  end
end

#add_virtual_attributes(instance) ⇒ Object



38
39
40
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 38

def add_virtual_attributes( instance )
  self.attr_config.each{ |k, v| add_virtual_attribute(instance, k, v) }
end

#bitfield(attr_name, options = {}, &block) ⇒ Object



90
91
92
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 90

def bitfield( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::BitField}), &block
end

#bool(attr_name, options = {}, &block) ⇒ Object



102
103
104
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 102

def bool( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::Bool}), &block
end

#char(attr_name, options = {}, &block) ⇒ Object



98
99
100
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 98

def char( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::Char}), &block
end

#float32(attr_name, options = {}, &block) ⇒ Object



94
95
96
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 94

def float32( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::Float32}), &block
end

#int16(attr_name, options = {}, &block) ⇒ Object



70
71
72
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 70

def int16( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::Int16}), &block
end

#int32(attr_name, options = {}, &block) ⇒ Object



74
75
76
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 74

def int32( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::Int32}), &block
end

#int8(attr_name, options = {}, &block) ⇒ Object



66
67
68
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 66

def int8( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::Int8}), &block
end

#nest(attr_name, options = {}, &block) ⇒ Object



106
107
108
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 106

def nest( attr_name, options={}, &block )
  serialize_attribute_options attr_name, options.merge({type: :nest}), &block
end

#serialize_attribute_options(attr_name, options, &block) ⇒ Object



62
63
64
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 62

def serialize_attribute_options( attr_name, options, &block )
  self.attr_config.merge!(attr_name.to_s => options.merge({ block: block }))
end

#serialize_options(attr_name, coder, count = 1, length = 1, virtual = false, &block) ⇒ Object

todo: agrupar parametros en hash (rompe la compatibilidad hacia atras)



58
59
60
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 58

def serialize_options( attr_name, coder, count=1, length=1, virtual=false, &block )
  self.attr_config.merge!(attr_name.to_s => {:coder => coder, :count => count, :length => length, :block => block, :name => attr_name, :virtual => virtual})
end

#uint16(attr_name, options = {}, &block) ⇒ Object



82
83
84
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 82

def uint16( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::UInt16}), &block
end

#uint32(attr_name, options = {}, &block) ⇒ Object



86
87
88
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 86

def uint32( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::UInt32}), &block
end

#uint8(attr_name, options = {}, &block) ⇒ Object



78
79
80
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 78

def uint8( attr_name, options = {}, &block )
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::UInt8}), &block
end