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
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.3.2
@@ -81,14 +81,15 @@ types:
81
81
  type: your_mom
82
82
  doc: wears combat boots
83
83
 
84
- # - name: field_that_is_an_array
85
- # type: array
86
- # items: int
87
- # doc: I am an array of primitives
88
- # - name: field_that_is_a_named_type_holy_fuck
89
- # type: array
90
- # items: your_mom
91
- # doc: I am an array of Iccs::Type::YourMomType
84
+ - name: field_that_is_an_array
85
+ type: array
86
+ items: int
87
+ doc: I am an array of primitives
88
+ - name: field_that_is_a_named_type_holy_fuck
89
+ type:
90
+ - type: array
91
+ items: your_mom
92
+ doc: I am an array of Iccs::Type::YourMomType
92
93
 
93
94
  - name: chronic_parse_response
94
95
  type: record
@@ -107,11 +108,11 @@ types:
107
108
  doc: >-
108
109
  Your params, right back atcha'
109
110
  type: string # map
110
- # - name: errors
111
- # doc: >-
112
- # Error conditions
113
- # type: array
114
- # optional: true
111
+ - name: errors
112
+ doc: >-
113
+ Error conditions
114
+ type: array
115
+ optional: true
115
116
  - name: whatever
116
117
  doc: dummy string
117
118
  type:
@@ -0,0 +1,70 @@
1
+ ---
2
+ namespace: language.corpora.word_freq
3
+ protocol: bnc
4
+
5
+ targets:
6
+ catalog:
7
+ - name: word_freq_bnc
8
+ title: Word Frequencies From the British National Corpus
9
+ description: foobar
10
+ tags:
11
+ - bnc
12
+ - british-national-corpus
13
+ - awesomeapi
14
+ - token
15
+ - word
16
+ - corpus
17
+ - word-frequency
18
+ - british
19
+ - words
20
+ - language
21
+ messages:
22
+ - word_stats
23
+
24
+ messages:
25
+ word_stats:
26
+ request:
27
+ - name: word_stats_request
28
+ type: word_stats_request
29
+ response: word_statistics_record
30
+ doc: Query on a head word to get back word statistics (and word variants) from the British National Corpus.
31
+
32
+ data_assets:
33
+ - name: word_stats_data_asset
34
+ location: data/word_stats
35
+ type: word_statistics_record
36
+
37
+ code_assets:
38
+ - location: code/bnc_endpoint.rb
39
+ name: word_stats
40
+
41
+ types:
42
+
43
+
44
+ - name: test_record
45
+ doc: A record for testing
46
+ type: record
47
+ fields:
48
+ - name: name
49
+ doc: A person's name.
50
+ type: string
51
+ - name: age
52
+ doc: A person's age.
53
+ type: whatever
54
+ - name: email
55
+ doc: A person's email address
56
+ type: string
57
+ validates:
58
+ :length:
59
+ :maximum: 10
60
+
61
+ - name: whatever
62
+ doc: lkajd
63
+ type: record
64
+ fields:
65
+ - name: f
66
+ doc: bar
67
+ type: place
68
+
69
+ - name: place
70
+
@@ -1,5 +1,5 @@
1
1
  ---
2
- namespace: util.time
2
+ namespace: st.time_utils
3
3
  protocol: chronic
4
4
 
5
5
  doc: >-
@@ -11,7 +11,7 @@ code_assets:
11
11
 
12
12
  targets:
13
13
  catalog:
14
- - name: util_time_chronic_parse
14
+ - name: st_time_utils_chronic_parse
15
15
  title: Utils - Parse Times
16
16
  description: An API call to parse human-readable date / time strings
17
17
  messages:
@@ -29,7 +29,7 @@ targets:
29
29
  types:
30
30
  - name: chronic_parse_params
31
31
  type: record
32
- doc: Query API parameters for the /util/time/chronic/parse call
32
+ doc: Query API parameters for the /st/time_utils/chronic/parse call
33
33
  fields:
34
34
  - name: time_str
35
35
  type: string
