bel 0.2.1 → 0.3.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 3f744cb7280ca000b3f0d88c83e997cbaf05f654
4
- data.tar.gz: e49304e421acd5e906fcf4022c91b9156ccc4b90
5
- SHA512:
6
- metadata.gz: fd2a6f3a6218651f9398eb1407489a73d3d4f2271b89a5950b839f2939382d60b49669d078bffc5e2c4408d8c0fad84803e5babb264b52f5822ea79923b613e8
7
- data.tar.gz: 1e42739d9092c3f1a92e6b3b64cdcc028f5f9582ca60aabfe388ace26fd70b34d5c86db421d83b93af17dfd7421531e8116ff035ba1fd144f9e883aa6bbddc4f
@@ -1,115 +0,0 @@
1
- require 'singleton'
2
-
3
- module BEL
4
- module Script
5
- class Newline
6
- include Singleton
7
- def to_s
8
- ""
9
- end
10
- end
11
- Comment = Struct.new(:text) do
12
- def to_s
13
- %Q{##{self.text}}
14
- end
15
- end
16
- DocumentProperty = Struct.new(:name, :value) do
17
- def to_s
18
- value = self.value
19
- if NonWordMatcher.match value
20
- value = %Q{"#{value}"}
21
- end
22
- %Q{SET DOCUMENT #{self.name} = #{value}}
23
- end
24
- end
25
- AnnotationDefinition = Struct.new(:type, :prefix, :value) do
26
- def to_s
27
- case self.type
28
- when :list
29
- %Q{DEFINE ANNOTATION #{self.prefix} AS LIST {#{self.value.join(',')}}}
30
- when :pattern
31
- %Q{DEFINE ANNOTATION #{self.prefix} AS PATTERN "#{self.value}"}
32
- when :url
33
- %Q{DEFINE ANNOTATION #{self.prefix} AS URL "#{self.value}"}
34
- end
35
- end
36
- end
37
- NamespaceDefinition = Struct.new(:prefix, :value) do
38
- def to_s
39
- %Q{DEFINE NAMESPACE #{self.prefix} AS URL "#{self.value}"}
40
- end
41
- end
42
- Annotation = Struct.new(:name, :value) do
43
- def to_s
44
- if self.value.respond_to? :each
45
- value = "{#{self.value.join(',')}}"
46
- else
47
- value = self.value
48
- if NonWordMatcher.match value
49
- value.gsub! '"', '\"'
50
- value = %Q{"#{value}"}
51
- end
52
- end
53
- "SET #{self.name} = #{value}"
54
- end
55
- end
56
- Parameter = Struct.new(:ns, :value) do
57
- NonWordMatcher = Regexp.compile(/[^0-9a-zA-Z]/)
58
- def to_s
59
- prepped_value = value
60
- if NonWordMatcher.match value
61
- prepped_value = %Q{"#{value}"}
62
- end
63
- "#{self.ns ? self.ns + ':' : ''}#{prepped_value}"
64
- end
65
- end
66
- Term = Struct.new(:fx, :args) do
67
- def <<(item)
68
- self.args << item
69
- end
70
- def to_s
71
- "#{self.fx}(#{[args].flatten.join(',')})"
72
- end
73
- end
74
- Statement = Struct.new(:subject, :rel, :object, :annotations, :comment) do
75
- def subject_only?
76
- !rel
77
- end
78
- def simple?
79
- object.is_a? Term
80
- end
81
- def nested?
82
- object.is_a? Statement
83
- end
84
- def to_s
85
- lbl = case
86
- when subject_only?
87
- subject.to_s
88
- when simple?
89
- "#{subject.to_s} #{rel} #{object.to_s}"
90
- when nested?
91
- "#{subject.to_s} #{rel} (#{object.to_s})"
92
- end
93
- comment ? lbl + ' //' + comment : lbl
94
- end
95
- end
96
- StatementGroup = Struct.new(:name, :statements, :annotations) do
97
- def to_s
98
- name = self.name
99
- if NonWordMatcher.match name
100
- name = %Q{"#{name}"}
101
- end
102
- %Q{SET STATEMENT_GROUP = #{name}}
103
- end
104
- end
105
- UnsetStatementGroup = Struct.new(:name) do
106
- def to_s
107
- %Q{UNSET STATEMENT_GROUP}
108
- end
109
- end
110
-
111
- private
112
- end
113
- end
114
- # vim: ts=2 sw=2:
115
- # encoding: utf-8