jsv.rb 0.0.1.pre → 0.0.1.pre2

Sign up to get free protection for your applications and to get access to all the features.
data/JSV_LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ This software contains Gary Court's JSV, which is made available under the
2
+ following license.
3
+
4
+ Copyright 2010 Gary Court. All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without modification, are
7
+ permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this list of
10
+ conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list
13
+ of conditions and the following disclaimer in the documentation and/or other materials
14
+ provided with the distribution.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED
17
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
18
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR
19
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
22
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
23
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+
26
+ The views and conclusions contained in the software and documentation are those of the
27
+ authors and should not be interpreted as representing official policies, either expressed
28
+ or implied, of Gary Court or the JSON Schema specification.
data/README CHANGED
@@ -13,17 +13,37 @@ suitable for use in ExecJS. It also contains a Ruby shim for communicating
13
13
  with JSV.
14
14
 
15
15
  jsv.rb was written at Northwestern University's Biomedical Informatics
16
- Center[2] for use in NCS Navigator Cases[3].
16
+ Center[2] for use in NCS Navigator Cases[3]. It embeds JSV 4.0.2.
17
17
 
18
- 2. License
18
+ 2. Usage
19
+
20
+ The short version:
21
+
22
+ require 'jsv'
23
+
24
+ schema = %Q{{"properties":{"foo":{"type":"integer"}}}}
25
+
26
+ jsv = JSV::Context.new
27
+ env = jsv.create_environment
28
+ report = env.validate('{"foo":"bar"}', schema)
29
+
30
+ report.has_errors? # => true
31
+ report.errors # => a list of errors; see JSV's documentation for
32
+ # error object structure
33
+
34
+ See USAGE for more details.
35
+
36
+ 3. License
19
37
 
20
38
  Copyright (c) 2013 David Yip. Made available under the MIT License; see
21
39
  LICENSE for details.
22
40
 
23
- 3. Special thanks
41
+ 4. Special thanks
24
42
 
25
43
  she, Kap Slap, Starsmith, Neon Indian, Florence + the Machine.
26
44
 
27
45
  [1]: https://github.com/garycourt/JSV
28
46
  [2]: http://projects.nubic.northwestern.edu/
29
47
  [3]: https://github.com/NUBIC/ncs_navigator_core
48
+
49
+ # vim:ts=2:sw=2:et:tw=78
data/lib/jsv/context.rb CHANGED
@@ -33,5 +33,18 @@ module JSV
33
33
  json,
34
34
  schema)
35
35
  end
36
+
37
+ # Public: A custom inspect.
38
+ #
39
+ # When using the RubyRacer runtime, weak references to Ruby wrappers for
40
+ # Javascript objects will show up in inspect output. When those wrappers
41
+ # are GCed, references will break and Object#inspect breaks too.
42
+ #
43
+ # This implementation of inspect avoids the problem by not inspecting the
44
+ # execjs context. (The context still appears to be fully functional after
45
+ # GC.)
46
+ def inspect
47
+ "#<#{self.class.name}:0x#{object_id.to_s(16)}>"
48
+ end
36
49
  end
37
50
  end
@@ -14,7 +14,7 @@ module JSV
14
14
  def validate(json, schema)
15
15
  result = @context.validate(self, json, schema)
16
16
 
17
- JSV::Report.new(result)
17
+ Report.new(result)
18
18
  end
19
19
 
20
20
  def create_schema(data, schema, uri)
data/lib/jsv/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module JSV
2
- VERSION = '0.0.1.pre'
2
+ VERSION = '0.0.1.pre2'
3
3
  end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ module JSV
4
+ describe Context do
5
+ describe '#inspect' do
6
+ it 'does not raise an error after a GC cycle' do
7
+ ctx = JSV::Context.new
8
+ env = ctx.create_environment
9
+ report = env.validate('{}', '{}')
10
+ runs_before = GC.count
11
+
12
+ until GC.count > runs_before do
13
+ (1...1000).to_a
14
+ end
15
+
16
+ lambda { ctx.inspect }.should_not raise_error
17
+ end
18
+ end
19
+ end
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsv.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.pre
4
+ version: 0.0.1.pre2
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -89,11 +89,13 @@ files:
89
89
  - lib/jsv/environment.rb
90
90
  - lib/jsv/report.rb
91
91
  - lib/jsv/version.rb
92
+ - spec/jsv/context_spec.rb
92
93
  - spec/jsv/environment_spec.rb
93
94
  - spec/spec_helper.rb
94
95
  - js/build/jsv.rb.js
95
96
  - README
96
97
  - LICENSE
98
+ - JSV_LICENSE
97
99
  homepage: https://github.com/NUBIC/jsv.rb
98
100
  licenses: []
99
101
  post_install_message:
@@ -108,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
110
  version: '0'
109
111
  segments:
110
112
  - 0
111
- hash: 361765318298519476
113
+ hash: 2983618420019040952
112
114
  required_rubygems_version: !ruby/object:Gem::Requirement
113
115
  none: false
114
116
  requirements:
@@ -122,5 +124,6 @@ signing_key:
122
124
  specification_version: 3
123
125
  summary: Run JSV in Ruby applications
124
126
  test_files:
127
+ - spec/jsv/context_spec.rb
125
128
  - spec/jsv/environment_spec.rb
126
129
  - spec/spec_helper.rb