gvariant 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gvariant.rb +13 -12
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e5fee5e459cf887ec7cb21758f5d5639b2aab9a0
4
- data.tar.gz: 6217118ee8a4b62eea11b8fa137a6b86a1c4ffca
3
+ metadata.gz: 5a6a26869531605658d5c8bf0728a6314a52ad70
4
+ data.tar.gz: a443669cb24d08404aba807d268bae4ecd2fa5b0
5
5
  SHA512:
6
- metadata.gz: da65060d983455ba3611cf0b86de1490ce6276589460783a8ec8ba94d025f7c3dfd71e326e1be07f20160176bc380a9898cfe48da09f4f0813ea6ebf0c746688
7
- data.tar.gz: 4551f98e735677109f132dfd67229283f1c0dba2d7edaf4d7d4ce9914de223960e242cb0901ae8658ce599b03ae24e8666b8bea6da90f8858f464fa8d88af2a3
6
+ metadata.gz: cb887198d040635e5e53d907957750b2811db75663bf2c87a559d2923093c47cd994f42172d93ac658052c5374516935ad8d555b2bdf3d839c76d8869005a796
7
+ data.tar.gz: ac1939395cd79f54c3fff582d421ab4accca74b86974a867aaf6043af00429143c5bf4cebf44f26b1a890cf0d035628948881a08eac9a56f781bab3be9371927
data/lib/gvariant.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  class GVariantBasicType
2
2
  attr_reader :id, :fixed_size, :default_value, :alignment
3
3
 
4
- def initialize(id, unpack, alignment, fixed_size, default_value)
4
+ def initialize(id, pack_format, alignment, fixed_size, default_value)
5
5
  @id, @pack_format, @alignment, @fixed_size, @default_value =
6
- id, unpack, alignment, fixed_size, default_value
6
+ id, pack_format, alignment, fixed_size, default_value
7
7
  end
8
8
 
9
9
  def align(i)
@@ -170,7 +170,7 @@ class GVariantOffsetType < GVariantBasicType
170
170
  packed = ""
171
171
 
172
172
  loop do
173
- determine_offset_type(buf.length + packed_size)
173
+ determine_offset_type(buf.length + packed_size, false)
174
174
  break if @offset_size == offset_size_prev
175
175
  offset_size_prev = @offset_size
176
176
 
@@ -183,8 +183,8 @@ class GVariantOffsetType < GVariantBasicType
183
183
 
184
184
  private
185
185
 
186
- def determine_offset_type(l)
187
- if @offset_size.nil?
186
+ def determine_offset_type(l, use_cache = true)
187
+ if @offset_size.nil? || !use_cache
188
188
  if (l < 0xff)
189
189
  @offset_size = 1
190
190
  @offset_pack_format = 'C'
@@ -226,7 +226,8 @@ class GVariantDictionaryType < GVariantOffsetType
226
226
  value_end = buf.length - @offset_size
227
227
  end
228
228
 
229
- key = @key_element.read(buf[0..key_end - 1]).to_sym
229
+ key = @key_element.read(buf[0..key_end - 1])
230
+ key = key.to_sym if key.is_a? String
230
231
  value = @value_element.read(buf[@value_element.align(key_end)..value_end - 1])
231
232
 
232
233
  Hash[key, value]
@@ -272,7 +273,7 @@ class GVariantArrayType < GVariantOffsetType
272
273
  c = 0
273
274
 
274
275
  if (@element.fixed_size)
275
- return [] if (size % @element.fixed_size != 0)
276
+ return @default_value if (size % @element.fixed_size != 0)
276
277
  n = size / @element.fixed_size
277
278
 
278
279
  n.times do
@@ -401,7 +402,7 @@ class GVariant
401
402
  GVariantUnsignedShortType.new
402
403
  when 'i'
403
404
  GVariantSignedIntType.new
404
- when 'u'
405
+ when 'u', 'h'
405
406
  GVariantUnsignedIntType.new
406
407
  when 'x'
407
408
  GVariantSignedLongType.new
@@ -442,11 +443,11 @@ class GVariant
442
443
  end
443
444
  end
444
445
 
445
- def self.parse_type(str)
446
- type = next_type(str, 0)
446
+ def self.parse_type(typestr)
447
+ type = next_type(typestr, 0)
447
448
 
448
- if type.nil? || type.id.length != str.length
449
- raise ArgumentError.new("Invalid type string: #{str}")
449
+ if type.nil? || type.id.length != typestr.length
450
+ raise ArgumentError.new("Invalid type string: #{typestr}")
450
451
  end
451
452
 
452
453
  type
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gvariant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Mack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-11 00:00:00.000000000 Z
11
+ date: 2016-06-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A simple reader and writer for the GVariant serialization format
14
14
  email: github@zonque.org