rvs 0.1.2 → 0.1.3

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.
data/lib/rvs/parse.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'strscan'
2
2
  require 'bigdecimal'
3
+ require 'yajl'
3
4
 
4
5
  module RVS
5
6
  class Parser
@@ -22,10 +23,9 @@ class Parser
22
23
  get_chars(1)
23
24
  ''
24
25
  else
25
- reverse_special_chars(@scan.scan(/.*?"/).chop)
26
+ strval = '"' + @scan.scan(/.*?[^\\]+?\"/)
27
+ Yajl::Parser.new.parse(strval)
26
28
  end
27
- elsif next_char == 's'
28
- reverse_special_chars(get_chars(@scan.scan_until(/:/).chop.to_i))
29
29
  elsif next_char == ':'
30
30
  @scan.scan(/[a-zA-z_]+\w*/).to_sym
31
31
  elsif next_char == 'd'
@@ -104,10 +104,6 @@ class Parser
104
104
  retval
105
105
  end
106
106
 
107
- def reverse_special_chars(str)
108
- str.gsub(/\\n/, "\n").gsub(/\\r/, "\r").gsub(/\\t/, "\t")
109
- end
110
-
111
107
  def get_chars(count)
112
108
  retval = @scan.peek(count)
113
109
  @scan.pos = @scan.pos + count
data/lib/rvs/to_rvs.rb CHANGED
@@ -1,16 +1,11 @@
1
1
  require 'bigdecimal'
2
2
  require 'date'
3
3
  require 'time'
4
+ require 'yajl'
4
5
 
5
6
  class String
6
7
  def to_rvs
7
- raise "non-ascii strings aren't currently supported" unless ascii_only?
8
- no_specials = gsub(/\n/, '\n').gsub(/\r/, '\r').gsub(/\t/, '\t')
9
- if index('"') || index('\\')
10
- "s#{size}:#{no_specials}"
11
- else
12
- %Q{"#{no_specials}"}
13
- end
8
+ Yajl::Encoder.encode(self)
14
9
  end
15
10
  end
16
11
 
data/test/rvs.dt.rb CHANGED
@@ -87,8 +87,8 @@ class Test_rvs < DohTest::TestGroup
87
87
  verify('blahblee', %q{"blahblee"})
88
88
  verify("blahblee\n\r\t", %q{"blahblee\n\r\t"})
89
89
  verify('blahb\'lee', %q{"blahb'lee"})
90
- verify('blahb\\lee', %q{s9:blahb\lee})
91
- verify('blahb"lee', %q{s9:blahb"lee})
92
- verify('blahb\'le"e', %q{s10:blahb'le"e})
90
+ verify('blahb\\lee', %q{"blahb\\\lee"})
91
+ verify('blahb"lee', %q{"blahb\"lee"})
92
+ verify('blahb\'le"e', %q{"blahb'le\"e"})
93
93
  end
94
94
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rvs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-02-24 00:00:00.000000000Z
13
+ date: 2012-02-27 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: dohtest
17
- requirement: &70310398318060 !ruby/object:Gem::Requirement
17
+ requirement: &70185437504820 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 0.1.4
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70310398318060
25
+ version_requirements: *70185437504820
26
26
  description: serialization of common ruby value classes to ascii text
27
27
  email:
28
28
  - devinfo@atpsoft.com