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) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 48

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

#add_virtual_attributes(instance) ⇒ Object



44
45
46
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 44

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

#align(boundary = false) ⇒ Object



166
167
168
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 166

def align( boundary = false )
  self.serialize_options_global.merge!({align: boundary})
end

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



132
133
134
135
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 132

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

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



152
153
154
155
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 152

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

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



147
148
149
150
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 147

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

#endianess(type = :little) ⇒ Object



162
163
164
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 162

def endianess( type = :little )
  self.serialize_options_global.merge!({endianess: type})
end

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



137
138
139
140
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 137

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

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



142
143
144
145
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 142

def float64( attr_name, options = {}, &block )
  options = self.serialize_options_global.merge(options)
  serialize_attribute_options attr_name, options.merge({coder: DataTypes::Float64}), &block
end

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



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

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

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



84
85
86
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 84

def int16be( attr_name, options = {}, &block )
  int16( attr_name, options.merge({endianess: :big}), &block )
end

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



80
81
82
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 80

def int16le( attr_name, options = {}, &block )
  int16( attr_name, options.merge({endianess: :little}), &block )
end

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



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

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

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



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

def int32be( attr_name, options = {}, &block )
  int32( attr_name, options.merge({endianess: :big}), &block )
end

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



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

def int32le( attr_name, options = {}, &block )
  int32( attr_name, options.merge({endianess: :little}), &block )
end

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



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

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

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



157
158
159
160
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 157

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

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



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

def serialize_attribute_options( attr_name, options, &block )
  self.attr_config.push(options.merge({:name => attr_name.to_s, block: block }))
  if options[:virtual]==true
    attr_accessor attr_name
  end
end

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



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

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

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



115
116
117
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 115

def uint16be( attr_name, options = {}, &block )
  uint16( attr_name, options.merge({endianess: :big}), &block )
end

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



111
112
113
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 111

def uint16le( attr_name, options = {}, &block )
  uint16( attr_name, options.merge({endianess: :little}), &block )
end

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



119
120
121
122
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 119

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

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



128
129
130
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 128

def uint32be( attr_name, options = {}, &block )
  uint32( attr_name, options.merge({endianess: :big}), &block )
end

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



124
125
126
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 124

def uint32le( attr_name, options = {}, &block )
  uint32( attr_name, options.merge({endianess: :little}), &block )
end

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



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

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