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.
Files changed (98) hide show
  1. data/.watchr +35 -3
  2. data/CHANGELOG.md +38 -0
  3. data/Gemfile +19 -14
  4. data/README.md +296 -0
  5. data/Rakefile +2 -6
  6. data/TODO.md +13 -0
  7. data/VERSION +1 -1
  8. data/examples/avro_examples/complicated.icss.yaml +14 -13
  9. data/examples/bnc.icss.yaml +70 -0
  10. data/examples/chronic.icss.yaml +3 -3
  11. data/examples/license.icss.yaml +7 -0
  12. data/examples/source1.icss.yaml +4 -0
  13. data/examples/source2.icss.yaml +4 -0
  14. data/examples/test_icss.yaml +67 -0
  15. data/icss.gemspec +103 -43
  16. data/lib/icss.rb +37 -15
  17. data/lib/icss/core_types.rb +19 -0
  18. data/lib/icss/error.rb +4 -0
  19. data/{init.rb → lib/icss/init.rb} +0 -0
  20. data/lib/icss/message.rb +124 -66
  21. data/lib/icss/message/message_sample.rb +144 -0
  22. data/lib/icss/protocol.rb +184 -131
  23. data/lib/icss/protocol/code_asset.rb +18 -0
  24. data/lib/icss/protocol/data_asset.rb +23 -0
  25. data/lib/icss/protocol/license.rb +41 -0
  26. data/lib/icss/protocol/source.rb +37 -0
  27. data/lib/icss/protocol/target.rb +68 -0
  28. data/lib/icss/receiver_model.rb +24 -0
  29. data/lib/icss/receiver_model/active_model_shim.rb +36 -0
  30. data/lib/icss/receiver_model/acts_as_catalog.rb +170 -0
  31. data/lib/icss/receiver_model/acts_as_hash.rb +177 -0
  32. data/lib/icss/receiver_model/acts_as_loadable.rb +47 -0
  33. data/lib/icss/receiver_model/acts_as_tuple.rb +100 -0
  34. data/lib/icss/receiver_model/locale/en.yml +27 -0
  35. data/lib/icss/receiver_model/to_geo_json.rb +19 -0
  36. data/lib/icss/receiver_model/tree_merge.rb +34 -0
  37. data/lib/icss/receiver_model/validations.rb +31 -0
  38. data/lib/icss/serialization.rb +51 -0
  39. data/lib/icss/serialization/zaml.rb +443 -0
  40. data/lib/icss/type.rb +148 -501
  41. data/lib/icss/type/base_type.rb +0 -0
  42. data/lib/icss/type/named_type.rb +184 -0
  43. data/lib/icss/type/record_field.rb +77 -0
  44. data/lib/icss/type/record_model.rb +49 -0
  45. data/lib/icss/type/record_schema.rb +54 -0
  46. data/lib/icss/type/record_type.rb +325 -0
  47. data/lib/icss/type/simple_types.rb +72 -0
  48. data/lib/icss/type/structured_schema.rb +288 -0
  49. data/lib/icss/type/type_factory.rb +144 -0
  50. data/lib/icss/type/union_schema.rb +41 -0
  51. data/lib/icss/view_helper.rb +56 -19
  52. data/notes/named_array.md +32 -0
  53. data/notes/on_include_vs_extend_etc.rb +176 -0
  54. data/notes/technical_details.md +278 -0
  55. data/spec/core_types_spec.rb +119 -0
  56. data/spec/fixtures/zaml_complex_hash.yaml +35 -0
  57. data/spec/icss_spec.rb +86 -23
  58. data/spec/message/message_sample_spec.rb +4 -0
  59. data/spec/message_spec.rb +139 -0
  60. data/spec/protocol/license_spec.rb +67 -0
  61. data/spec/protocol/protocol_catalog_spec.rb +48 -0
  62. data/spec/protocol/protocol_validations_spec.rb +176 -0
  63. data/spec/protocol/source_spec.rb +65 -0
  64. data/spec/protocol_spec.rb +91 -37
  65. data/spec/receiver_model_spec.rb +111 -0
  66. data/spec/serialization/zaml_spec.rb +81 -0
  67. data/spec/serialization/zaml_test.rb +473 -0
  68. data/spec/serialization_spec.rb +63 -0
  69. data/spec/spec_helper.rb +24 -7
  70. data/spec/support/icss_test_helper.rb +67 -0
  71. data/spec/support/load_example_protocols.rb +17 -0
  72. data/spec/type/base_type_spec.rb +0 -0
  73. data/spec/type/named_type_spec.rb +75 -0
  74. data/spec/type/record_field_spec.rb +44 -0
  75. data/spec/type/record_model_spec.rb +206 -0
  76. data/spec/type/record_schema_spec.rb +161 -0
  77. data/spec/type/record_type_spec.rb +155 -0
  78. data/spec/type/simple_types_spec.rb +121 -0
  79. data/spec/type/structured_schema_spec.rb +300 -0
  80. data/spec/type/type_catalog_spec.rb +44 -0
  81. data/spec/type/type_factory_spec.rb +93 -0
  82. data/spec/type/union_schema_spec.rb +0 -0
  83. data/spec/type_spec.rb +63 -0
  84. metadata +205 -144
  85. data/CHANGELOG.textile +0 -9
  86. data/Gemfile.lock +0 -40
  87. data/README.textile +0 -29
  88. data/lib/icss/brevity.rb +0 -136
  89. data/lib/icss/code_asset.rb +0 -16
  90. data/lib/icss/core_ext.rb +0 -9
  91. data/lib/icss/data_asset.rb +0 -22
  92. data/lib/icss/old.rb +0 -96
  93. data/lib/icss/protocol_set.rb +0 -48
  94. data/lib/icss/sample_message_call.rb +0 -142
  95. data/lib/icss/target.rb +0 -72
  96. data/lib/icss/type/factory.rb +0 -196
  97. data/lib/icss/validations.rb +0 -16
  98. 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
