icss 0.1.3 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.watchr +35 -3
- data/CHANGELOG.md +38 -0
- data/Gemfile +19 -14
- data/README.md +296 -0
- data/Rakefile +2 -6
- data/TODO.md +13 -0
- data/VERSION +1 -1
- data/examples/avro_examples/complicated.icss.yaml +14 -13
- data/examples/bnc.icss.yaml +70 -0
- data/examples/chronic.icss.yaml +3 -3
- data/examples/license.icss.yaml +7 -0
- data/examples/source1.icss.yaml +4 -0
- data/examples/source2.icss.yaml +4 -0
- data/examples/test_icss.yaml +67 -0
- data/icss.gemspec +103 -43
- data/lib/icss.rb +37 -15
- data/lib/icss/core_types.rb +19 -0
- data/lib/icss/error.rb +4 -0
- data/{init.rb → lib/icss/init.rb} +0 -0
- data/lib/icss/message.rb +124 -66
- data/lib/icss/message/message_sample.rb +144 -0
- data/lib/icss/protocol.rb +184 -131
- data/lib/icss/protocol/code_asset.rb +18 -0
- data/lib/icss/protocol/data_asset.rb +23 -0
- data/lib/icss/protocol/license.rb +41 -0
- data/lib/icss/protocol/source.rb +37 -0
- data/lib/icss/protocol/target.rb +68 -0
- data/lib/icss/receiver_model.rb +24 -0
- data/lib/icss/receiver_model/active_model_shim.rb +36 -0
- data/lib/icss/receiver_model/acts_as_catalog.rb +170 -0
- data/lib/icss/receiver_model/acts_as_hash.rb +177 -0
- data/lib/icss/receiver_model/acts_as_loadable.rb +47 -0
- data/lib/icss/receiver_model/acts_as_tuple.rb +100 -0
- data/lib/icss/receiver_model/locale/en.yml +27 -0
- data/lib/icss/receiver_model/to_geo_json.rb +19 -0
- data/lib/icss/receiver_model/tree_merge.rb +34 -0
- data/lib/icss/receiver_model/validations.rb +31 -0
- data/lib/icss/serialization.rb +51 -0
- data/lib/icss/serialization/zaml.rb +443 -0
- data/lib/icss/type.rb +148 -501
- data/lib/icss/type/base_type.rb +0 -0
- data/lib/icss/type/named_type.rb +184 -0
- data/lib/icss/type/record_field.rb +77 -0
- data/lib/icss/type/record_model.rb +49 -0
- data/lib/icss/type/record_schema.rb +54 -0
- data/lib/icss/type/record_type.rb +325 -0
- data/lib/icss/type/simple_types.rb +72 -0
- data/lib/icss/type/structured_schema.rb +288 -0
- data/lib/icss/type/type_factory.rb +144 -0
- data/lib/icss/type/union_schema.rb +41 -0
- data/lib/icss/view_helper.rb +56 -19
- data/notes/named_array.md +32 -0
- data/notes/on_include_vs_extend_etc.rb +176 -0
- data/notes/technical_details.md +278 -0
- data/spec/core_types_spec.rb +119 -0
- data/spec/fixtures/zaml_complex_hash.yaml +35 -0
- data/spec/icss_spec.rb +86 -23
- data/spec/message/message_sample_spec.rb +4 -0
- data/spec/message_spec.rb +139 -0
- data/spec/protocol/license_spec.rb +67 -0
- data/spec/protocol/protocol_catalog_spec.rb +48 -0
- data/spec/protocol/protocol_validations_spec.rb +176 -0
- data/spec/protocol/source_spec.rb +65 -0
- data/spec/protocol_spec.rb +91 -37
- data/spec/receiver_model_spec.rb +111 -0
- data/spec/serialization/zaml_spec.rb +81 -0
- data/spec/serialization/zaml_test.rb +473 -0
- data/spec/serialization_spec.rb +63 -0
- data/spec/spec_helper.rb +24 -7
- data/spec/support/icss_test_helper.rb +67 -0
- data/spec/support/load_example_protocols.rb +17 -0
- data/spec/type/base_type_spec.rb +0 -0
- data/spec/type/named_type_spec.rb +75 -0
- data/spec/type/record_field_spec.rb +44 -0
- data/spec/type/record_model_spec.rb +206 -0
- data/spec/type/record_schema_spec.rb +161 -0
- data/spec/type/record_type_spec.rb +155 -0
- data/spec/type/simple_types_spec.rb +121 -0
- data/spec/type/structured_schema_spec.rb +300 -0
- data/spec/type/type_catalog_spec.rb +44 -0
- data/spec/type/type_factory_spec.rb +93 -0
- data/spec/type/union_schema_spec.rb +0 -0
- data/spec/type_spec.rb +63 -0
- metadata +205 -144
- data/CHANGELOG.textile +0 -9
- data/Gemfile.lock +0 -40
- data/README.textile +0 -29
- data/lib/icss/brevity.rb +0 -136
- data/lib/icss/code_asset.rb +0 -16
- data/lib/icss/core_ext.rb +0 -9
- data/lib/icss/data_asset.rb +0 -22
- data/lib/icss/old.rb +0 -96
- data/lib/icss/protocol_set.rb +0 -48
- data/lib/icss/sample_message_call.rb +0 -142
- data/lib/icss/target.rb +0 -72
- data/lib/icss/type/factory.rb +0 -196
- data/lib/icss/validations.rb +0 -16
- data/spec/validations_spec.rb +0 -171
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
require 'icss'
|
3
|
+
|
4
|
+
describe Icss::Meta::Type do
|
5
|
+
before { Icss::Meta::Type.send :flush_registry }
|
6
|
+
Icss::Meta::Type._catalog_loaded = true #prevent automatic loading of catalog
|
7
|
+
let(:type){ Icss::Meta::TypeFactory.receive(:name => 'name.space.test', :type => :record) }
|
8
|
+
before { Icss::Meta::TypeFactory.receive(:name => 'name.space.test', :type => :record) } # load type into registry
|
9
|
+
|
10
|
+
# Calling receive adds type to registry with after_receiver
|
11
|
+
describe :registry do
|
12
|
+
specify { Icss::Meta::Type.registry.should include('name.space.test' => type) }
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#find' do
|
16
|
+
context 'specific type name parameters' do
|
17
|
+
it('returns the type'){ Icss::Meta::Type.find('name.space.test').should == type }
|
18
|
+
it('should error if not found'){ lambda{ Icss::Meta::Type.find('name.space.not.found') }.should raise_error(Icss::NotFoundError) }
|
19
|
+
it('should error for wildcard name'){ lambda{ Icss::Meta::Type.find('name.*.test') }.should raise_error(Icss::NotFoundError) }
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'wildcard type name parameters' do
|
23
|
+
context ':all' do
|
24
|
+
it('accepts wilcard names'){ Icss::Meta::Type.find(:all, 'name.*').should == [type] }
|
25
|
+
it('returns empty array if not found'){ Icss::Meta::Type.find(:all, 'not.*.found').should == [] }
|
26
|
+
end
|
27
|
+
|
28
|
+
context ':first' do
|
29
|
+
it('accepts wilcard names'){ Icss::Meta::Type.find(:first, 'name.*').should == type }
|
30
|
+
it('returns nil if not found'){ Icss::Meta::Type.find(:first, 'not.*.found').should be_nil }
|
31
|
+
end
|
32
|
+
|
33
|
+
context ':last' do
|
34
|
+
it('accepts wilcard names'){ Icss::Meta::Type.find(:last, 'name.*').should == type }
|
35
|
+
it('returns nil if not found'){ Icss::Meta::Type.find(:last, 'not.*.found').should be_nil }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
describe '#all, #first, #last' do
|
40
|
+
it('#all returns all types'){ Icss::Meta::Type.all.should == [type] }
|
41
|
+
it('#first returns first of all types'){ Icss::Meta::Type.first.should == type }
|
42
|
+
it('#last returns last of all types'){ Icss::Meta::Type.last.should == type }
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
require 'gorillib/object/try_dup'
|
3
|
+
require 'icss/receiver_model/acts_as_hash'
|
4
|
+
require 'icss/receiver_model/acts_as_loadable'
|
5
|
+
require 'icss/receiver_model/acts_as_catalog'
|
6
|
+
require 'icss/type' #
|
7
|
+
require 'icss/type/simple_types' # Boolean, Integer, ...
|
8
|
+
require 'icss/type/named_type' # class methods for a named type: .metamodel .doc, .fullname, &c
|
9
|
+
require 'icss/type/record_type' # class methods for a record model: .field, .receive,
|
10
|
+
require 'icss/type/record_model' # instance methods for a record model
|
11
|
+
require 'icss/type/type_factory' # turn schema into types
|
12
|
+
require 'icss/type/structured_schema' # loads array, hash, enum, fixed and simple schema
|
13
|
+
require 'icss/receiver_model/active_model_shim'
|
14
|
+
require 'icss/type/record_schema' # loads array, hash, enum, fixed and simple schema
|
15
|
+
require 'icss/type/record_field'
|
16
|
+
|
17
|
+
require ENV.root_path('spec/support/icss_test_helper')
|
18
|
+
include IcssTestHelper
|
19
|
+
|
20
|
+
describe Icss::Meta::TypeFactory do
|
21
|
+
|
22
|
+
describe '.receive' do
|
23
|
+
context 'simple type' do
|
24
|
+
SIMPLE_TYPES_TO_TEST.each do |type_name, (expected_klass, _pkl, _pinst)|
|
25
|
+
it 'turns type_name into expected klass' do
|
26
|
+
Icss::Meta::TypeFactory.receive(type_name.to_sym).should == expected_klass
|
27
|
+
Icss::Meta::TypeFactory.receive(type_name.to_s ).should == expected_klass
|
28
|
+
end
|
29
|
+
it 'turns klass into expected klass' do
|
30
|
+
Icss::Meta::TypeFactory.receive(expected_klass ).should == expected_klass
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
[Object, Icss::Meta::IdenticalFactory].each do |type_name|
|
35
|
+
it "#{type_name} schema return the IdenticalFactory" do
|
36
|
+
Icss::Meta::TypeFactory.receive(type_name).should == Icss::Meta::IdenticalFactory
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
TEST_SCHEMA_FLAVORS = {
|
41
|
+
:is_type => {
|
42
|
+
Icss::This::That::TheOther => Icss::This::That::TheOther,
|
43
|
+
},
|
44
|
+
:named_type => {
|
45
|
+
'this.that.the_other' => ['this.that.the_other', Icss::This::That::TheOther],
|
46
|
+
'this.blinken' => ['this.blinken', Icss::This::Blinken],
|
47
|
+
},
|
48
|
+
:structured_schema => {
|
49
|
+
# Complex Container Types: map, array, enum, fixed
|
50
|
+
{ 'type' => :array, 'items' => :string } => [Icss::Meta::ArraySchema, 'Icss::ArrayOfString'],
|
51
|
+
{ 'type' => :map, 'values' => :string } => [Icss::Meta::HashSchema, 'Icss::HashOfString'],
|
52
|
+
{ 'type' => :map, 'values' => {'type' => :array, 'items' => :int } } => [Icss::Meta::HashSchema, 'Icss::HashOfArrayOfInteger'],
|
53
|
+
{ 'name' => 'Kind', 'type' => :enum, 'symbols' => [:A, :B, :C]} => [Icss::Meta::EnumSchema, 'Icss::Kind'],
|
54
|
+
{ 'name' => 'MD5', 'type' => :fixed, 'size' => 16} => [Icss::Meta::FixedSchema, 'Icss::Md5'],
|
55
|
+
{ 'name' => 'bob', 'type' => :record, } => [Icss::Meta::RecordSchema, 'Icss::Bob'],
|
56
|
+
{ 'name' => 'node', 'type' => :record, 'fields' => [
|
57
|
+
{ 'name' => :label, 'type' => :string},
|
58
|
+
{ 'name' => :children, 'type' => {'type' => :array, 'items' => :string}}]} => [Icss::Meta::RecordSchema, 'Icss::Node'],
|
59
|
+
{ 'type' => :map, 'values' => {
|
60
|
+
'name' => 'Foo', 'type' => :record, 'fields' => [{'name' => :label, 'type' => :string}]} } => [Icss::Meta::HashSchema, 'Icss::HashOfFoo' ],
|
61
|
+
},
|
62
|
+
:union_type => {
|
63
|
+
# [ 'boolean', 'double', {'type' => 'array', 'items' => 'bytes'}] => nil,
|
64
|
+
# [ 'int', 'string' ] => nil,
|
65
|
+
},
|
66
|
+
}
|
67
|
+
context 'test schema:' do
|
68
|
+
TEST_SCHEMA_FLAVORS.each do |expected_schema_flavor, test_schemata|
|
69
|
+
test_schemata.each do |schema_dec, (expected_schema_klass, expected_type_klass)|
|
70
|
+
expected_type_klass ||= expected_schema_klass
|
71
|
+
|
72
|
+
it "classifies schema as #{expected_schema_flavor} for #{schema_dec.inspect[0..60]}" do
|
73
|
+
schema_flavor, schema_klass = Icss::Meta::TypeFactory.classify_schema_declaration(schema_dec)
|
74
|
+
schema_flavor.should == expected_schema_flavor
|
75
|
+
schema_klass.to_s.should == expected_schema_klass.to_s
|
76
|
+
end
|
77
|
+
|
78
|
+
it "creates type as expected_schema_klass for #{schema_dec.inspect[0..60]}" do
|
79
|
+
klass = Icss::Meta::TypeFactory.receive(schema_dec)
|
80
|
+
klass.to_s.should == expected_type_klass.to_s unless (not expected_type_klass)
|
81
|
+
end
|
82
|
+
|
83
|
+
unless expected_type_klass.to_s =~ /Icss::This/
|
84
|
+
it "round-trips schema #{schema_dec.to_s[0..140]}" do
|
85
|
+
klass = Icss::Meta::TypeFactory.receive(schema_dec)
|
86
|
+
klass.to_schema.should == schema_dec
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
File without changes
|
data/spec/type_spec.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require 'icss/type'
|
3
|
+
|
4
|
+
module Icss
|
5
|
+
module This
|
6
|
+
module That
|
7
|
+
class TheOther
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
#
|
14
|
+
# note: the Icss::SIMPLE_TYPES etc are tested in simple_type_spec.rb etc
|
15
|
+
#
|
16
|
+
|
17
|
+
describe Icss::Meta::Type do
|
18
|
+
context '.fullname_for' do
|
19
|
+
it 'converts from avro-style' do
|
20
|
+
Icss::Meta::Type.fullname_for('a.b.c').should == 'a.b.c'
|
21
|
+
Icss::Meta::Type.fullname_for('one_to.tha_three.to_tha_fo').should == 'one_to.tha_three.to_tha_fo'
|
22
|
+
end
|
23
|
+
it 'converts from ruby-style' do
|
24
|
+
Icss::Meta::Type.fullname_for('A::B::C').should == 'a.b.c'
|
25
|
+
Icss::Meta::Type.fullname_for('OneTo::ThaThree::ToThaFo').should == 'one_to.tha_three.to_tha_fo'
|
26
|
+
Icss::Meta::Type.fullname_for('Icss::OneTo::ThaThree::ToThaFo').should == 'one_to.tha_three.to_tha_fo'
|
27
|
+
Icss::Meta::Type.fullname_for('::Icss::This::That::TheOther').should == 'this.that.the_other'
|
28
|
+
end
|
29
|
+
it 'converts from class' do
|
30
|
+
Icss::Meta::Type.fullname_for(Icss::This::That::TheOther).should == 'this.that.the_other'
|
31
|
+
end
|
32
|
+
it 'returns nil on nil or empty string' do
|
33
|
+
Icss::Meta::Type.fullname_for('').should be_nil
|
34
|
+
Icss::Meta::Type.fullname_for(nil).should be_nil
|
35
|
+
end
|
36
|
+
it 'returns nil on anonymous class' do
|
37
|
+
Icss::Meta::Type.fullname_for(Class.new).should be_nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
context '.klassname_for' do
|
41
|
+
it 'converts from avro-style' do
|
42
|
+
Icss::Meta::Type.klassname_for('a.b.c').should == '::Icss::A::B::C'
|
43
|
+
Icss::Meta::Type.klassname_for('one_to.tha_three.to_tha_fo').should == '::Icss::OneTo::ThaThree::ToThaFo'
|
44
|
+
end
|
45
|
+
it 'converts from ruby-style' do
|
46
|
+
Icss::Meta::Type.klassname_for('A::B::C').should == '::Icss::A::B::C'
|
47
|
+
Icss::Meta::Type.klassname_for('OneTo.ThaThree.ToThaFo').should == '::Icss::OneTo::ThaThree::ToThaFo'
|
48
|
+
Icss::Meta::Type.klassname_for('Icss::OneTo::ThaThree::ToThaFo').should == '::Icss::OneTo::ThaThree::ToThaFo'
|
49
|
+
Icss::Meta::Type.klassname_for('::Icss::This::That::TheOther').should == '::Icss::This::That::TheOther'
|
50
|
+
end
|
51
|
+
it 'converts from class' do
|
52
|
+
Icss::Meta::Type.klassname_for(Icss::This::That::TheOther).should == '::Icss::This::That::TheOther'
|
53
|
+
end
|
54
|
+
it 'returns nil on nil or empty string' do
|
55
|
+
Icss::Meta::Type.fullname_for('').should be_nil
|
56
|
+
Icss::Meta::Type.fullname_for(nil).should be_nil
|
57
|
+
end
|
58
|
+
it 'returns nil on anonymous class' do
|
59
|
+
Icss::Meta::Type.fullname_for(Class.new).should be_nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
metadata
CHANGED
@@ -1,151 +1,166 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: icss
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 3
|
10
|
-
version: 0.1.3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.2
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Philip (flip) Kromer for Infochimps
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
12
|
+
date: 2011-11-09 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: json
|
16
|
+
requirement: &70132297221280 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70132297221280
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activemodel
|
27
|
+
requirement: &70132297219700 !ruby/object:Gem::Requirement
|
23
28
|
none: false
|
24
|
-
requirements:
|
29
|
+
requirements:
|
25
30
|
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
- 1
|
31
|
-
- 1
|
32
|
-
version: 0.1.1
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.0.9
|
33
33
|
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70132297219700
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: addressable
|
38
|
+
requirement: &70132297232360 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '2.2'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70132297232360
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: configliere
|
49
|
+
requirement: &70132297229380 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.4.8
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70132297229380
|
58
|
+
- !ruby/object:Gem::Dependency
|
34
59
|
name: gorillib
|
60
|
+
requirement: &70132297228600 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 0.1.7
|
66
|
+
type: :runtime
|
35
67
|
prerelease: false
|
36
|
-
version_requirements: *
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
|
68
|
+
version_requirements: *70132297228600
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: addressable
|
71
|
+
requirement: &70132297226400 !ruby/object:Gem::Requirement
|
39
72
|
none: false
|
40
|
-
requirements:
|
73
|
+
requirements:
|
41
74
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 3
|
46
|
-
- 0
|
47
|
-
- 9
|
48
|
-
version: 3.0.9
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '2.2'
|
49
77
|
type: :runtime
|
50
|
-
name: activemodel
|
51
78
|
prerelease: false
|
52
|
-
version_requirements: *
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
|
79
|
+
version_requirements: *70132297226400
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: bundler
|
82
|
+
requirement: &70132297241400 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '1'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70132297241400
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: jeweler
|
93
|
+
requirement: &70132297239440 !ruby/object:Gem::Requirement
|
55
94
|
none: false
|
56
|
-
requirements:
|
95
|
+
requirements:
|
57
96
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
segments:
|
61
|
-
- 2
|
62
|
-
- 3
|
63
|
-
- 0
|
64
|
-
version: 2.3.0
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 1.6.4
|
65
99
|
type: :development
|
66
|
-
name: rspec
|
67
100
|
prerelease: false
|
68
|
-
version_requirements: *
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
|
101
|
+
version_requirements: *70132297239440
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: yard
|
104
|
+
requirement: &70132297234780 !ruby/object:Gem::Requirement
|
71
105
|
none: false
|
72
|
-
requirements:
|
106
|
+
requirements:
|
73
107
|
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
hash: 7
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
- 6
|
79
|
-
- 0
|
108
|
+
- !ruby/object:Gem::Version
|
80
109
|
version: 0.6.0
|
81
110
|
type: :development
|
82
|
-
name: yard
|
83
111
|
prerelease: false
|
84
|
-
version_requirements: *
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
|
112
|
+
version_requirements: *70132297234780
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rspec
|
115
|
+
requirement: &70132297248680 !ruby/object:Gem::Requirement
|
87
116
|
none: false
|
88
|
-
requirements:
|
117
|
+
requirements:
|
89
118
|
- - ~>
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
|
92
|
-
segments:
|
93
|
-
- 1
|
94
|
-
- 0
|
95
|
-
- 0
|
96
|
-
version: 1.0.0
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 2.3.0
|
97
121
|
type: :development
|
98
|
-
name: bundler
|
99
122
|
prerelease: false
|
100
|
-
version_requirements: *
|
101
|
-
- !ruby/object:Gem::Dependency
|
102
|
-
|
123
|
+
version_requirements: *70132297248680
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: rcov
|
126
|
+
requirement: &70132297247760 !ruby/object:Gem::Requirement
|
103
127
|
none: false
|
104
|
-
requirements:
|
105
|
-
- -
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
|
108
|
-
segments:
|
109
|
-
- 1
|
110
|
-
- 5
|
111
|
-
- 2
|
112
|
-
version: 1.5.2
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
113
132
|
type: :development
|
114
|
-
name: jeweler
|
115
133
|
prerelease: false
|
116
|
-
version_requirements: *
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
|
134
|
+
version_requirements: *70132297247760
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: awesome_print
|
137
|
+
requirement: &70132297246340 !ruby/object:Gem::Requirement
|
119
138
|
none: false
|
120
|
-
requirements:
|
121
|
-
- -
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
|
124
|
-
segments:
|
125
|
-
- 0
|
126
|
-
version: "0"
|
139
|
+
requirements:
|
140
|
+
- - ~>
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 0.4.0
|
127
143
|
type: :development
|
128
|
-
name: rcov
|
129
144
|
prerelease: false
|
130
|
-
version_requirements: *
|
131
|
-
description:
|
145
|
+
version_requirements: *70132297246340
|
146
|
+
description: ! 'Infochimps Simple Schema library: an avro-compatible data description
|
147
|
+
standard. ICSS completely describes a collection of data (and associated assets)
|
148
|
+
in a way that is expressive, scalable and sufficient to drive remarkably complex
|
149
|
+
downstream processes.'
|
132
150
|
email: coders@infochimps.com
|
133
151
|
executables: []
|
134
|
-
|
135
152
|
extensions: []
|
136
|
-
|
137
|
-
extra_rdoc_files:
|
153
|
+
extra_rdoc_files:
|
138
154
|
- LICENSE.textile
|
139
|
-
- README.
|
140
|
-
files:
|
155
|
+
- README.md
|
156
|
+
files:
|
141
157
|
- .document
|
142
158
|
- .rspec
|
143
159
|
- .watchr
|
144
|
-
- CHANGELOG.
|
160
|
+
- CHANGELOG.md
|
145
161
|
- Gemfile
|
146
|
-
- Gemfile.lock
|
147
162
|
- LICENSE.textile
|
148
|
-
- README.
|
163
|
+
- README.md
|
149
164
|
- Rakefile
|
150
165
|
- TODO.md
|
151
166
|
- VERSION
|
@@ -162,65 +177,111 @@ files:
|
|
162
177
|
- examples/avro_examples/org/apache/avro/mapred/tether/OutputProtocol.avpr
|
163
178
|
- examples/avro_examples/simple.avpr
|
164
179
|
- examples/avro_examples/weather.avsc
|
180
|
+
- examples/bnc.icss.yaml
|
165
181
|
- examples/chronic.icss.yaml
|
182
|
+
- examples/license.icss.yaml
|
183
|
+
- examples/source1.icss.yaml
|
184
|
+
- examples/source2.icss.yaml
|
185
|
+
- examples/test_icss.yaml
|
166
186
|
- icss.gemspec
|
167
187
|
- icss_specification.textile
|
168
|
-
- init.rb
|
169
188
|
- lib/icss.rb
|
170
|
-
- lib/icss/
|
171
|
-
- lib/icss/
|
172
|
-
- lib/icss/
|
173
|
-
- lib/icss/data_asset.rb
|
189
|
+
- lib/icss/core_types.rb
|
190
|
+
- lib/icss/error.rb
|
191
|
+
- lib/icss/init.rb
|
174
192
|
- lib/icss/message.rb
|
175
|
-
- lib/icss/
|
193
|
+
- lib/icss/message/message_sample.rb
|
176
194
|
- lib/icss/protocol.rb
|
177
|
-
- lib/icss/
|
178
|
-
- lib/icss/
|
179
|
-
- lib/icss/
|
195
|
+
- lib/icss/protocol/code_asset.rb
|
196
|
+
- lib/icss/protocol/data_asset.rb
|
197
|
+
- lib/icss/protocol/license.rb
|
198
|
+
- lib/icss/protocol/source.rb
|
199
|
+
- lib/icss/protocol/target.rb
|
200
|
+
- lib/icss/receiver_model.rb
|
201
|
+
- lib/icss/receiver_model/active_model_shim.rb
|
202
|
+
- lib/icss/receiver_model/acts_as_catalog.rb
|
203
|
+
- lib/icss/receiver_model/acts_as_hash.rb
|
204
|
+
- lib/icss/receiver_model/acts_as_loadable.rb
|
205
|
+
- lib/icss/receiver_model/acts_as_tuple.rb
|
206
|
+
- lib/icss/receiver_model/locale/en.yml
|
207
|
+
- lib/icss/receiver_model/to_geo_json.rb
|
208
|
+
- lib/icss/receiver_model/tree_merge.rb
|
209
|
+
- lib/icss/receiver_model/validations.rb
|
210
|
+
- lib/icss/serialization.rb
|
211
|
+
- lib/icss/serialization/zaml.rb
|
180
212
|
- lib/icss/type.rb
|
181
|
-
- lib/icss/type/
|
182
|
-
- lib/icss/
|
213
|
+
- lib/icss/type/base_type.rb
|
214
|
+
- lib/icss/type/named_type.rb
|
215
|
+
- lib/icss/type/record_field.rb
|
216
|
+
- lib/icss/type/record_model.rb
|
217
|
+
- lib/icss/type/record_schema.rb
|
218
|
+
- lib/icss/type/record_type.rb
|
219
|
+
- lib/icss/type/simple_types.rb
|
220
|
+
- lib/icss/type/structured_schema.rb
|
221
|
+
- lib/icss/type/type_factory.rb
|
222
|
+
- lib/icss/type/union_schema.rb
|
183
223
|
- lib/icss/view_helper.rb
|
224
|
+
- notes/named_array.md
|
225
|
+
- notes/on_include_vs_extend_etc.rb
|
226
|
+
- notes/technical_details.md
|
227
|
+
- spec/core_types_spec.rb
|
228
|
+
- spec/fixtures/zaml_complex_hash.yaml
|
184
229
|
- spec/icss_spec.rb
|
230
|
+
- spec/message/message_sample_spec.rb
|
231
|
+
- spec/message_spec.rb
|
232
|
+
- spec/protocol/license_spec.rb
|
233
|
+
- spec/protocol/protocol_catalog_spec.rb
|
234
|
+
- spec/protocol/protocol_validations_spec.rb
|
235
|
+
- spec/protocol/source_spec.rb
|
185
236
|
- spec/protocol_spec.rb
|
237
|
+
- spec/receiver_model_spec.rb
|
238
|
+
- spec/serialization/zaml_spec.rb
|
239
|
+
- spec/serialization/zaml_test.rb
|
240
|
+
- spec/serialization_spec.rb
|
186
241
|
- spec/spec_helper.rb
|
187
|
-
- spec/
|
188
|
-
|
242
|
+
- spec/support/icss_test_helper.rb
|
243
|
+
- spec/support/load_example_protocols.rb
|
244
|
+
- spec/type/base_type_spec.rb
|
245
|
+
- spec/type/named_type_spec.rb
|
246
|
+
- spec/type/record_field_spec.rb
|
247
|
+
- spec/type/record_model_spec.rb
|
248
|
+
- spec/type/record_schema_spec.rb
|
249
|
+
- spec/type/record_type_spec.rb
|
250
|
+
- spec/type/simple_types_spec.rb
|
251
|
+
- spec/type/structured_schema_spec.rb
|
252
|
+
- spec/type/type_catalog_spec.rb
|
253
|
+
- spec/type/type_factory_spec.rb
|
254
|
+
- spec/type/union_schema_spec.rb
|
255
|
+
- spec/type_spec.rb
|
189
256
|
homepage: http://github.com/mrflip/icss
|
190
|
-
licenses:
|
257
|
+
licenses:
|
191
258
|
- MIT
|
192
259
|
post_install_message:
|
193
260
|
rdoc_options: []
|
194
|
-
|
195
|
-
require_paths:
|
261
|
+
require_paths:
|
196
262
|
- lib
|
197
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
263
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
198
264
|
none: false
|
199
|
-
requirements:
|
200
|
-
- -
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
|
203
|
-
segments:
|
265
|
+
requirements:
|
266
|
+
- - ! '>='
|
267
|
+
- !ruby/object:Gem::Version
|
268
|
+
version: '0'
|
269
|
+
segments:
|
204
270
|
- 0
|
205
|
-
|
206
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
271
|
+
hash: -1562146119267545071
|
272
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
273
|
none: false
|
208
|
-
requirements:
|
209
|
-
- -
|
210
|
-
- !ruby/object:Gem::Version
|
211
|
-
|
212
|
-
segments:
|
213
|
-
- 0
|
214
|
-
version: "0"
|
274
|
+
requirements:
|
275
|
+
- - ! '>='
|
276
|
+
- !ruby/object:Gem::Version
|
277
|
+
version: '0'
|
215
278
|
requirements: []
|
216
|
-
|
217
279
|
rubyforge_project:
|
218
|
-
rubygems_version: 1.
|
280
|
+
rubygems_version: 1.8.11
|
219
281
|
signing_key:
|
220
282
|
specification_version: 3
|
221
|
-
summary:
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
- spec/validations_spec.rb
|
283
|
+
summary: ! 'Infochimps Simple Schema library: an avro-compatible data description
|
284
|
+
standard. ICSS completely describes a collection of data (and associated assets)
|
285
|
+
in a way that is expressive, scalable and sufficient to drive remarkably complex
|
286
|
+
downstream processes.'
|
287
|
+
test_files: []
|