icss 0.1.3 → 0.3.2

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