@@ -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
- hash: 29
5
- prerelease: false
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
- date: 2011-07-15 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
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
- hash: 25
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: *id001
37
- - !ruby/object:Gem::Dependency
38
- requirement: &id002 !ruby/object:Gem::Requirement
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
- hash: 21
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: *id002
53
- - !ruby/object:Gem::Dependency
54
- requirement: &id003 !ruby/object:Gem::Requirement
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
- hash: 3
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: *id003
69
- - !ruby/object:Gem::Dependency
70
- requirement: &id004 !ruby/object:Gem::Requirement
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: *id004
85
- - !ruby/object:Gem::Dependency
86
- requirement: &id005 !ruby/object:Gem::Requirement
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
- hash: 23
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: *id005
101
- - !ruby/object:Gem::Dependency
102
- requirement: &id006 !ruby/object:Gem::Requirement
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
- hash: 7
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: *id006
117
- - !ruby/object:Gem::Dependency
118
- requirement: &id007 !ruby/object:Gem::Requirement
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
- hash: 3
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: *id007
131
- description: "Infochimps Stupid Schema library: an avro-compatible data description standard. ICSS completely describes a collection of data (and associated assets) in a way that is expressive, scalable and sufficient to drive remarkably complex downstream processes."
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.textile
140
- files:
155
+ - README.md
156
+ files:
141
157
  - .document
142
158
  - .rspec
143
159
  - .watchr
144
- - CHANGELOG.textile
160
+ - CHANGELOG.md
145
161
  - Gemfile
146
- - Gemfile.lock
147
162
  - LICENSE.textile
148
- - README.textile
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/brevity.rb
171
- - lib/icss/code_asset.rb
172
- - lib/icss/core_ext.rb
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/old.rb
193
+ - lib/icss/message/message_sample.rb
176
194
  - lib/icss/protocol.rb
177
- - lib/icss/protocol_set.rb
178
- - lib/icss/sample_message_call.rb
179
- - lib/icss/target.rb
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/factory.rb
182
- - lib/icss/validations.rb
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/validations_spec.rb
188
- has_rdoc: true
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
- hash: 3
203
- segments:
265
+ requirements:
266
+ - - ! '>='
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
269
+ segments:
204
270
  - 0
205
- version: "0"
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
- hash: 3
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.3.7
280
+ rubygems_version: 1.8.11
219
281
  signing_key:
220
282
  specification_version: 3
221
- summary: "Infochimps Stupid Schema library: an avro-compatible data description standard. ICSS completely describes a collection of data (and associated assets) in a way that is expressive, scalable and sufficient to drive remarkably complex downstream processes."
222
- test_files:
223
- - spec/icss_spec.rb
224
- - spec/protocol_spec.rb
225
- - spec/spec_helper.rb
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: []