@@ -0,0 +1,7 @@
1
+ :license_id: licenses.example
2
+ :title: Terms of use
3
+ :url: http://whatever.com/whatever
4
+ :description: Basic developer license
5
+ :summary: A short summary of the license
6
+ :article_body: >-
7
+ The full text of the license
@@ -0,0 +1,4 @@
1
+ :source_id: sources.source1
2
+ :title: Source 1
3
+ :description: Whatever description the source wants
4
+ :url: http://source1.com
@@ -0,0 +1,4 @@
1
+ :source_id: sources.source2
2
+ :title: Source 2
3
+ :description: Whatever description the source wants
4
+ :url: http://source2.com
@@ -0,0 +1,67 @@
1
+ ---
2
+ namespace: foo.bar
3
+ protocol: baz
4
+ types:
5
+
6
+ - name: test_simple_type
7
+ doc: A record to test simple record types.
8
+ type: record
9
+ fields:
10
+ - name: my_happy_string
11
+ doc: field 1
12
+ type: string
13
+ - name: my_happy_int
14
+ doc: field 2
15
+ type: int
16
+ - name: my_happy_boolean
17
+ doc: field 3
18
+ type: boolean
19
+
20
+ - name: test_ref_type
21
+ doc: A record to test referenced types.
22
+ type: record
23
+ fields:
24
+ - name: ref_field
25
+ doc: A field that references a type.
26
+ type: icss.core.place
27
+
28
+ - name: test_is_a_method
29
+ doc: A record to test the is_a method.
30
+ type: record
31
+ is_a:
32
+ - icss.core.place
33
+ fields:
34
+ - name: additional_field
35
+ doc: A field to test the ability to add additional fields with the is_a method.
36
+ type: int
37
+ - name: description
38
+ doc: A field to test the override of is_a properties.
39
+ type: string
40
+
41
+ - name: test_identifiers
42
+ doc: A record to test the identifier methods.
43
+ type: record
44
+ domain_id: ssn
45
+ fields:
46
+ - name: name
47
+ doc: A field that is NOT an identifier.
48
+ type: string
49
+ - name: age
50
+ doc: A field that IS an identifier.
51
+ type: int
52
+ identifier: true
53
+ - name: ssn
54
+ doc: A field to test the domain_id.
55
+ type: int
56
+ identifier: true
57
+
58
+ - name: test_validators
59
+ doc: A record to test validations.
60
+ type: record
61
+ fields:
62
+ - name: homepage
63
+ doc: A field needing formatting validation.
64
+ type: string
65
+ validates:
66
+ format:
67
+ with: "/[\w+]\.[com?|org|net]/"
@@ -4,27 +4,26 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{icss}
8
- s.version = "0.1.3"
7
+ s.name = "icss"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Philip (flip) Kromer for Infochimps"]
12
- s.date = %q{2011-07-15}
13
- s.description = %q{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.}
14
- s.email = %q{coders@infochimps.com}
12
+ s.date = "2011-11-09"
13
+ s.description = "Infochimps Simple 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."
14
+ s.email = "coders@infochimps.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.textile",
17
- "README.textile"
17
+ "README.md"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
21
  ".rspec",
22
22
  ".watchr",
23
- "CHANGELOG.textile",
23
+ "CHANGELOG.md",
24
24
  "Gemfile",
25
- "Gemfile.lock",
26
25
  "LICENSE.textile",
27
- "README.textile",
26
+ "README.md",
28
27
  "Rakefile",
29
28
  "TODO.md",
30
29
  "VERSION",
@@ -41,71 +40,132 @@ Gem::Specification.new do |s|
41
40
  "examples/avro_examples/org/apache/avro/mapred/tether/OutputProtocol.avpr",
42
41
  "examples/avro_examples/simple.avpr",
43
42
  "examples/avro_examples/weather.avsc",
43
+ "examples/bnc.icss.yaml",
44
44
  "examples/chronic.icss.yaml",
45
+ "examples/license.icss.yaml",
46
+ "examples/source1.icss.yaml",
47
+ "examples/source2.icss.yaml",
48
+ "examples/test_icss.yaml",
45
49
  "icss.gemspec",
46
50
  "icss_specification.textile",
47
- "init.rb",
48
51
  "lib/icss.rb",
49
- "lib/icss/brevity.rb",
50
- "lib/icss/code_asset.rb",
51
- "lib/icss/core_ext.rb",
52
- "lib/icss/data_asset.rb",
52
+ "lib/icss/core_types.rb",
53
+ "lib/icss/error.rb",
54
+ "lib/icss/init.rb",
53
55
  "lib/icss/message.rb",
54
- "lib/icss/old.rb",
56
+ "lib/icss/message/message_sample.rb",
55
57
  "lib/icss/protocol.rb",
56
- "lib/icss/protocol_set.rb",
57
- "lib/icss/sample_message_call.rb",
58
- "lib/icss/target.rb",
58
+ "lib/icss/protocol/code_asset.rb",
59
+ "lib/icss/protocol/data_asset.rb",
60
+ "lib/icss/protocol/license.rb",
61
+ "lib/icss/protocol/source.rb",
62
+ "lib/icss/protocol/target.rb",
63
+ "lib/icss/receiver_model.rb",
64
+ "lib/icss/receiver_model/active_model_shim.rb",
65
+ "lib/icss/receiver_model/acts_as_catalog.rb",
66
+ "lib/icss/receiver_model/acts_as_hash.rb",
67
+ "lib/icss/receiver_model/acts_as_loadable.rb",
68
+ "lib/icss/receiver_model/acts_as_tuple.rb",
69
+ "lib/icss/receiver_model/locale/en.yml",
70
+ "lib/icss/receiver_model/to_geo_json.rb",
71
+ "lib/icss/receiver_model/tree_merge.rb",
72
+ "lib/icss/receiver_model/validations.rb",
73
+ "lib/icss/serialization.rb",
74
+ "lib/icss/serialization/zaml.rb",
59
75
  "lib/icss/type.rb",
