icss 0.1.3 → 0.3.2
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.
- 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: []
|