This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
commit 58bc5234ba4449f10c0348b566dd9c5456a73787
tree e2ab550c57c0712d106ca0a033ec0a48840b25b2
parent a14de4ebef3481682cdfd06dbdfc98e9d4e78f0f
tree e2ab550c57c0712d106ca0a033ec0a48840b25b2
parent a14de4ebef3481682cdfd06dbdfc98e9d4e78f0f
jcon /
README
= JCon -- JavaScript Type Conformance Checking JCON (the "JavaScript Conformance" gem), is a companion to JSON. It tests JSON values against ECMAScript 4.0-style type definitions (PDF[http://www.ecmascript.org/es4/spec/overview.pdf]), such as <code>string?</code>, <code>(int, boolean)</code>, or <code>[string, (int, boolean), {x:double, y:double}?]</code>. JCON also defines an RSpec matcher, <code>conforms_to_js</code>. Use JCON together with the {JavaScript Fu Rails plugin}[http://osteele.com/archives/2008/04/javascript-fu-rails-plugin] to test the argument values in generated JavaScript function calls. == Install gem install rcon == Usage type = JCON::parse "[string, int]" type.contains?(['a', 1]) # => true type.contains?(['a', 'b']) # => false type.contains?(['a', 1, 2]) # => true type = JCON::parse "type S = (string, int); {a: [S], b: int}" type.contains?({:a => [1, 'b'], :b => 2}) # => true == RSpec Matcher [1, 'xyzzy'].should conform_to_js('[int, string]') [1, 2, 'xyzzy'].should_not conform_to_js('[int, string]') {:x => 1}.should conform_to_js('{x: int}') Use this with the {JavaScript Fu Rails plugin}[http://osteele.com/archives/2008/04/javascript-fu-rails-plugin] to test JSON arguments: '<script>fn("id", {x:1, y:2}, true)</script>'.should call_js('fn') do |args| args[0].should conform_to_js('string') args[1].should conform_to_js('{x:int, y:int}') args[2].should conform_to_js('boolean') # or: args.should conform_to_js('[string, {x:int, y:int}, boolean]') end == License Copyright 2008 by {Oliver Steele}[http://workingwithrails.com/person/12359-oliver-steele]. All rights reserved. Released under the MIT License.








