active_model_serializers_binary 0.0.25 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a7e6176e80446184f50b715b1db5308f5d0555ff
4
- data.tar.gz: 2449dbbc3c428edf4c903968da0d048e89dad5a6
3
+ metadata.gz: 8867fc2c627dc2fe2e4e7c064bd1ed5ae721eb89
4
+ data.tar.gz: b096205753623930ad89c0c9dd4d308f3ff8ef19
5
5
  SHA512:
6
- metadata.gz: 89f0fd0d0312d221276908a5bff529f5815462782360f1b919caabe171a65e10ef435e4288e19e90962ce86f66e899c7b2914a37be9a74cfacf8e9f548fb65b1
7
- data.tar.gz: 1aa798e4988b906b44c8d13b0877f0d9ca9d9945878af76341adbd9f97021ad93b0814902f885b594fd8ab9c68fe946878f8360491a9223d2a41bfdb4095fc90
6
+ metadata.gz: c89aed42e8c94feb10867ee254dec8638e9ecae1ed8b414cef0792ec08e50e000d08dc99c0ea1e0356bbf1efc19b2a086b213efb63d4b69b69b07f8a9b148804
7
+ data.tar.gz: 7acb69425c7502733109d4200fb255951a93f5354d8cb2d3b6c1662948f521264d470099cab822e472593250aac36eeb4868a34e86a80077988c4c0b30258898
data/Gemfile.lock CHANGED
@@ -1,86 +1,80 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_model_serializers_binary (0.0.24)
5
- activemodel (~> 4.1)
4
+ active_model_serializers_binary (0.1.5)
5
+ activemodel (~> 5.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- actionmailer (4.1.4)
11
- actionpack (= 4.1.4)
12
- actionview (= 4.1.4)
13
- mail (~> 2.5.4)
14
- actionpack (4.1.4)
15
- actionview (= 4.1.4)
16
- activesupport (= 4.1.4)
17
- rack (~> 1.5.2)
18
- rack-test (~> 0.6.2)
19
- actionview (4.1.4)
20
- activesupport (= 4.1.4)
10
+ actioncable (5.0.0.1)
11
+ actionpack (= 5.0.0.1)
12
+ nio4r (~> 1.2)
13
+ websocket-driver (~> 0.6.1)
14
+ actionmailer (5.0.0.1)
15
+ actionpack (= 5.0.0.1)
16
+ actionview (= 5.0.0.1)
17
+ activejob (= 5.0.0.1)
18
+ mail (~> 2.5, >= 2.5.4)
19
+ rails-dom-testing (~> 2.0)
20
+ actionpack (5.0.0.1)
21
+ actionview (= 5.0.0.1)
22
+ activesupport (= 5.0.0.1)
23
+ rack (~> 2.0)
24
+ rack-test (~> 0.6.3)
25
+ rails-dom-testing (~> 2.0)
26
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
+ actionview (5.0.0.1)
28
+ activesupport (= 5.0.0.1)
21
29
  builder (~> 3.1)
22
30
  erubis (~> 2.7.0)
23
- activemodel (4.1.4)
24
- activesupport (= 4.1.4)
25
- builder (~> 3.1)
26
- activerecord (4.1.4)
27
- activemodel (= 4.1.4)
28
- activesupport (= 4.1.4)
29
- arel (~> 5.0.0)
30
- activesupport (4.1.4)
31
- i18n (~> 0.6, >= 0.6.9)
32
- json (~> 1.7, >= 1.7.7)
31
+ rails-dom-testing (~> 2.0)
32
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
33
+ activejob (5.0.0.1)
34
+ activesupport (= 5.0.0.1)
35
+ globalid (>= 0.3.6)
36
+ activemodel (5.0.0.1)
37
+ activesupport (= 5.0.0.1)
38
+ activerecord (5.0.0.1)
39
+ activemodel (= 5.0.0.1)
40
+ activesupport (= 5.0.0.1)
41
+ arel (~> 7.0)
42
+ activesupport (5.0.0.1)
43
+ concurrent-ruby (~> 1.0, >= 1.0.2)
44
+ i18n (~> 0.7)
33
45
  minitest (~> 5.1)
34
- thread_safe (~> 0.1)
35
46
  tzinfo (~> 1.1)
36
- annotate (2.6.5)
37
- activerecord (>= 2.3.0)
38
- rake (>= 0.8.7)
39
- arel (5.0.1.20140414130214)
40
- bcrypt (3.1.7)
47
+ annotate (2.7.1)
48
+ activerecord (>= 3.2, < 6.0)
49
+ rake (>= 10.4, < 12.0)
50
+ arel (7.1.1)
41
51
  builder (3.2.2)
42
52
  byebug (4.0.5)
43
53
  columnize (= 0.9.0)
44
54
  coderay (1.1.0)
45
- coffee-rails (4.0.1)
46
- coffee-script (>= 2.2.0)
47
- railties (>= 4.0.0, < 5.0)
48
- coffee-script (2.3.0)
49
- coffee-script-source
50
- execjs
51
- coffee-script-source (1.7.1)
52
55
  colorize (0.7.3)
53
56
  columnize (0.9.0)
54
- devise (3.2.4)
55
- bcrypt (~> 3.0)
56
- orm_adapter (~> 0.1)
57
- railties (>= 3.2.6, < 5)
58
- thread_safe (~> 0.1)
59
- warden (~> 1.2.3)
57
+ concurrent-ruby (1.0.2)
60
58
  erubis (2.7.0)
61
- execjs (2.2.1)
62
- hike (1.2.3)
63
- i18n (0.6.11)
59
+ globalid (0.3.7)
60
+ activesupport (>= 4.1.0)
61
+ i18n (0.7.0)
64
62
  interception (0.5)
65
- jbuilder (1.5.3)
66
- activesupport (>= 3.0.0)
67
- multi_json (>= 1.2.0)
68
- jquery-ui-rails (4.2.1)
69
- railties (>= 3.2.16)
70
- jquery-validation-rails (1.12.0)
71
- railties (>= 3.2, < 5.0)
72
- thor (~> 0.14)
73
- json (1.8.3)
74
- libv8 (3.16.14.3)
75
- mail (2.5.4)
76
- mime-types (~> 1.16)
77
- treetop (~> 1.4.8)
63
+ loofah (2.0.3)
64
+ nokogiri (>= 1.5.9)
65
+ mail (2.6.4)
66
+ mime-types (>= 1.16, < 4)
78
67
  method_source (0.8.2)
79
- mime-types (1.25.1)
80
- minitest (5.4.0)
81
- multi_json (1.10.1)
82
- orm_adapter (0.5.0)
83
- polyglot (0.3.5)
68
+ mime-types (3.1)
69
+ mime-types-data (~> 3.2015)
70
+ mime-types-data (3.2016.0521)
71
+ mini_portile2 (2.1.0)
72
+ minitest (5.9.0)
73
+ nio4r (1.2.1)
74
+ nokogiri (1.6.8)
75
+ mini_portile2 (~> 2.1.0)
76
+ pkg-config (~> 1.1.7)
77
+ pkg-config (1.1.7)
84
78
  pry (0.10.1)
85
79
  coderay (~> 1.1.0)
86
80
  method_source (~> 0.8.1)
@@ -96,61 +90,49 @@ GEM
96
90
  pry-rescue (1.4.2)
97
91
  interception (>= 0.5)
98
92
  pry
99
- rack (1.5.2)
100
- rack-test (0.6.2)
93
+ rack (2.0.1)
94
+ rack-test (0.6.3)
101
95
  rack (>= 1.0)
102
- rails (4.1.4)
103
- actionmailer (= 4.1.4)
104
- actionpack (= 4.1.4)
105
- actionview (= 4.1.4)
106
- activemodel (= 4.1.4)
107
- activerecord (= 4.1.4)
108
- activesupport (= 4.1.4)
96
+ rails (5.0.0.1)
97
+ actioncable (= 5.0.0.1)
98
+ actionmailer (= 5.0.0.1)
99
+ actionpack (= 5.0.0.1)
100
+ actionview (= 5.0.0.1)
101
+ activejob (= 5.0.0.1)
102
+ activemodel (= 5.0.0.1)
103
+ activerecord (= 5.0.0.1)
104
+ activesupport (= 5.0.0.1)
109
105
  bundler (>= 1.3.0, < 2.0)
110
- railties (= 4.1.4)
111
- sprockets-rails (~> 2.0)
112
- railties (4.1.4)
113
- actionpack (= 4.1.4)
114
- activesupport (= 4.1.4)
106
+ railties (= 5.0.0.1)
107
+ sprockets-rails (>= 2.0.0)
108
+ rails-dom-testing (2.0.1)
109
+ activesupport (>= 4.2.0, < 6.0)
110
+ nokogiri (~> 1.6.0)
111
+ rails-html-sanitizer (1.0.3)
112
+ loofah (~> 2.0)
113
+ railties (5.0.0.1)
114
+ actionpack (= 5.0.0.1)
115
+ activesupport (= 5.0.0.1)
116
+ method_source
115
117
  rake (>= 0.8.7)
116
118
  thor (>= 0.18.1, < 2.0)
117
- rake (10.3.2)
118
- ref (1.0.5)
119
- sass (3.2.19)
120
- sass-rails (4.0.3)
121
- railties (>= 4.0.0, < 5.0)
122
- sass (~> 3.2.0)
123
- sprockets (~> 2.8, <= 2.11.0)
124
- sprockets-rails (~> 2.0)
119
+ rake (10.5.0)
125
120
  slop (3.6.0)
126
- sprockets (2.11.0)
127
- hike (~> 1.2)
128
- multi_json (~> 1.0)
129
- rack (~> 1.0)
130
- tilt (~> 1.1, != 1.3.0)
131
- sprockets-rails (2.1.3)
132
- actionpack (>= 3.0)
133
- activesupport (>= 3.0)
134
- sprockets (~> 2.8)
135
- sqlite3 (1.3.9)
136
- therubyracer (0.12.1)
137
- libv8 (~> 3.16.14.0)
138
- ref
121
+ sprockets (3.7.0)
122
+ concurrent-ruby (~> 1.0)
123
+ rack (> 1, < 3)
124
+ sprockets-rails (3.2.0)
125
+ actionpack (>= 4.0)
126
+ activesupport (>= 4.0)
127
+ sprockets (>= 3.0.0)
128
+ sqlite3 (1.3.11)
139
129
  thor (0.19.1)
140
- thread_safe (0.3.4)
141
- tilt (1.4.1)
142
- treetop (1.4.15)
143
- polyglot
144
- polyglot (>= 0.3.1)
145
- turbolinks (2.2.2)
146
- coffee-rails
147
- tzinfo (1.2.1)
130
+ thread_safe (0.3.5)
131
+ tzinfo (1.2.2)
148
132
  thread_safe (~> 0.1)
149
- uglifier (1.3.0)
150
- execjs (>= 0.3.0)
151
- multi_json (~> 1.0, >= 1.0.2)
152
- warden (1.2.3)
153
- rack (>= 1.0)
133
+ websocket-driver (0.6.4)
134
+ websocket-extensions (>= 0.1.0)
135
+ websocket-extensions (0.1.2)
154
136
  yard (0.8.7.6)
155
137
 
156
138
  PLATFORMS
@@ -160,24 +142,15 @@ DEPENDENCIES
160
142
  active_model_serializers_binary!
161
143
  annotate
162
144
  bundler (~> 1.6)
163
- coffee-rails (~> 4.0)
164
145
  colorize (~> 0.7)
165
- devise (~> 3.2)
166
- jbuilder (~> 1.2)
167
- jquery-ui-rails (~> 4.2)
168
- jquery-validation-rails (~> 1.12)
169
146
  pry
170
147
  pry-byebug
171
148
  pry-doc
172
149
  pry-rails
173
150
  pry-rescue
174
- rails (~> 4.1)
151
+ rails (~> 5.0)
175
152
  rake (~> 10.3)
176
- sass-rails (~> 4.0)
177
- sqlite3 (~> 1.3)
178
- therubyracer (~> 0.12)
179
- turbolinks (~> 2.2)
180
- uglifier (~> 1.3)
153
+ sqlite3
181
154
 
182
155
  BUNDLED WITH
183
- 1.11.2
156
+ 1.15.3
@@ -21,19 +21,19 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_development_dependency "bundler", "~> 1.6"
23
23
  s.add_development_dependency "rake", "~> 10.3"
24
- s.add_development_dependency "sqlite3", "~> 1.3"
25
- s.add_development_dependency "rails", "~> 4.1"
24
+ s.add_development_dependency "sqlite3"
25
+ s.add_development_dependency "rails", "~> 5.0"
26
26
 
27
- s.add_development_dependency 'devise', '~> 3.2'
28
- s.add_development_dependency 'jquery-ui-rails', '~> 4.2'
29
- s.add_development_dependency 'sass-rails', '~> 4.0'
30
- s.add_development_dependency 'uglifier', '~> 1.3'
31
- s.add_development_dependency 'coffee-rails', '~> 4.0'
32
- s.add_development_dependency 'turbolinks', "~> 2.2"
33
- s.add_development_dependency 'jbuilder', '~> 1.2'
34
- s.add_development_dependency 'jquery-validation-rails', '~> 1.12'
35
- s.add_development_dependency 'therubyracer', '~> 0.12'
27
+ #s.add_development_dependency 'devise', '~> 3.2'
28
+ #s.add_development_dependency 'jquery-ui-rails', '~> 4.2'
29
+ #s.add_development_dependency 'sass-rails', '~> 4.0'
30
+ #s.add_development_dependency 'uglifier', '~> 1.3'
31
+ #s.add_development_dependency 'coffee-rails', '~> 4.0'
32
+ #s.add_development_dependency 'turbolinks', "~> 2.2"
33
+ #s.add_development_dependency 'jbuilder', '~> 1.2'
34
+ #s.add_development_dependency 'jquery-validation-rails', '~> 1.12'
35
+ #s.add_development_dependency 'therubyracer', '~> 0.12'
36
36
  s.add_development_dependency "colorize", '~> 0.7'
37
37
 
38
- s.add_dependency "activemodel", "~> 4.1"
38
+ s.add_dependency "activemodel", "~> 5.0"
39
39
  end
@@ -17,62 +17,99 @@ module ActiveModel
17
17
  self.attr_config = {}
18
18
 
19
19
  def attributes
20
- keys = self.attr_config.select{|k, v| v[:virtual]==true}.keys
20
+ keys = self.attr_config.select{ |k, v| v[:virtual]==true }.keys
21
21
  values = keys.map{ |var| self.instance_variable_get("@#{var}") }
22
- super.merge(Hash[keys.zip values])
22
+ (super rescue {}).merge(Hash[keys.zip values])
23
23
  end
24
+
25
+ def initialize( *args )
26
+ super rescue super()
27
+ initialize_serializer
28
+ end
29
+
30
+ def initialize_serializer
31
+ self.class.add_virtual_attributes self
32
+ end
33
+
34
+ after_initialize :initialize_serializer rescue nil
24
35
  end
25
36
 
26
37
  module ClassMethods
38
+ def add_virtual_attributes( instance )
39
+ self.attr_config.each{ |k, v| add_virtual_attribute(instance, k, v) }
40
+ end
41
+
42
+ def add_virtual_attribute( instance, attr_name, attr_value )
43
+ attr_name = attr_name.to_s
44
+ if attr_value[:virtual] == true
45
+ true
46
+ else
47
+ if !instance.respond_to? attr_name
48
+ attr_value[:virtual] = true
49
+ attr_accessor attr_name
50
+ true
51
+ else
52
+ false
53
+ end
54
+ end
55
+ end
56
+
27
57
  # todo: agrupar parametros en hash (rompe la compatibilidad hacia atras)
28
- def serialize_options(attr_name, coder, count=1, length=1, virtual=false, &block )
29
- attr_accessor(attr_name) if virtual
58
+ def serialize_options( attr_name, coder, count=1, length=1, virtual=false, &block )
30
59
  self.attr_config.merge!(attr_name.to_s => {:coder => coder, :count => count, :length => length, :block => block, :name => attr_name, :virtual => virtual})
31
60
  end
32
61
 
62
+ def serialize_attribute_options( attr_name, options, &block )
63
+ self.attr_config.merge!(attr_name.to_s => options.merge({ block: block }))
64
+ end
65
+
33
66
  def int8( attr_name, options = {}, &block )
34
- serialize_options attr_name, DataTypes::Int8, options[:count], options[:length], options[:virtual], &block
67
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::Int8}), &block
35
68
  end
