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
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'