rvs 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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