36
69
 
37
70
  def int16( attr_name, options = {}, &block )
38
- serialize_options attr_name, DataTypes::Int16, options[:count], options[:length], options[:virtual], &block
71
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::Int16}), &block
39
72
  end
40
73
 
41
74
  def int32( attr_name, options = {}, &block )
42
- serialize_options attr_name, DataTypes::Int32, options[:count], options[:length], options[:virtual], &block
75
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::Int32}), &block
43
76
  end
44
77
 
45
78
  def uint8( attr_name, options = {}, &block )
46
- serialize_options attr_name, DataTypes::UInt8, options[:count], options[:length], options[:virtual], &block
79
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::UInt8}), &block
47
80
  end
48
81
 
49
82
  def uint16( attr_name, options = {}, &block )
50
- serialize_options attr_name, DataTypes::UInt16, options[:count], options[:length], options[:virtual], &block
83
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::UInt16}), &block
51
84
  end
52
85
 
53
86
  def uint32( attr_name, options = {}, &block )
54
- serialize_options attr_name, DataTypes::UInt32, options[:count], options[:length], options[:virtual], &block
87
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::UInt32}), &block
55
88
  end
56
89
 
57
90
  def bitfield( attr_name, options = {}, &block )
58
- serialize_options attr_name, DataTypes::BitField, options[:count], options[:length], options[:virtual], &block
91
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::BitField}), &block
59
92
  end
