icss-activesupport-4 0.4.0

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.
Files changed (101) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.rspec +3 -0
  4. data/.watchr +52 -0
  5. data/CHANGELOG.md +38 -0
  6. data/Gemfile +22 -0
  7. data/LICENSE.textile +20 -0
  8. data/README.md +298 -0
  9. data/Rakefile +39 -0
  10. data/TODO.md +44 -0
  11. data/VERSION +1 -0
  12. data/examples/avro_examples/BulkData.avpr +21 -0
  13. data/examples/avro_examples/complicated.icss.yaml +159 -0
  14. data/examples/avro_examples/interop.avsc +32 -0
  15. data/examples/avro_examples/mail.avpr +20 -0
  16. data/examples/avro_examples/namespace.avpr +28 -0
  17. data/examples/avro_examples/org/apache/avro/ipc/HandshakeRequest.avsc +11 -0
  18. data/examples/avro_examples/org/apache/avro/ipc/HandshakeResponse.avsc +15 -0
  19. data/examples/avro_examples/org/apache/avro/ipc/trace/avroTrace.avdl +64 -0
  20. data/examples/avro_examples/org/apache/avro/ipc/trace/avroTrace.avpr +82 -0
  21. data/examples/avro_examples/org/apache/avro/mapred/tether/InputProtocol.avpr +59 -0
  22. data/examples/avro_examples/org/apache/avro/mapred/tether/OutputProtocol.avpr +75 -0
  23. data/examples/avro_examples/simple.avpr +70 -0
  24. data/examples/avro_examples/weather.avsc +9 -0
  25. data/examples/bnc.icss.yaml +70 -0
  26. data/examples/chronic.icss.yaml +115 -0
  27. data/examples/license.icss.yaml +7 -0
  28. data/examples/source1.icss.yaml +4 -0
  29. data/examples/source2.icss.yaml +4 -0
  30. data/examples/test_icss.yaml +67 -0
  31. data/icss.gemspec +168 -0
  32. data/icss_specification.textile +393 -0
  33. data/lib/icss.rb +53 -0
  34. data/lib/icss/core_types.rb +20 -0
  35. data/lib/icss/error.rb +4 -0
  36. data/lib/icss/init.rb +3 -0
  37. data/lib/icss/message.rb +133 -0
  38. data/lib/icss/message/message_sample.rb +144 -0
  39. data/lib/icss/protocol.rb +199 -0
  40. data/lib/icss/protocol/code_asset.rb +18 -0
  41. data/lib/icss/protocol/data_asset.rb +23 -0
  42. data/lib/icss/protocol/license.rb +41 -0
  43. data/lib/icss/protocol/source.rb +37 -0
  44. data/lib/icss/protocol/target.rb +68 -0
  45. data/lib/icss/receiver_model.rb +24 -0
  46. data/lib/icss/receiver_model/active_model_shim.rb +36 -0
  47. data/lib/icss/receiver_model/acts_as_catalog.rb +174 -0
  48. data/lib/icss/receiver_model/acts_as_hash.rb +177 -0
  49. data/lib/icss/receiver_model/acts_as_loadable.rb +47 -0
  50. data/lib/icss/receiver_model/acts_as_tuple.rb +100 -0
  51. data/lib/icss/receiver_model/locale/en.yml +27 -0
  52. data/lib/icss/receiver_model/to_geo_json.rb +19 -0
  53. data/lib/icss/receiver_model/tree_merge.rb +34 -0
  54. data/lib/icss/receiver_model/validations.rb +31 -0
  55. data/lib/icss/serialization.rb +51 -0
  56. data/lib/icss/serialization/zaml.rb +442 -0
  57. data/lib/icss/type.rb +168 -0
  58. data/lib/icss/type/base_type.rb +0 -0
  59. data/lib/icss/type/named_type.rb +185 -0
  60. data/lib/icss/type/record_field.rb +77 -0
  61. data/lib/icss/type/record_model.rb +49 -0
  62. data/lib/icss/type/record_schema.rb +54 -0
  63. data/lib/icss/type/record_type.rb +325 -0
  64. data/lib/icss/type/simple_types.rb +71 -0
  65. data/lib/icss/type/structured_schema.rb +288 -0
  66. data/lib/icss/type/type_factory.rb +144 -0
  67. data/lib/icss/type/union_schema.rb +41 -0
  68. data/lib/icss/view_helper.rb +65 -0
  69. data/notes/named_array.md +32 -0
  70. data/notes/on_include_vs_extend_etc.rb +176 -0
  71. data/notes/technical_details.md +278 -0
  72. data/spec/core_types_spec.rb +119 -0
  73. data/spec/fixtures/zaml_complex_hash.yaml +35 -0
  74. data/spec/icss_spec.rb +90 -0
  75. data/spec/message/message_sample_spec.rb +4 -0
  76. data/spec/message_spec.rb +139 -0
  77. data/spec/protocol/license_spec.rb +67 -0
  78. data/spec/protocol/protocol_catalog_spec.rb +48 -0
  79. data/spec/protocol/protocol_validations_spec.rb +176 -0
  80. data/spec/protocol/source_spec.rb +65 -0
  81. data/spec/protocol_spec.rb +170 -0
  82. data/spec/receiver_model_spec.rb +115 -0
  83. data/spec/serialization/zaml_spec.rb +82 -0
  84. data/spec/serialization/zaml_test.rb +473 -0
  85. data/spec/serialization_spec.rb +63 -0
  86. data/spec/spec_helper.rb +39 -0
  87. data/spec/support/icss_test_helper.rb +67 -0
  88. data/spec/support/load_example_protocols.rb +17 -0
  89. data/spec/type/base_type_spec.rb +0 -0
  90. data/spec/type/named_type_spec.rb +75 -0
  91. data/spec/type/record_field_spec.rb +44 -0
  92. data/spec/type/record_model_spec.rb +206 -0
  93. data/spec/type/record_schema_spec.rb +161 -0
  94. data/spec/type/record_type_spec.rb +155 -0
  95. data/spec/type/simple_types_spec.rb +121 -0
  96. data/spec/type/structured_schema_spec.rb +300 -0
  97. data/spec/type/type_catalog_spec.rb +44 -0
  98. data/spec/type/type_factory_spec.rb +93 -0
  99. data/spec/type/union_schema_spec.rb +0 -0
  100. data/spec/type_spec.rb +63 -0
  101. 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: []