icss-activesupport-4 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.rspec +3 -0
- data/.watchr +52 -0
- data/CHANGELOG.md +38 -0
- data/Gemfile +22 -0
- data/LICENSE.textile +20 -0
- data/README.md +298 -0
- data/Rakefile +39 -0
- data/TODO.md +44 -0
- data/VERSION +1 -0
- data/examples/avro_examples/BulkData.avpr +21 -0
- data/examples/avro_examples/complicated.icss.yaml +159 -0
- data/examples/avro_examples/interop.avsc +32 -0
- data/examples/avro_examples/mail.avpr +20 -0
- data/examples/avro_examples/namespace.avpr +28 -0
- data/examples/avro_examples/org/apache/avro/ipc/HandshakeRequest.avsc +11 -0
- data/examples/avro_examples/org/apache/avro/ipc/HandshakeResponse.avsc +15 -0
- data/examples/avro_examples/org/apache/avro/ipc/trace/avroTrace.avdl +64 -0
- data/examples/avro_examples/org/apache/avro/ipc/trace/avroTrace.avpr +82 -0
- data/examples/avro_examples/org/apache/avro/mapred/tether/InputProtocol.avpr +59 -0
- data/examples/avro_examples/org/apache/avro/mapred/tether/OutputProtocol.avpr +75 -0
- data/examples/avro_examples/simple.avpr +70 -0
- data/examples/avro_examples/weather.avsc +9 -0
- data/examples/bnc.icss.yaml +70 -0
- data/examples/chronic.icss.yaml +115 -0
- 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 +168 -0
- data/icss_specification.textile +393 -0
- data/lib/icss.rb +53 -0
- data/lib/icss/core_types.rb +20 -0
- data/lib/icss/error.rb +4 -0
- data/lib/icss/init.rb +3 -0
- data/lib/icss/message.rb +133 -0
- data/lib/icss/message/message_sample.rb +144 -0
- data/lib/icss/protocol.rb +199 -0
- 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 +174 -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 +442 -0
- data/lib/icss/type.rb +168 -0
- data/lib/icss/type/base_type.rb +0 -0
- data/lib/icss/type/named_type.rb +185 -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 +71 -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 +65 -0
- 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 +90 -0
- 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 +170 -0
- data/spec/receiver_model_spec.rb +115 -0
- data/spec/serialization/zaml_spec.rb +82 -0
- data/spec/serialization/zaml_test.rb +473 -0
- data/spec/serialization_spec.rb +63 -0
- data/spec/spec_helper.rb +39 -0
- 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 +304 -0
@@ -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
ADDED
@@ -0,0 +1,304 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: icss-activesupport-4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Philip (flip) Kromer for Infochimps
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2011-11-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activemodel
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: addressable
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.2'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: configliere
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.4.8
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.4.8
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: gorillib
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.1.7
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.1.7
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bundler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: jeweler
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.6.4
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.6.4
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: yard
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.6.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.6.0
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 2.3.0
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 2.3.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rcov
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: awesome_print
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.4.0
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.4.0
|
167
|
+
description: 'Infochimps Simple Schema library: an avro-compatible data description
|
168
|
+
standard. ICSS completely describes a collection of data (and associated assets)
|
169
|
+
in a way that is expressive, scalable and sufficient to drive remarkably complex
|
170
|
+
downstream processes.'
|
171
|
+
email: coders@infochimps.com
|
172
|
+
executables: []
|
173
|
+
extensions: []
|
174
|
+
extra_rdoc_files:
|
175
|
+
- LICENSE.textile
|
176
|
+
- README.md
|
177
|
+
files:
|
178
|
+
- ".document"
|
179
|
+
- ".rspec"
|
180
|
+
- ".watchr"
|
181
|
+
- CHANGELOG.md
|
182
|
+
- Gemfile
|
183
|
+
- LICENSE.textile
|
184
|
+
- README.md
|
185
|
+
- Rakefile
|
186
|
+
- TODO.md
|
187
|
+
- VERSION
|
188
|
+
- examples/avro_examples/BulkData.avpr
|
189
|
+
- examples/avro_examples/complicated.icss.yaml
|
190
|
+
- examples/avro_examples/interop.avsc
|
191
|
+
- examples/avro_examples/mail.avpr
|
192
|
+
- examples/avro_examples/namespace.avpr
|
193
|
+
- examples/avro_examples/org/apache/avro/ipc/HandshakeRequest.avsc
|
194
|
+
- examples/avro_examples/org/apache/avro/ipc/HandshakeResponse.avsc
|
195
|
+
- examples/avro_examples/org/apache/avro/ipc/trace/avroTrace.avdl
|
196
|
+
- examples/avro_examples/org/apache/avro/ipc/trace/avroTrace.avpr
|
197
|
+
- examples/avro_examples/org/apache/avro/mapred/tether/InputProtocol.avpr
|
198
|
+
- examples/avro_examples/org/apache/avro/mapred/tether/OutputProtocol.avpr
|
199
|
+
- examples/avro_examples/simple.avpr
|
200
|
+
- examples/avro_examples/weather.avsc
|
201
|
+
- examples/bnc.icss.yaml
|
202
|
+
- examples/chronic.icss.yaml
|
203
|
+
- examples/license.icss.yaml
|
204
|
+
- examples/source1.icss.yaml
|
205
|
+
- examples/source2.icss.yaml
|
206
|
+
- examples/test_icss.yaml
|
207
|
+
- icss.gemspec
|
208
|
+
- icss_specification.textile
|
209
|
+
- lib/icss.rb
|
210
|
+
- lib/icss/core_types.rb
|
211
|
+
- lib/icss/error.rb
|
212
|
+
- lib/icss/init.rb
|
213
|
+
- lib/icss/message.rb
|
214
|
+
- lib/icss/message/message_sample.rb
|
215
|
+
- lib/icss/protocol.rb
|
216
|
+
- lib/icss/protocol/code_asset.rb
|
217
|
+
- lib/icss/protocol/data_asset.rb
|
218
|
+
- lib/icss/protocol/license.rb
|
219
|
+
- lib/icss/protocol/source.rb
|
220
|
+
- lib/icss/protocol/target.rb
|
221
|
+
- lib/icss/receiver_model.rb
|
222
|
+
- lib/icss/receiver_model/active_model_shim.rb
|
223
|
+
- lib/icss/receiver_model/acts_as_catalog.rb
|
224
|
+
- lib/icss/receiver_model/acts_as_hash.rb
|
225
|
+
- lib/icss/receiver_model/acts_as_loadable.rb
|
226
|
+
- lib/icss/receiver_model/acts_as_tuple.rb
|
227
|
+
- lib/icss/receiver_model/locale/en.yml
|
228
|
+
- lib/icss/receiver_model/to_geo_json.rb
|
229
|
+
- lib/icss/receiver_model/tree_merge.rb
|
230
|
+
- lib/icss/receiver_model/validations.rb
|
231
|
+
- lib/icss/serialization.rb
|
232
|
+
- lib/icss/serialization/zaml.rb
|
233
|
+
- lib/icss/type.rb
|
234
|
+
- lib/icss/type/base_type.rb
|
235
|
+
- lib/icss/type/named_type.rb
|
236
|
+
- lib/icss/type/record_field.rb
|
237
|
+
- lib/icss/type/record_model.rb
|
238
|
+
- lib/icss/type/record_schema.rb
|
239
|
+
- lib/icss/type/record_type.rb
|
240
|
+
- lib/icss/type/simple_types.rb
|
241
|
+
- lib/icss/type/structured_schema.rb
|
242
|
+
- lib/icss/type/type_factory.rb
|
243
|
+
- lib/icss/type/union_schema.rb
|
244
|
+
- lib/icss/view_helper.rb
|
245
|
+
- notes/named_array.md
|
246
|
+
- notes/on_include_vs_extend_etc.rb
|
247
|
+
- notes/technical_details.md
|
248
|
+
- spec/core_types_spec.rb
|
249
|
+
- spec/fixtures/zaml_complex_hash.yaml
|
250
|
+
- spec/icss_spec.rb
|
251
|
+
- spec/message/message_sample_spec.rb
|
252
|
+
- spec/message_spec.rb
|
253
|
+
- spec/protocol/license_spec.rb
|
254
|
+
- spec/protocol/protocol_catalog_spec.rb
|
255
|
+
- spec/protocol/protocol_validations_spec.rb
|
256
|
+
- spec/protocol/source_spec.rb
|
257
|
+
- spec/protocol_spec.rb
|
258
|
+
- spec/receiver_model_spec.rb
|
259
|
+
- spec/serialization/zaml_spec.rb
|
260
|
+
- spec/serialization/zaml_test.rb
|
261
|
+
- spec/serialization_spec.rb
|
262
|
+
- spec/spec_helper.rb
|
263
|
+
- spec/support/icss_test_helper.rb
|
264
|
+
- spec/support/load_example_protocols.rb
|
265
|
+
- spec/type/base_type_spec.rb
|
266
|
+
- spec/type/named_type_spec.rb
|
267
|
+
- spec/type/record_field_spec.rb
|
268
|
+
- spec/type/record_model_spec.rb
|
269
|
+
- spec/type/record_schema_spec.rb
|
270
|
+
- spec/type/record_type_spec.rb
|
271
|
+
- spec/type/simple_types_spec.rb
|
272
|
+
- spec/type/structured_schema_spec.rb
|
273
|
+
- spec/type/type_catalog_spec.rb
|
274
|
+
- spec/type/type_factory_spec.rb
|
275
|
+
- spec/type/union_schema_spec.rb
|
276
|
+
- spec/type_spec.rb
|
277
|
+
homepage: http://github.com/mrflip/icss
|
278
|
+
licenses:
|
279
|
+
- MIT
|
280
|
+
metadata: {}
|
281
|
+
post_install_message:
|
282
|
+
rdoc_options: []
|
283
|
+
require_paths:
|
284
|
+
- lib
|
285
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
286
|
+
requirements:
|
287
|
+
- - ">="
|
288
|
+
- !ruby/object:Gem::Version
|
289
|
+
version: '0'
|
290
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
291
|
+
requirements:
|
292
|
+
- - ">="
|
293
|
+
- !ruby/object:Gem::Version
|
294
|
+
version: '0'
|
295
|
+
requirements: []
|
296
|
+
rubyforge_project:
|
297
|
+
rubygems_version: 2.5.1
|
298
|
+
signing_key:
|
299
|
+
specification_version: 3
|
300
|
+
summary: 'Infochimps Simple Schema library: an avro-compatible data description standard.
|
301
|
+
ICSS completely describes a collection of data (and associated assets) in a way
|
302
|
+
that is expressive, scalable and sufficient to drive remarkably complex downstream
|
303
|
+
processes.'
|
304
|
+
test_files: []
|