60
93
 
61
94
  def float32( attr_name, options = {}, &block )
62
- serialize_options attr_name, DataTypes::Float32, options[:count], options[:length], options[:virtual], &block
95
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::Float32}), &block
63
96
  end
64
97
 
65
98
  def char( attr_name, options = {}, &block )
66
- serialize_options attr_name, DataTypes::Char, options[:count], options[:length], options[:virtual], &block
99
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::Char}), &block
67
100
  end
68
101
 
69
102
  def bool( attr_name, options = {}, &block )
70
- serialize_options attr_name, DataTypes::Bool, options[:count], options[:length], options[:virtual], &block
103
+ serialize_attribute_options attr_name, options.merge({coder: DataTypes::Bool}), &block
104
+ end
105
+
106
+ def nest( attr_name, options={}, &block )
107
+ serialize_attribute_options attr_name, options.merge({type: :nest}), &block
71
108
  end
72
109
  end
73
110
 
74
111
  class Serializer #:nodoc:
75
- attr_reader :options
112
+ #attr_reader :options
76
113
 
77
114
  def initialize(serializable, options = nil)
78
115
  @serializable = serializable
@@ -80,24 +117,28 @@ module ActiveModel
80
117
  end
81
118
 
82
119
  def dump
83
- serializable_values = @serializable.serializable_hash(options)
120
+ serializable_values = @serializable.serializable_hash(@options)
84
121
  start_address = @options[:start_address] || 0