60
- "lib/icss/type/factory.rb",
61
- "lib/icss/validations.rb",
76
+ "lib/icss/type/base_type.rb",
77
+ "lib/icss/type/named_type.rb",
78
+ "lib/icss/type/record_field.rb",
79
+ "lib/icss/type/record_model.rb",
80
+ "lib/icss/type/record_schema.rb",
81
+ "lib/icss/type/record_type.rb",
82
+ "lib/icss/type/simple_types.rb",
83
+ "lib/icss/type/structured_schema.rb",
84
+ "lib/icss/type/type_factory.rb",
85
+ "lib/icss/type/union_schema.rb",
62
86
  "lib/icss/view_helper.rb",
87
+ "notes/named_array.md",
88
+ "notes/on_include_vs_extend_etc.rb",
89
+ "notes/technical_details.md",
90
+ "spec/core_types_spec.rb",
91
+ "spec/fixtures/zaml_complex_hash.yaml",
63
92
  "spec/icss_spec.rb",
93
+ "spec/message/message_sample_spec.rb",
94
+ "spec/message_spec.rb",
95
+ "spec/protocol/license_spec.rb",
96
+ "spec/protocol/protocol_catalog_spec.rb",
97
+ "spec/protocol/protocol_validations_spec.rb",
98
+ "spec/protocol/source_spec.rb",
64
99
  "spec/protocol_spec.rb",
100
+ "spec/receiver_model_spec.rb",
101
+ "spec/serialization/zaml_spec.rb",
102
+ "spec/serialization/zaml_test.rb",
103
+ "spec/serialization_spec.rb",
65
104
  "spec/spec_helper.rb",
66
- "spec/validations_spec.rb"
105
+ "spec/support/icss_test_helper.rb",
106
+ "spec/support/load_example_protocols.rb",
107
+ "spec/type/base_type_spec.rb",
108
+ "spec/type/named_type_spec.rb",
109
+ "spec/type/record_field_spec.rb",
110
+ "spec/type/record_model_spec.rb",
111
+ "spec/type/record_schema_spec.rb",
112
+ "spec/type/record_type_spec.rb",
113
+ "spec/type/simple_types_spec.rb",
114
+ "spec/type/structured_schema_spec.rb",
115
+ "spec/type/type_catalog_spec.rb",
116
+ "spec/type/type_factory_spec.rb",
117
+ "spec/type/union_schema_spec.rb",
118
+ "spec/type_spec.rb"
67
119
  ]
