bel 0.2.1 → 0.3.0.beta1

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