85
122
 
86
- buffer = [] # Buffer en bytes
87
- tmp_buffer = [] # Buffer temporal en bytes
88
- current_address = start_address*2 + 0.0 # Dirección en bytes
123
+ buffer = [] # Data Buffer
124
+ tmp_buffer = [] # Aux Data Buffer
125
+ current_address = start_address*2 + 0.0 # Address in bytes
89
126
 
90
- @serializable.attr_config.each do |key, options|
91
- var = options[:coder].new(options.merge(parent: @serializable))
92
- # Busca el valor del atributo y si no existe devuelve nil
93
- var.value = serializable_values[key] rescue nil
127
+ @serializable.attr_config.each do |attr_name, attr_options|
128
+ if attr_options[:type] != :nest
129
+ var = attr_options[:coder].new(attr_options.merge(parent: @serializable))
130
+ var.value = serializable_values[attr_name] rescue nil
131
+ else
132
+ var = attr_options[:coder].new(serializable_values[attr_name].attributes)
133
+ end
94
134
 
95
135
  byte = current_address.floor
96
136
  bit = (current_address.modulo(1)*8).round
97
137
 
98
138
  tmp_buffer = var.dump
139
+
99
140
  if @options[:align]
100
- if !var.type.in? [:bitfield, :bool]
141
+ if !attr_options[:type].in? [:bitfield, :bool, :nest]
101
142
  # Se posiciona al principio de un byte
102
143
  if bit != 0
103
144
  byte += 1
@@ -118,7 +159,7 @@ module ActiveModel
118
159
  end
119
160
 
120
161
  # Si los datos ocupan mas de un byte concatena los arrays
121
- if !var.type.in? [:bitfield, :bool] and @options[:align]
162
+ if !attr_options[:type].in? [:bitfield, :bool] and @options[:align]
122
163
  buffer.insert(byte, tmp_buffer).flatten!
123
164
  else # En caso de ser bits
124
165
  tmp_buffer.flatten!
@@ -145,14 +186,14 @@ module ActiveModel
145
186
 
146
187
  current_address = start_address*2 + 0.0 # Dirección en bytes
147
188
 
148
- @serializable.attr_config.each do |key, options|
189
+ @serializable.attr_config.each do |attr, attr_options|
149
190
  byte = current_address.floor
150
191
  bit = (current_address.modulo(1)*8).round
151
192
 
152
- var = options[:coder].new(options.merge(parent: @serializable)) #creo objeto del tipo de dato pasado
193
+ var = attr_options[:coder].new(attr_options.merge(parent: @serializable)) #creo objeto del tipo de dato pasado
153
194
 
154
195
  if @options[:align]
155
- if !var.type.in? [:bitfield, :bool]
196
+ if !attr_options[:type].in? [:bitfield, :bool, :nest]
156
197
  # Se posiciona al principio de un byte
157
198
  if bit != 0
158
199
  byte += 1
@@ -173,27 +214,67 @@ module ActiveModel
173
214
  end
174
215
 
175
216
  # Si los datos ocupan mas de un byte, obtiene los bytes completos del buffer original
176
- if var.bit_length >= 8 and @options[:align]
217
+ if !attr_options[:type].in? [:bitfield, :bool] and @options[:align]
177
218
  result_deserialized=var.load(buffer.slice(byte, var.size))
178
219
  else # En caso de ser bits
179
220
  tmp_buffer = buffer.slice(byte, (var.size+bit/8.0).ceil)
180
221
  result_deserialized=var.load([tmp_buffer.pack('C*').unpack('b*').first.slice(bit,var.size*8)].pack('b*').unpack('C*'))
