icss-activesupport-4 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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: []