sexy_json_schemas 0.0.5 → 0.0.6

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.
@@ -2,9 +2,9 @@ module SexyJSONSchemas
2
2
  module DSL
3
3
  def schema(name, options = {}, &block)
4
4
  options[:root_element] ||= name unless options[:root_element] == false
5
- @schema_name = name
6
- @definition = SchemaDefinition.new(name, options)
7
- @definition.instance_eval(&block)
5
+ @schema_name = name
6
+ @schema_options = options
7
+ @definition_block = block
8
8
  end
9
9
 
10
10
  def schema_name
@@ -12,7 +12,9 @@ module SexyJSONSchemas
12
12
  end
13
13
 
14
14
  def as_json
15
- @definition.as_json
15
+ definition = SchemaDefinition.new(@schema_name, @schema_options)
16
+ definition.instance_eval(&@definition_block)
17
+ definition.as_json
16
18
  end
17
19
  end
18
20
  end
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "sexy_json_schemas"
7
- gem.version = "0.0.5"
7
+ gem.version = "0.0.6"
8
8
  gem.authors = ["Donald Plummer", "Michael Xavier"]
9
9
  gem.email = ["donald@crystalcommerce.com", "xavier@crystalcommerce.com"]
10
10
  gem.description = %q{A DSL for generating JSON Schemas}
@@ -322,4 +322,27 @@ describe SexyJSONSchemas do
322
322
 
323
323
  it_should_behave_like "valid schema generator"
324
324
  end
325
+
326
+ describe "dynamic calls in schema definition" do
327
+ before(:each) do
328
+
329
+ end
330
+ subject { }
331
+
332
+ it "dynamically calls the schema" do
333
+ global_var = "bob"
334
+ subject = Class.new(JSONTestClass) {
335
+ schema "void", :root_element => "wat" do
336
+ ref_property "name", global_var
337
+ end
338
+ }
339
+ subject.as_json['properties']['wat']['properties']['name'].
340
+ should == {"$ref" => "bob"}
341
+
342
+ global_var = "fred"
343
+
344
+ subject.as_json['properties']['wat']['properties']['name'].
345
+ should == {"$ref" => "fred"}
346
+ end
347
+ end
325
348
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sexy_json_schemas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-27 00:00:00.000000000 Z
13
+ date: 2012-09-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake