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



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

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

#add_virtual_attributes(instance) ⇒ Object



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

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

#align(boundary = false) ⇒ Object



185
186
187
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 185

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

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



135
136
137
138
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 135

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



171
172
173
174
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 171

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



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

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



181
182
183
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 181

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

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



140
141
142
143
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 140

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

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



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

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

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



145
146
147
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 145

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

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



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

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

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



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

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

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



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

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

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



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

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



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

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

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



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

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

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



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

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



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

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

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



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

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

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



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

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



176
177
178
179
# File 'lib/active_model_serializers_binary/active_model_serializers_binary.rb', line 176

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



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

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



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

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



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

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

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



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

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

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



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

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



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

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

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



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

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

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



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

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