68
- s.homepage = %q{http://github.com/mrflip/icss}
120
+ s.homepage = "http://github.com/mrflip/icss"
69
121
  s.licenses = ["MIT"]
70
122
  s.require_paths = ["lib"]
71
- s.rubygems_version = %q{1.3.7}
72
- s.summary = %q{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.}
73
- s.test_files = [
74
- "spec/icss_spec.rb",
75
- "spec/protocol_spec.rb",
76
- "spec/spec_helper.rb",
77
- "spec/validations_spec.rb"
78
- ]
123
+ s.rubygems_version = "1.8.11"
124
+ s.summary = "Infochimps Simple 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."
79
125
 
80
126
  if s.respond_to? :specification_version then
81
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
82
127
  s.specification_version = 3
83
128
 
84
129
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
85
- s.add_runtime_dependency(%q<gorillib>, ["~> 0.1.1"])
130
+ s.add_runtime_dependency(%q<json>, [">= 0"])
86
131
  s.add_runtime_dependency(%q<activemodel>, ["~> 3.0.9"])
87
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
132
+ s.add_runtime_dependency(%q<addressable>, ["~> 2.2"])
133
+ s.add_runtime_dependency(%q<configliere>, ["~> 0.4.8"])
134
+ s.add_runtime_dependency(%q<gorillib>, ["~> 0.1.7"])
135
+ s.add_runtime_dependency(%q<addressable>, ["~> 2.2"])
136
+ s.add_development_dependency(%q<bundler>, ["~> 1"])
137
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
88
138
  s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
89
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
90
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
139
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
91
140
  s.add_development_dependency(%q<rcov>, [">= 0"])
141
+ s.add_development_dependency(%q<awesome_print>, ["~> 0.4.0"])
92
142
  else
93
- s.add_dependency(%q<gorillib>, ["~> 0.1.1"])
143
+ s.add_dependency(%q<json>, [">= 0"])
94
144
  s.add_dependency(%q<activemodel>, ["~> 3.0.9"])
95
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
145
+ s.add_dependency(%q<addressable>, ["~> 2.2"])
146
+ s.add_dependency(%q<configliere>, ["~> 0.4.8"])
147
+ s.add_dependency(%q<gorillib>, ["~> 0.1.7"])
148
+ s.add_dependency(%q<addressable>, ["~> 2.2"])
149
+ s.add_dependency(%q<bundler>, ["~> 1"])
150
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
96
151
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
97
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
98
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
152
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
99
153
  s.add_dependency(%q<rcov>, [">= 0"])
154
+ s.add_dependency(%q<awesome_print>, ["~> 0.4.0"])
100
155
  end
101
156
  else
102
- s.add_dependency(%q<gorillib>, ["~> 0.1.1"])
157
+ s.add_dependency(%q<json>, [">= 0"])
103
158
  s.add_dependency(%q<activemodel>, ["~> 3.0.9"])
104
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
159
+ s.add_dependency(%q<addressable>, ["~> 2.2"])
160
+ s.add_dependency(%q<configliere>, ["~> 0.4.8"])
161
+ s.add_dependency(%q<gorillib>, ["~> 0.1.7"])
162
+ s.add_dependency(%q<addressable>, ["~> 2.2"])
163
+ s.add_dependency(%q<bundler>, ["~> 1"])
164
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
105
165
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
106
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
107
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
166
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
108
167
  s.add_dependency(%q<rcov>, [">= 0"])
168
+ s.add_dependency(%q<awesome_print>, ["~> 0.4.0"])
109
169
  end
110
170
  end
111
171
 
@@ -1,28 +1,50 @@
1
1
  require 'gorillib/object/blank'
2
+ require 'gorillib/object/try_dup'
2
3
  require 'gorillib/string/inflections'
3
4
  require 'gorillib/string/constantize'
4
5
  require 'gorillib/array/compact_blank'
5
6
  require 'gorillib/array/extract_options'
7
+ require 'gorillib/hashlike'
8
+ require 'gorillib/hashlike/tree_merge'
6
9
  require 'gorillib/hash/compact'
7
10
  require 'gorillib/hash/keys'
8
11
  require 'gorillib/hash/tree_merge'
9
12
  require 'gorillib/metaprogramming/class_attribute'
10
-
13
+ require 'gorillib/serialization'
11
14
  require 'gorillib/hashlike'
12
- require 'gorillib/receiver'
13
- require 'gorillib/receiver_model'
14
15
 
15
- require 'time' # ain't that always the way
16
-
17
- $: << File.dirname(__FILE__)
18
- #require 'icss/core_ext' unless Object.respond_to?(:class_attribute)
19
- require 'icss/validations'
20
- require 'icss/type'
16
+ #
17
+ require 'configliere'
18
+ Settings.define :catalog_root, :type => :filename, :default => (defined?(Rails) ? (Rails.root+'catalog') : File.expand_path('../../infochimps_catalog', __FILE__))
19
+ #
20
+ require 'icss/error'
21
+ require 'icss/receiver_model/acts_as_hash'
22
+ require 'icss/receiver_model/acts_as_loadable'
23
+ require 'icss/receiver_model/acts_as_catalog'
24
+ require 'icss/receiver_model/active_model_shim'
25
+ require 'icss/receiver_model/validations'
26
+ require 'icss/receiver_model/acts_as_tuple'
27
+ #
28
+ require 'icss/type' #
29
+ require 'icss/type/simple_types' # Boolean, Integer, ...
30
+ require 'icss/type/named_type' # class methods for a named type: .metamodel .doc, .fullname, &c
31
+ require 'icss/type/record_type' # class methods for a record model: .field, .receive,
32
+ require 'icss/type/record_model' # instance methods for a record model
33
+ #
34
+ require 'icss/type/type_factory' #
35
+ require 'icss/type/structured_schema' # generate type from array, hash, &c schema
36
+ require 'icss/type/union_schema' # factory for instances based on type
37
+ require 'icss/type/record_schema'
38
+ require 'icss/type/record_field'
39
+ #
40
+ require 'icss/receiver_model'
41
+ require 'icss/serialization'
42
+ #
21
43
  require 'icss/message'
22
- require 'icss/sample_message_call'
23
- require 'icss/data_asset'
24
- require 'icss/code_asset'
25
- require 'icss/target'
44
+ require 'icss/protocol/data_asset'
45
+ require 'icss/protocol/code_asset'
46
+ require 'icss/protocol/target'
47
+ require 'icss/protocol/license'
48
+ require 'icss/protocol/source'
26
49
  require 'icss/protocol'
27
-
28
- require 'icss/type/factory'
50
+ require 'icss/message/message_sample'