ALD 0.0.1

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.
data/lib/ALD.rb ADDED
@@ -0,0 +1,8 @@
1
+ require 'ALD/package'
2
+ require 'ALD/package_generator'
3
+ require 'ALD/definition'
4
+ require 'ALD/definition_generator.rb'
5
+ require 'ALD/exceptions'
6
+
7
+ module ALD
8
+ end
@@ -0,0 +1,70 @@
1
+ require 'nokogiri'
2
+ require 'ALD/exceptions'
3
+
4
+ module ALD
5
+ class Definition
6
+ SCHEMA_FILE = "#{File.dirname(__FILE__)}/schema.xsd"
7
+
8
+ XML_NAMESPACE = 'ald://package/schema/2014'
9
+
10
+ def self.schema
11
+ @schema ||= Nokogiri::XML::Schema(File.read(SCHEMA_FILE))
12
+ end
13
+
14
+ TOPLEVEL_ATTRIBUTES = %w[
15
+ id
16
+ name
17
+ version
18
+ type
19
+ summary
20
+ ]
21
+
22
+ TOPLEVEL_ATTRIBUTES.each do |attr|
23
+ define_method attr.to_sym do
24
+ @document.xpath("//@ald:#{attr}", 'ald' => XML_NAMESPACE)[0].value
25
+ end
26
+ end
27
+
28
+ def initialize(source)
29
+ if source.is_a? Nokogiri::XML::Document
30
+ @document = source
31
+ else
32
+ @document = Nokogiri::XML(source) { |config| config.nonet }
33
+ end
34
+
35
+ raise InvalidDefinitionError unless valid?
36
+ end
37
+
38
+ def description
39
+ @document.xpath("//ald:description", 'ald' => XML_NAMESPACE)[0].text
40
+ end
41
+
42
+ def tags
43
+ @document.xpath("//ald:tags/ald:tag/@ald:name", 'ald' => XML_NAMESPACE).map { |tag| tag.value }
44
+ end
45
+
46
+ def authors
47
+ attribute_hash '//ald:authors/ald:author', %w[name user-name homepage email]
48
+ end
49
+
50
+ def links
51
+ attribute_hash '//ald:links/ald:link', %w[name description href]
52
+ end
53
+
54
+ def valid?
55
+ Definition.schema.valid?(@document)
56
+ end
57
+
58
+ def to_s
59
+ @document.to_s
60
+ end
61
+
62
+ private
63
+
64
+ def attribute_hash(xpath, keys)
65
+ @document.xpath(xpath, 'ald' => XML_NAMESPACE).map do |e|
66
+ Hash[keys.map { |k| e.attribute_with_ns(k, XML_NAMESPACE) }.reject(&:nil?).map { |a| [a.node_name, a.value] }]
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,11 @@
1
+ module ALD
2
+ class Definition
3
+ class Generator
4
+ def generate!
5
+ end
6
+
7
+ def valid?
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ module ALD
2
+ class InvalidPackageError < StandardError
3
+ end
4
+
5
+ class NoDefinitionError < InvalidPackageError
6
+ end
7
+
8
+ class InvalidDefinitionError < StandardError
9
+ end
10
+ end
@@ -0,0 +1,56 @@
1
+ require 'zip'
2
+ require 'ALD/definition'
3
+ require 'ALD/exceptions'
4
+
5
+ module ALD
6
+ # Represents an ALD package file containing an app or library and its definition
7
+ class Package
8
+
9
+ # The rubyzip Zip::File object containing the data
10
+ attr_reader :archive
11
+
12
+ # The ALD::Definition instance representing the definition contained in the package
13
+ attr_reader :definition
14
+
15
+ # Opens a new ALD package file
16
+ #
17
+ # file - a Zip::File instance or the path to the file
18
+ #
19
+ # Returns a new ALD::Package instance representing the package file
20
+ def initialize(file)
21
+ if file.is_a? Zip::File
22
+ @archive = file
23
+ else
24
+ @archive = Zip::File.open(file)
25
+ end
26
+
27
+ def_entry = @archive.find_entry('definition.ald')
28
+ raise NoDefinitionError if def_entry.nil?
29
+
30
+ @definition = Definition.new(def_entry.get_input_stream)
31
+ raise InvalidPackageError, 'The given ZIP file is not a valid ALD archive!' unless Package.valid?(@archive, @definition)
32
+
33
+ # file access
34
+ end
35
+
36
+ # Closes a no longer required package
37
+ def close
38
+ @archive.close
39
+ end
40
+
41
+ # Alias for new
42
+ def self.open(file)
43
+ new(file)
44
+ end
45
+
46
+ # Tests if a given archive is a valid ALD package
47
+ #
48
+ # file - a Zip::File instance for the package
49
+ # definition - an ALD::Definition instance the package must meet
50
+ #
51
+ # Returns true if it is valid, false otherwise
52
+ def self.valid?(file, definition)
53
+ true
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,54 @@
1
+ require 'ALD/definition'
2
+ require 'ALD/definition_generator'
3
+ require 'ALD/package'
4
+ require 'ALD/exceptions'
5
+
6
+ module ALD
7
+ class Package
8
+ class Generator
9
+ attr_writer :definition
10
+
11
+ def definition
12
+ if @definition.is_a? ALD::Definition
13
+ @definition
14
+ elsif @definition.is_a? ALD::Definition::Generator
15
+ @definition.generate!
16
+ end
17
+ end
18
+
19
+ def valid?
20
+ true && @definition.valid?
21
+ end
22
+
23
+ # Creates a new package file from the given data
24
+ #
25
+ # generator - an ALD::Package::Generator instance to create the package from
26
+ # path - the path where to create the package. This file must not yet exist.
27
+ #
28
+ # Returns a new ALD::Package instance representing the newly created file
29
+ def generate!(path)
30
+ if File.exists? path
31
+ raise IOError, "Destination '#{path}' already exists!"
32
+ end
33
+
34
+ raise InvalidPackageError unless valid?
35
+
36
+ archive = Zip::File.open(path, Zip::File::CREATE)
37
+
38
+ archive.get_output_stream('definition.ald') do |s|
39
+ s << definition.to_s
40
+ end
41
+
42
+ files.each do |path, src|
43
+ archive.add(path, src)
44
+ end
45
+
46
+ Package.new(file)
47
+ end
48
+
49
+ def self.from_package(package)
50
+ nil
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,340 @@
1
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
2
+ xmlns:ald="ald://package/schema/2014"
3
+ attributeFormDefault="qualified" elementFormDefault="qualified"
4
+ targetNamespace="ald://package/schema/2014">
5
+
6
+ <xsd:simpleType name="guid-type"> <!-- defines the type of a GUID -->
7
+ <xsd:restriction base="xsd:string">
8
+ <xsd:pattern value="[a-fA-F0-9]{32}"/> <!-- update: do not use any format, just the raw number -->
9
+ </xsd:restriction>
10
+ </xsd:simpleType>
11
+
12
+ <xsd:simpleType name="internetURL">
13
+ <xsd:restriction base="xsd:anyURI">
14
+ <xsd:pattern value="https?://.*"/>
15
+ </xsd:restriction>
16
+ </xsd:simpleType>
17
+
18
+ <xsd:simpleType name="schemaURL">
19
+ <xsd:restriction base="xsd:anyURI">
20
+ <xsd:pattern value="(https?|ald)://.*"/>
21
+ </xsd:restriction>
22
+ </xsd:simpleType>
23
+
24
+ <xsd:simpleType name="word-string">
25
+ <xsd:restriction base="xsd:string">
26
+ <xsd:pattern value="(\w|_)+"/>
27
+ </xsd:restriction>
28
+ </xsd:simpleType>
29
+
30
+ <xsd:simpleType name="architecture">
31
+ <xsd:restriction base="xsd:string">
32
+ <xsd:enumeration value="x32"/>
33
+ <xsd:enumeration value="x64"/>
34
+ <xsd:enumeration value="x128"/>
35
+ </xsd:restriction>
36
+ </xsd:simpleType>
37
+
38
+ <xsd:simpleType name="encoding">
39
+ <xsd:restriction base="xsd:string">
40
+ <xsd:enumeration value="ANSI"/>
41
+ <xsd:enumeration value="Unicode"/>
42
+ </xsd:restriction>
43
+ </xsd:simpleType>
44
+
45
+ <xsd:simpleType name="access">
46
+ <xsd:restriction base="xsd:string">
47
+ <xsd:enumeration value="read"/>
48
+ <xsd:enumeration value="write"/>
49
+ <xsd:enumeration value="read+write"/>
50
+ </xsd:restriction>
51
+ </xsd:simpleType>
52
+
53
+ <!-- I. VERSIONING -->
54
+ <!-- a. semantic versioning -->
55
+ <xsd:simpleType name="semverType">
56
+ <xsd:restriction base="xsd:string">
57
+ <xsd:pattern value="(\d+)\.(\d+)\.(\d+)(\-([0-9A-Za-z\-]+\.)*([0-9A-Za-z\-]+))?(\+([0-9A-Za-z\-]+\.)*([0-9A-Za-z\-]+))?"/>
58
+ </xsd:restriction>
59
+ </xsd:simpleType>
60
+
61
+ <xsd:complexType name="semanticVersion"> <!-- defines a version of a dependency -->
62
+ <xsd:sequence>
63
+ <xsd:element name="customdata" type="ald:customDataType" minOccurs="0" maxOccurs="unbounded"/>
64
+ </xsd:sequence>
65
+
66
+ <xsd:attribute use="required" name="value" type="ald:semverType"/>
67
+ </xsd:complexType>
68
+
69
+ <xsd:group name="semantic-version-switch"> <!-- defines several ways to validate a version -->
70
+ <xsd:choice>
71
+ <xsd:element name="version" type="ald:semanticVersion"/> <!-- the only accepted version number -->
72
+ <xsd:element name="version-list"> <!-- a list of accepted version numbers -->
73
+ <xsd:complexType>
74
+ <xsd:sequence>
75
+ <xsd:element name="version" type="ald:semanticVersion" minOccurs="1" maxOccurs="unbounded"/>
76
+ </xsd:sequence>
77
+ </xsd:complexType>
78
+ </xsd:element>
79
+ <xsd:element name="version-range"> <!-- a range of accepted version numbers -->
80
+ <xsd:complexType>
81
+ <xsd:sequence>
82
+ <xsd:element name="customdata" type="ald:customDataType" minOccurs="0" maxOccurs="unbounded"/>
83
+ </xsd:sequence>
84
+
85
+ <xsd:attribute use="required" type="ald:semverType" name="min-version"/> <!-- the lower bound of a range of accepted version numbers for the item. -->
86
+ <xsd:attribute use="required" type="ald:semverType" name="max-version"/> <!-- the upper bound of a range of accepted version numbers for the item. -->
87
+ </xsd:complexType>
88
+ </xsd:element>
89
+ </xsd:choice>
90
+ </xsd:group>
91
+
92
+ <!-- b. lax versioning -->
93
+ <!-- defines a version of a requirement -->
94
+ <xsd:complexType name="laxVersion">
95
+ <xsd:sequence>
96
+ <xsd:element name="customdata" type="ald:customDataType" minOccurs="0" maxOccurs="unbounded"/>
97
+ </xsd:sequence>
98
+
99
+ <xsd:attribute use="required" type="xsd:string" name="value"/> <!-- carries the version number -->
100
+ </xsd:complexType>
101
+
102
+ <xsd:group name="version-switch"> <!-- defines several ways to validate a version -->
103
+ <xsd:choice>
104
+ <xsd:element name="version" type="ald:laxVersion"/> <!-- the only accepted version number -->
105
+ <xsd:element name="version-list"> <!-- a list of accepted version numbers -->
106
+ <xsd:complexType>
107
+ <xsd:sequence>
108
+ <xsd:element name="version" type="ald:laxVersion" minOccurs="1" maxOccurs="unbounded"/>
109
+ </xsd:sequence>
110
+ </xsd:complexType>
111
+ </xsd:element>
112
+ <xsd:element name="version-range"> <!-- a range of accepted version numbers -->
113
+ <xsd:complexType>
114
+ <xsd:sequence>
115
+ <xsd:element name="customdata" type="ald:customDataType" minOccurs="0" maxOccurs="unbounded"/>
116
+ </xsd:sequence>
117
+
118
+ <xsd:attribute use="required" type="xsd:string" name="min-version"/> <!-- the lower bound of a range of accepted version numbers for the item. -->
119
+ <xsd:attribute use="required" type="xsd:string" name="max-version"/> <!-- the upper bound of a range of accepted version numbers for the item. -->
120
+ </xsd:complexType>
121
+ </xsd:element>
122
+ </xsd:choice>
123
+ </xsd:group>
124
+ <!-- END OF VERSIONING -->
125
+
126
+ <!-- defines data of an author who wrote this item -->
127
+ <xsd:complexType name="authorType">
128
+ <xsd:sequence>
129
+ <xsd:element name="customdata" type="ald:customDataType" minOccurs="0" maxOccurs="unbounded"/>
130
+ </xsd:sequence>
131
+
132
+ <xsd:attribute use="required" type="xsd:string" name="name"/> <!-- the name to identify the author. Can be same as user-name -->
133
+ <xsd:attribute use="optional" type="xsd:string" name="user-name"/> <!-- the AHK forums user name -->
134
+ <xsd:attribute use="optional" type="ald:internetURL" name="homepage"/> <!-- an URL to a homepage of the author -->
135
+ <xsd:attribute use="optional" type="xsd:string" name="email"/> <!-- an email address of the author -->
136
+ <xsd:anyAttribute/>
137
+ </xsd:complexType>
138
+
139
+ <!-- defines a library required for this item to work -->
140
+ <xsd:complexType name="dependencyType">
141
+ <xsd:sequence>
142
+ <xsd:group ref="ald:semantic-version-switch" minOccurs="1" maxOccurs="1"/> <!-- defines the version(s) of this dependency that are accepted -->
143
+ </xsd:sequence>
144
+
145
+ <xsd:attribute use="required" type="xsd:string" name="name"/> <!-- the name of the required item -->
146
+ <xsd:anyAttribute/>
147
+ </xsd:complexType>
148
+
149
+ <!-- specifies that the item can run on the given system -->
150
+ <xsd:complexType name="targetType">
151
+ <xsd:sequence>
152
+ <xsd:element name="language-version" minOccurs="0" maxOccurs="1">
153
+ <xsd:complexType>
154
+ <xsd:group ref="ald:version-switch" minOccurs="1" maxOccurs="1"/>
155
+ </xsd:complexType>
156
+ </xsd:element>
157
+ <xsd:element name="target" type="ald:targetType" minOccurs="0" maxOccurs="unbounded"/>
158
+ </xsd:sequence>
159
+
160
+ <xsd:attribute use="optional" type="xsd:string" name="message"/>
161
+ <xsd:attribute use="optional" type="xsd:NCName" name="id"/>
162
+
163
+ <xsd:attribute use="optional" type="ald:architecture" name="language-architecture"/>
164
+ <xsd:attribute use="optional" type="ald:encoding" name="language-encoding"/>
165
+ <xsd:attribute use="optional" type="ald:architecture" name="system-architecture"/>
166
+ <xsd:attribute use="optional" type="xsd:string" name="system-version"/>
167
+ <xsd:attribute use="optional" type="xsd:string" name="system-type"/>
168
+
169
+ <xsd:anyAttribute/>
170
+ </xsd:complexType>
171
+
172
+ <!-- specifies different files for different platforms -->
173
+ <xsd:complexType name="fileSetType">
174
+ <xsd:sequence>
175
+ <xsd:choice minOccurs="1" maxOccurs="unbounded">
176
+ <xsd:element name="file" type="ald:fileType"/>
177
+ <xsd:element name="file-set" type="ald:fileSetType"/>
178
+ </xsd:choice>
179
+ <xsd:element name="target" minOccurs="0" maxOccurs="unbounded">
180
+ <xsd:complexType>
181
+ <xsd:attribute use="required" type="xsd:NCName" name="ref"/>
182
+ </xsd:complexType>
183
+ </xsd:element>
184
+ </xsd:sequence>
185
+
186
+ <xsd:attribute use="required" type="xsd:string" name="src"/>
187
+ <xsd:anyAttribute/>
188
+ </xsd:complexType>
189
+
190
+ <!-- defines a file being included -->
191
+ <xsd:complexType name="fileType">
192
+ <xsd:sequence>
193
+ <xsd:element name="customdata" type="ald:customDataType" minOccurs="0" maxOccurs="unbounded"/>
194
+ </xsd:sequence>
195
+
196
+ <xsd:attribute name="path" use="required" type="xsd:string"/> <!-- the (internal) path to the file -->
197
+ <xsd:anyAttribute/>
198
+ </xsd:complexType>
199
+
200
+ <!-- defines a tag for the package -->
201
+ <xsd:complexType name="tagType">
202
+ <xsd:sequence>
203
+ <xsd:element name="customdata" type="ald:customDataType" minOccurs="0" maxOccurs="unbounded"/>
204
+ </xsd:sequence>
205
+
206
+ <xsd:attribute name="name" use="required" type="ald:word-string"/> <!-- the name of the tag -->
207
+ <xsd:anyAttribute/>
208
+ </xsd:complexType>
209
+
210
+ <!-- defines a link related to the package -->
211
+ <xsd:complexType name="linkType">
212
+ <xsd:sequence>
213
+ <xsd:element name="customdata" type="ald:customDataType" minOccurs="0" maxOccurs="unbounded"/>
214
+ </xsd:sequence>
215
+
216
+ <xsd:attribute use="required" type="xsd:string" name="name"/> <!-- a short name for what the link points to -->
217
+ <xsd:attribute use="required" type="xsd:string" name="description"/> <!-- a description of what the link points to -->
218
+ <xsd:attribute use="required" type="ald:internetURL" name="href"/> <!-- the URL the link points to -->
219
+ <xsd:anyAttribute/>
220
+ </xsd:complexType>
221
+
222
+ <!-- allows users to include custom data in the package which can be read by ALD clients -->
223
+ <xsd:complexType name="customDataType" mixed="true">
224
+ <xsd:sequence>
225
+ <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
226
+ </xsd:sequence>
227
+
228
+ <xsd:attribute use="required" type="xsd:string" name="namespace"/> <!-- a string identifying the client using this or the usage for the included data -->
229
+ <xsd:attribute use="optional" type="ald:schemaURL" name="schema"/> <!-- an optional schema URL which can be used for checking the content -->
230
+ <xsd:anyAttribute/>
231
+ </xsd:complexType>
232
+
233
+ <xsd:complexType name="file-list-type">
234
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
235
+ <xsd:choice>
236
+ <xsd:element name="file" type="ald:fileType"/>
237
+ <xsd:element name="file-set" type="ald:fileSetType"/>
238
+ </xsd:choice>
239
+ </xsd:sequence>
240
+ </xsd:complexType>
241
+
242
+ <xsd:complexType name="repositoryType">
243
+ <xsd:sequence minOccurs="1" maxOccurs="unbounded">
244
+ <xsd:element name="url">
245
+ <xsd:complexType>
246
+ <xsd:simpleContent>
247
+ <xsd:extension base="xsd:anyURI">
248
+ <xsd:attribute use="required" type="ald:access" name="access"/>
249
+ </xsd:extension>
250
+ </xsd:simpleContent>
251
+ </xsd:complexType>
252
+ </xsd:element>
253
+ </xsd:sequence>
254
+ <xsd:attribute use="required" type="xsd:string" name="type"/>
255
+ <xsd:attribute use="required" type="ald:internetURL" name="view-url"/>
256
+ </xsd:complexType>
257
+
258
+ <!-- root -->
259
+ <xsd:element name="package">
260
+ <xsd:complexType>
261
+ <xsd:sequence>
262
+ <xsd:element name="description" minOccurs="1" maxOccurs="1" type="xsd:string"/>
263
+ <xsd:element name="authors" minOccurs="1" maxOccurs="1"> <!-- the list of authors being involved in this item -->
264
+ <xsd:complexType>
265
+ <xsd:sequence>
266
+ <xsd:element name="author" type="ald:authorType" minOccurs="1" maxOccurs="unbounded"/>
267
+ </xsd:sequence>
268
+ </xsd:complexType>
269
+ </xsd:element>
270
+ <xsd:element name="dependencies" minOccurs="0" maxOccurs="1"> <!-- the list of dependencies this package has -->
271
+ <xsd:complexType>
272
+ <xsd:sequence>
273
+ <xsd:element name="dependency" type="ald:dependencyType" minOccurs="0" maxOccurs="unbounded"/>
274
+ </xsd:sequence>
275
+ </xsd:complexType>
276
+ </xsd:element>
277
+ <xsd:element name="targets" minOccurs="1" maxOccurs="1">
278
+ <xsd:complexType>
279
+ <xsd:sequence>
280
+ <xsd:element name="target" type="ald:targetType" minOccurs="0" maxOccurs="unbounded"/>
281
+ </xsd:sequence>
282
+ </xsd:complexType>
283
+
284
+ <xsd:unique name="targetID">
285
+ <xsd:selector xpath=".//ald:target"/>
286
+ <xsd:field xpath="@ald:id"/>
287
+ </xsd:unique>
288
+ </xsd:element>
289
+ <xsd:element name="files" minOccurs="1" maxOccurs="1"> <!-- holds the lists of files to include -->
290
+ <xsd:complexType>
291
+ <xsd:sequence>
292
+ <xsd:element name="doc" type="ald:file-list-type" minOccurs="1" maxOccurs="1"/> <!-- the list of documentation files -->
293
+ <xsd:element name="src" type="ald:file-list-type" minOccurs="1" maxOccurs="1"/> <!-- the list of source files -->
294
+ </xsd:sequence>
295
+ </xsd:complexType>
296
+ </xsd:element>
297
+ <xsd:element name="development" minOccurs="0" maxOccurs="1">
298
+ <xsd:complexType>
299
+ <xsd:sequence>
300
+ <xsd:element name="repository" type="ald:repositoryType" minOccurs="1" maxOccurs="unbounded"/>
301
+ </xsd:sequence>
302
+ </xsd:complexType>
303
+ </xsd:element>
304
+ <xsd:element name="tags" minOccurs="0" maxOccurs="1"> <!-- the list of tags for the package -->
305
+ <xsd:complexType>
306
+ <xsd:sequence>
307
+ <xsd:element name="tag" type="ald:tagType" minOccurs="1" maxOccurs="unbounded"/>
308
+ </xsd:sequence>
309
+ </xsd:complexType>
310
+ </xsd:element>
311
+ <!-- todo: triggers
312
+ Triggers can be run after installation, before and after update and before uninstall.
313
+ They consist of a command line to execute.
314
+ -->
315
+ <xsd:element name="links" minOccurs="1" maxOccurs="1"> <!-- the list of related links -->
316
+ <xsd:complexType>
317
+ <xsd:sequence>
318
+ <xsd:element name="link" type="ald:linkType" minOccurs="0" maxOccurs="unbounded"/>
319
+ </xsd:sequence>
320
+ </xsd:complexType>
321
+ </xsd:element>
322
+ <xsd:any minOccurs="0"/>
323
+ </xsd:sequence>
324
+
325
+ <xsd:attribute use="required" type="ald:guid-type" name="id"/> <!-- the unique ID of the package -->
326
+ <xsd:attribute use="required" type="xsd:string" name="type"/> <!-- the type of the package -->
327
+ <xsd:attribute use="required" type="xsd:string" name="summary"/>
328
+ <xsd:attribute use="required" type="xsd:string" name="name"/> <!-- the name of the package -->
329
+ <xsd:attribute use="required" type="ald:semverType" name="version"/> <!-- the current version of the package -->
330
+ <xsd:attribute use="optional" type="xsd:string" name="logo-image"/> <!-- the relative path to a logo image, if one is included -->
331
+ <xsd:attribute use="optional" type="ald:internetURL" name="homepage"/>
332
+ <xsd:anyAttribute/>
333
+ </xsd:complexType>
334
+
335
+ <xsd:keyref name="target-ref" refer="ald:targetID">
336
+ <xsd:selector xpath=".//ald:file-set/ald:target"/>
337
+ <xsd:field xpath="@ald:ref"/>
338
+ </xsd:keyref>
339
+ </xsd:element>
340
+ </xsd:schema>
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ALD
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - maul.esel
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-03-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rubyzip
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.1'
30
+ - !ruby/object:Gem::Dependency
31
+ name: nokogiri
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '1.6'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '1.6'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: A gem containing helpers for the ALD API, the ALD package format and
63
+ ALD package definitions.
64
+ email:
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - lib/ALD.rb
70
+ - lib/ALD/package.rb
71
+ - lib/ALD/definition.rb
72
+ - lib/ALD/package_generator.rb
73
+ - lib/ALD/definition_generator.rb
74
+ - lib/ALD/exceptions.rb
75
+ - lib/ALD/schema.xsd
76
+ homepage: https://github.com/Library-Distribution/ALD.rb
77
+ licenses:
78
+ - MIT
79
+ post_install_message:
80
+ rdoc_options: []
81
+ require_paths:
82
+ - lib
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project:
97
+ rubygems_version: 1.8.25
98
+ signing_key:
99
+ specification_version: 3
100
+ summary: Utility gem for the ALD protocol
101
+ test_files: []