181
222
  end
182
- serialized_values["#{key}"] = result_deserialized.count>1 ? result_deserialized : result_deserialized.first
223
+
224
+ if attr_options[:type] == :nest
225
+ serialized_values["#{attr}"] = result_deserialized
226
+ else
227
+ serialized_values["#{attr}"] = result_deserialized.count>1 ? result_deserialized : result_deserialized.first
228
+ end
183
229
  current_address = (byte+bit/8.0)+var.size
184
230
  end
185
231
 
186
232
  # Asigno los datos leidos
187
233
  serialized_values.each do |k,v|
188
- if @serializable.respond_to? "#{k}="
189
- @serializable.send("#{k}=", v)
190
- else
191
- @serializable.instance_variable_set("@#{k}".to_sym, v)
192
- end
234
+ @serializable.send("#{k}=", v)
193
235
  end
194
236
  @serializable
195
237
  end
196
238
 
239
+ # Return size of object in bytes
240
+ def size
241
+ serializable_values = @serializable.serializable_hash(@options)
242
+ start_address = @options[:start_address] || 0
243
+
244
+ current_address = 0.0 # Dirección en bytes
245
+
246
+ @serializable.attr_config.each do |attr_name, attr_options|
247
+ var = attr_options[:coder].new(attr_options.merge(parent: @serializable))
248
+
249
+ byte = current_address.floor
250
+ bit = (current_address.modulo(1)*8).round
251
+
252
+ if @options[:align]
253
+ if !attr_options[:type].in? [:bitfield, :bool, :nest]
254
+ # Se posiciona al principio de un byte
255
+ if bit != 0
256
+ byte += 1
257
+ bit = 0
258
+ current_address = (byte+bit/8.0)
259
+ end
260
+ # Si el dato es una palabra simple, alinea los datos en el siguiente byte par
261
+ if var.bit_length > 8 and current_address.modulo(2) != 0
262
+ byte += 1
263
+ bit = 0
264
+ end
265
+ # Si el dato es una palabra doble, alinea los datos en la siguiente palabra par
266
+ if var.bit_length > 16 and (current_address + start_address*2).modulo(4) != 0
267
+ byte += 4-byte%4
268
+ bit = 0
269
+ end
270
+ end
271
+ end
272
+
273
+ current_address = (byte+bit/8.0)+var.size
274
+ end
275
+ current_address-start_address
276
+ end
277
+
197
278
  end #close class serializer
198
279
 
199
280
  # Returns a binary array representing the model. Configuration can be
@@ -215,6 +296,8 @@ module ActiveModel
215
296
  Serializer.new(self, options).dump
216
297
  end
217
298
 
299
+ alias_method :dump, :to_bytes
300
+
218
301
  def to_words(options = {}, &block)
219
302
  data = to_bytes(options, &block)
220
303
  byte_count = (data.count/2.0).ceil*2
@@ -270,11 +353,21 @@ module ActiveModel
270
353
  retVal
271
354
  end
272
355
 
356
+ alias_method :load, :from_bytes
357
+
273
358
  def from_words(buffer = [], options = {}, &block)
274
359
  data = buffer.pack('v*').unpack('C*')
275
360
  from_bytes(data, options, &block)
276
361
  end
277
362
 
363
+ def size(options = {})
364
+ default_options = {
365
+ :align => true
366
+ }
367
+ options = default_options.deep_merge(options)
368
+ Serializer.new(self, options).size
369
+ end
370
+
278
371
  end
279
372
  end
280
373
  end
@@ -1,6 +1,6 @@
1
1
  module DataTypes
2
2
 
3
- class Type
3
+ class BaseType
4
4
 
5
5
  attr_accessor :raw_value, :bit_length, :type, :sign, :count, :length, :value, :name, :parent
6
6
 
@@ -53,6 +53,8 @@ module DataTypes
53
53
  v.to_s[0...length]
54
54
  when :bool
55
55
  (v.in? [1, true]) ? true : false
56
+ when :nest
57
+ v
56
58
  else
57
59
  v.to_i
58
60
  end
@@ -78,7 +80,7 @@ module DataTypes
78
80
  def check_raw_value(value)
79
81
  check(value, {
80
82
  :type => :uint8,
81
- :count => size,
83
+ :count => (size < 1 ? 1 : size),
82
84
  :length => 1,
83
85
  :bit_length => 8,
84
86
  :sign => :unsigned,
@@ -2,88 +2,88 @@ require_relative 'base_type.rb'
2
2
 
3
3
  module DataTypes
4
4
 
5
- class Int8 < Type
5
+ class Int8 < BaseType
6
6
  def initialize(options = {})
7
7
  super options.merge :bit_length => 8, :sign => :signed
8
8
  end
9
9
 
10
10
  def dump(value=nil)
11
- before_dump( value )
11
+ before_dump( value ).pack('c*').unpack('C*')
12
12
  @raw_value = @value
13
13
  end
14
14
 
15
15
  def load(raw_value)
16
- self.value = check_raw_value(raw_value)
16
+ self.value = check_raw_value(raw_value).pack('C*').unpack('c*')
17
17
  after_load
18
18
  end
19
19
  end
20
20
 
21
- class Int16 < Type
21
+ class Int16 < BaseType
22
22
  def initialize(options = {})
23
23
  super options.merge :bit_length => 16, :sign => :signed
24
24
  end
25
25
 
26
26
  def dump(value=nil)
27
27
  before_dump( value )
28
- @raw_value = @value.pack('v*').unpack('C*')
28
+ @raw_value = @value.pack('s<*').unpack('C*')
29
29
  end
30
30
 
31
31
  def load(raw_value)
32
- self.value = check_raw_value(raw_value).pack('C*').unpack('v*')
32
+ self.value = check_raw_value(raw_value).pack('C*').unpack('s<*')
33
33
  after_load
34
34
  end
35
35
  end
36
36
 
37
- class Int32 < Type
37
+ class Int32 < BaseType
38
38
  def initialize(options = {})
39
39
  super options.merge :bit_length => 32, :sign => :signed
40
40
  end
41
41
 
42
42
  def dump(value=nil)
43
43
  before_dump( value )
44
- @raw_value = @value.pack('V*').unpack('C*')
44
+ @raw_value = @value.pack('l<*').unpack('C*')
45
45
  end
46
46
 
47
47
  def load(raw_value)
48
- self.value = check_raw_value(raw_value).pack('C*').unpack('V*') if !value.nil?
48
+ self.value = check_raw_value(raw_value).pack('C*').unpack('l<*') if !value.nil?
49
49
  after_load
50
50
  end
51
51
  end
52
52
 
53
- class UInt16 < Type
53
+ class UInt16 < BaseType
54
54
  def initialize(options = {})
55
55
  super options.merge :bit_length => 16, :sign => :unsigned
56
56
  end
57
57
 
58
58
  def dump(value=nil)
59
59
  before_dump( value )
60
- @raw_value = @value.pack('v*').unpack('C*')
60
+ @raw_value = @value.pack('S<*').unpack('C*')
61
61
  end
62
62
 
63
- def load(raw_value)
63
+ def load(raw_value)
64
64
  @raw_value = check_raw_value(raw_value)
65
- self.value = @raw_value.pack('C*').unpack('v*')
65
+ self.value = @raw_value.pack('C*').unpack('S<*')
66
66
  after_load
67
67
  end
68
68
  end
69
69
 
70
- class UInt32 < Type
70
+ class UInt32 < BaseType
71
71
  def initialize(options = {})
72
72
  super options.merge :bit_length => 32, :sign => :unsigned
73
73
  end
74
74
 
75
75
  def dump(value=nil)
76
76
  before_dump( value )
77
- @raw_value = @value.pack('l*').unpack('C*')
77
+ @raw_value = @value.pack('L<*').unpack('C*')
78
78
  end
79
79
 
80
80
  def load(raw_value)
81
- self.value = check_raw_value(raw_value).pack('C*').unpack('l*') if !value.nil?
81
+ self.value = check_raw_value(raw_value).pack('C*').unpack('L<*') if !value.nil?
82
82
  after_load
83
83
  end
84
84
  end
85
85
 
86
- class UInt8 < Type
86
+ class UInt8 < BaseType
87
87
  def initialize(options = {})
88
88
  super options.merge :bit_length => 8, :sign => :unsigned
89
89
  end
@@ -99,9 +99,9 @@ module DataTypes
99
99
  end
100
100
  end
101
101
 
102
- class BitField < Type
102
+ class BitField < BaseType
103
103
  def initialize(options = {})
104
- length = 32 if length > 32
104
+ length = options[:bin_length].blank? ? 1 : (options[:bin_length] > 32 ? 32 : options[:bin_length])
105
105
  super options.merge :bit_length => length, :sign => :unsigned
106
106
  end
107
107
 
@@ -137,7 +137,7 @@ module DataTypes
137
137
  end
138
138
  end
139
139
 
140
- class Char < Type
140
+ class Char < BaseType
141
141
  def initialize(options = {})
142
142
  super options.merge :bit_length => 8, :sign => nil, :default_value => "\x0"
143
143
  end
@@ -153,7 +153,7 @@ module DataTypes
153
153
  end
154
154
  end
155
155
 
156
- class Bool < Type
156
+ class Bool < BaseType
157
157
  def initialize(options = {})
158
158
  super options.merge :bit_length => 1, :default_value => false
159
159
  end
@@ -169,7 +169,7 @@ module DataTypes
169
169
  end
170
170
  end
171
171
 
172
- class Float32 < Type
172
+ class Float32 < BaseType
173
173
  def initialize(options = {})
174
174
  super options.merge :bit_length => 32, :sign => nil, :default_value => 0.0
175
175
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveModelSerializersBinary
2
- VERSION = "0.0.25"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -5,12 +5,12 @@
5
5
  # id :integer not null, primary key
6
6
  # uid :integer
7
7
  # silo :integer
8
- # nombre :string(255)
8
+ # nombre :string
9
9
  # total_acumulado :integer
10
10
  # bits1 :boolean
11
11
  # bits2 :boolean
12
12
  # ffloat :float
13
- # variable :string(255)
13
+ # variable :string
14
14
  # created_at :datetime
15
15
  # updated_at :datetime
16
16
  #
@@ -18,29 +18,6 @@
18
18
  class Producto < ActiveRecord::Base
19
19
  include ActiveModel::Serializers::Binary
20
20
 
21
- int16 :uid
22
- int16 :silo
23
21
  char :nombre, count: 1, length: 20
24
- int32 :total_acumulado
25
- bool :bits1
26
- bool :bits2
27
- bool :bits3, virtual: true
28
- bool :bits4, virtual: true
29
- bool :bits5, virtual: true
30
- bool :bits6, virtual: true
31
- bool :bits7, virtual: true
32
- bool :bits8, virtual: true
33
- bool :bits9, virtual: true
34
- bool :bits10, virtual: true
35
- bool :bits11, virtual: true
36
- bool :bits12, virtual: true
37
- bool :bits13, virtual: true
38
- bool :bits14, virtual: true
39
- bool :bits15, virtual: true
40
- bool :bits16, virtual: true
41
- float32 :ffloat
42
- char :variable, count: 1, length: 20 do |field, mode|
43
- puts (mode.to_s + ': variable block').blue
44
- end
45
- int32 :test, count: 10, virtual: true # No existe en la DB
22
+ nest :tipo, coder: Tipo
46
23
  end
@@ -0,0 +1,18 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: tipos
4
+ #
5
+ # id :integer not null, primary key
6
+ # name :string
7
+ # producto_id :integer
8
+ # created_at :datetime not null
9
+ # updated_at :datetime not null
10
+ #
11
+
12
+ class Tipo < ActiveRecord::Base
13
+ include ActiveModel::Serializers::Binary
14
+
15
+ int16 :producto_id
16
+ char :name, count: 1, length: 20
17
+
18
+ end
@@ -14,7 +14,7 @@ Rails.application.configure do
14
14
 
15
15
  # Configure static asset server for tests with Cache-Control for performance.
16
16
  config.serve_static_assets = true
17
- config.static_cache_control = 'public, max-age=3600'
17
+ config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
18
18
 
19
19
  # Show full error reports and disable caching.
20
20
  config.consider_all_requests_local = true
@@ -0,0 +1,9 @@
1
+ class CreateTipos < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :tipos do |t|
4
+ t.string :name
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -1,4 +1,3 @@
1
- # encoding: UTF-8
2
1
  # This file is auto-generated from the current state of the database. Instead
3
2
  # of editing this file, please use the migrations feature of Active Record to
4
3
  # incrementally modify your database, and then regenerate this schema definition.
@@ -11,9 +10,9 @@
11
10
  #
12
11
  # It's strongly recommended that you check this file into your version control system.
13
12
 
14
- ActiveRecord::Schema.define(version: 20160608024807) do
13
+ ActiveRecord::Schema.define(version: 20170817015810) do
15
14
 
16
- create_table "productos", force: true do |t|
15
+ create_table "productos", force: :cascade do |t|
17
16
  t.integer "uid"
18
17
  t.integer "silo"
19
18
  t.string "nombre"
@@ -26,4 +25,12 @@ ActiveRecord::Schema.define(version: 20160608024807) do
26
25
  t.datetime "updated_at"
27
26
  end
28
27
 
28
+ create_table "tipos", force: :cascade do |t|
29
+ t.string "name"
30
+ t.integer "producto_id"
31
+ t.datetime "created_at", null: false
32
+ t.datetime "updated_at", null: false
33
+ t.index ["producto_id"], name: "index_tipos_on_producto_id"
34
+ end
35
+
29
36
  end
@@ -8,42 +8,21 @@ class String
8
8
  end
9
9
 
10
10
  orig = Producto.new
11
- orig.uid = 1
12
- orig.silo = 0
13
- orig.nombre = "MAIZ"
14
- orig.total_acumulado = 50
15
- orig.bits1 = 1
16
- orig.bits2 = 0
17
- orig.bits3 = nil
18
- orig.bits4 = nil
19
- orig.bits5 = nil
20
- orig.bits6 = nil
21
- orig.bits7 = nil
22
- orig.bits8 = nil
23
- orig.bits9 = nil
24
- orig.bits10 = nil
25
- orig.bits11 = nil
26
- orig.bits12 = nil
27
- orig.bits13 = nil
28
- orig.bits14 = nil
29
- orig.bits15 = nil
30
- orig.bits16 = nil
31
- orig.ffloat= 1.2345678
32
- orig.variable = '012345678901234567890123456789'
33
- orig.test = (1..10).to_a
11
+ orig.nombre = "AAAAAAAAAAAAAAAAAAAA"
12
+ orig.tipo = Tipo.new({name:"BBBBBBBBBBBBBBBBBBBB", producto_id: 0x55AA})
34
13
 
35
14
  puts 'Datos originales...'
36
15
  puts orig.inspect.green
37
16
 
38
17
  puts 'serializando...'
39
- serial = orig.to_bytes do |b|
40
- puts 'to_bytes block'.blue
41
- end
18
+ serial = orig.to_bytes
42
19
 
43
20
  puts serial.inspect.yellow
44
21
 
45
22
  puts 'deserializando...'
46
- deser = Producto.new.from_bytes serial do |b|
47
- puts 'from_bytes block'.blue
48
- end
49
- puts deser.inspect.green
23
+ deser = Producto.new.from_bytes serial
24
+ puts deser.inspect.green
25
+
26
+ must_be_equal = (serial <=> deser.to_bytes) === 0
27
+ puts "Test OK".green if must_be_equal
28
+ puts "Test fail".red unless must_be_equal
@@ -5,12 +5,12 @@
5
5
  # id :integer not null, primary key
6
6
  # uid :integer
7
7
  # silo :integer
8
- # nombre :string(255)
8
+ # nombre :string
9
9
  # total_acumulado :integer
10
10
  # bits1 :boolean
11
11
  # bits2 :boolean
12
12
  # ffloat :float
13
- # variable :string(255)
13
+ # variable :string
14
14
  # created_at :datetime
15
15
  # updated_at :datetime
16
16
  #
@@ -0,0 +1,20 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: tipos
4
+ #
5
+ # id :integer not null, primary key
6
+ # name :string
7
+ # producto_id :integer
8
+ # created_at :datetime not null
9
+ # updated_at :datetime not null
10
+ #
11
+
12
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
13
+
14
+ one:
15
+ name: MyString
16
+ producto: one
17
+
18
+ two:
19
+ name: MyString
20
+ producto: two
@@ -5,12 +5,12 @@
5
5
  # id :integer not null, primary key
6
6
  # uid :integer
7
7
  # silo :integer
8
- # nombre :string(255)
8
+ # nombre :string
9
9
  # total_acumulado :integer
10
10
  # bits1 :boolean
11
11
  # bits2 :boolean
12
12
  # ffloat :float
13
- # variable :string(255)
13
+ # variable :string
14
14
  # created_at :datetime
15
15
  # updated_at :datetime
16
16
  #
@@ -0,0 +1,18 @@
1
+ # == Schema Information
2
+ #
3
+ # Table name: tipos
4
+ #
5
+ # id :integer not null, primary key
6
+ # name :string
7
+ # producto_id :integer
8
+ # created_at :datetime not null
9
+ # updated_at :datetime not null
10
+ #
11
+
12
+ require 'test_helper'
13
+
14
+ class TipoTest < ActiveSupport::TestCase
15
+ # test "the truth" do
16
+ # assert true
17
+ # end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_model_serializers_binary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - ByS Sistemas de Control
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-28 00:00:00.000000000 Z
11
+ date: 2017-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,156 +42,30 @@ dependencies:
42
42
  name: sqlite3
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.3'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '4.1'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '4.1'
69
- - !ruby/object:Gem::Dependency
70
- name: devise
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.2'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.2'
83
- - !ruby/object:Gem::Dependency
84
- name: jquery-ui-rails
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '4.2'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '4.2'
97
- - !ruby/object:Gem::Dependency
98
- name: sass-rails
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '4.0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '4.0'
111
- - !ruby/object:Gem::Dependency
112
- name: uglifier
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '1.3'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '1.3'
125
- - !ruby/object:Gem::Dependency
126
- name: coffee-rails
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '4.0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '4.0'
139
- - !ruby/object:Gem::Dependency
140
- name: turbolinks
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '2.2'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '2.2'
153
- - !ruby/object:Gem::Dependency
154
- name: jbuilder
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '1.2'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '1.2'
167
- - !ruby/object:Gem::Dependency
168
- name: jquery-validation-rails
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '1.12'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '1.12'
181
- - !ruby/object:Gem::Dependency
182
- name: therubyracer
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: '0.12'
61
+ version: '5.0'
188
62
  type: :development
189
63
  prerelease: false
190
64
  version_requirements: !ruby/object:Gem::Requirement
191
65
  requirements:
192
66
  - - "~>"
193
67
  - !ruby/object:Gem::Version
194
- version: '0.12'
68
+ version: '5.0'
195
69
  - !ruby/object:Gem::Dependency
196
70
  name: colorize
197
71
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +86,14 @@ dependencies:
212
86
  requirements:
213
87
  - - "~>"
214
88
  - !ruby/object:Gem::Version
215
- version: '4.1'
89
+ version: '5.0'
216
90
  type: :runtime
217
91
  prerelease: false
218
92
  version_requirements: !ruby/object:Gem::Requirement
219
93
  requirements:
220
94
  - - "~>"
221
95
  - !ruby/object:Gem::Version
222
- version: '4.1'
96
+ version: '5.0'
223
97
  description: active_model_serializers_binary is a declarative way to serialize/deserialize
224
98
  ActiveModel classes for raw data exchange.
225
99
  email:
@@ -255,6 +129,7 @@ files:
255
129
  - test/dummy/app/models/.keep
256
130
  - test/dummy/app/models/concerns/.keep
257
131
  - test/dummy/app/models/producto.rb
132
+ - test/dummy/app/models/tipo.rb
258
133
  - test/dummy/app/views/layouts/application.html.erb
259
134
  - test/dummy/bin/bundle
260
135
  - test/dummy/bin/rails
@@ -279,6 +154,7 @@ files:
279
154
  - test/dummy/config/routes.rb
280
155
  - test/dummy/config/secrets.yml
281
156
  - test/dummy/db/migrate/20160608024807_create_productos.rb
157
+ - test/dummy/db/migrate/20170817015810_create_tipos.rb
282
158
  - test/dummy/db/schema.rb
283
159
  - test/dummy/lib/assets/.keep
284
160
  - test/dummy/lib/test_parser.rb
@@ -288,7 +164,9 @@ files:
288
164
  - test/dummy/public/500.html
289
165
  - test/dummy/public/favicon.ico
290
166
  - test/dummy/test/fixtures/productos.yml
167
+ - test/dummy/test/fixtures/tipos.yml
291
168
  - test/dummy/test/models/producto_test.rb
169
+ - test/dummy/test/models/tipo_test.rb
292
170
  - test/test_helper.rb
293
171
  homepage: https://github.com/bys-control/active_model_serializers_binary
294
172
  licenses:
@@ -310,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
310
188
  version: '0'
311
189
  requirements: []
312
190
  rubyforge_project:
313
- rubygems_version: 2.5.1
191
+ rubygems_version: 2.4.8
314
192
  signing_key:
315
193
  specification_version: 4
316
194
  summary: Serialize models to/from binary format for raw data exchange
@@ -328,6 +206,7 @@ test_files:
328
206
  - test/dummy/app/models/.keep
329
207
  - test/dummy/app/models/concerns/.keep
330
208
  - test/dummy/app/models/producto.rb
209
+ - test/dummy/app/models/tipo.rb
331
210
  - test/dummy/app/views/layouts/application.html.erb
332
211
  - test/dummy/bin/bundle
333
212
  - test/dummy/bin/rails
@@ -352,6 +231,7 @@ test_files:
352
231
  - test/dummy/config/routes.rb
353
232
  - test/dummy/config/secrets.yml
354
233
  - test/dummy/db/migrate/20160608024807_create_productos.rb
234
+ - test/dummy/db/migrate/20170817015810_create_tipos.rb
355
235
  - test/dummy/db/schema.rb
356
236
  - test/dummy/lib/assets/.keep
357
237
  - test/dummy/lib/test_parser.rb
@@ -361,6 +241,7 @@ test_files:
361
241
  - test/dummy/public/500.html
362
242
  - test/dummy/public/favicon.ico
363
243
  - test/dummy/test/fixtures/productos.yml
244
+ - test/dummy/test/fixtures/tipos.yml
364
245
  - test/dummy/test/models/producto_test.rb
246
+ - test/dummy/test/models/tipo_test.rb
365
247
  - test/test_helper.rb
366
- has_rdoc: