bel 0.3.0.beta1-x86-mingw32
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/INSTALL.md +19 -0
- data/INSTALL_RUBY.md +107 -0
- data/LICENSE +191 -0
- data/README.md +319 -0
- data/bel.gemspec +67 -0
- data/bin/bel2rdf +134 -0
- data/bin/bel_compare +177 -0
- data/bin/bel_parse +60 -0
- data/bin/bel_rdfschema +72 -0
- data/bin/bel_summarize +86 -0
- data/bin/bel_upgrade +175 -0
- data/bin/bel_upgrade_term +163 -0
- data/ext/mri/bel-ast.c +221 -0
- data/ext/mri/bel-ast.h +82 -0
- data/ext/mri/bel-node-stack.c +83 -0
- data/ext/mri/bel-node-stack.h +26 -0
- data/ext/mri/bel-parse-statement.c +122296 -0
- data/ext/mri/bel-parse-term.c +117670 -0
- data/ext/mri/bel-parser.c +91 -0
- data/ext/mri/bel-parser.h +13 -0
- data/ext/mri/bel-token.c +161 -0
- data/ext/mri/bel-token.h +58 -0
- data/ext/mri/bel-tokenize-term.c +391 -0
- data/ext/mri/extconf.rb +8 -0
- data/ext/mri/libbel.c +5 -0
- data/ext/mri/libbel.def +26 -0
- data/lib/bel.rb +17 -0
- data/lib/bel/completion.rb +53 -0
- data/lib/bel/completion_rule.rb +236 -0
- data/lib/bel/language.rb +1052 -0
- data/lib/bel/namespace.rb +323 -0
- data/lib/bel/quoting.rb +29 -0
- data/lib/bel/rdf.rb +314 -0
- data/lib/bel/script.rb +239632 -0
- data/lib/features.rb +21 -0
- data/lib/libbel.rb +201 -0
- data/lib/libbel.so +0 -0
- data/lib/util.rb +125 -0
- metadata +269 -0
data/lib/features.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# vim: ts=2 sw=2:
|
2
|
+
module BEL
|
3
|
+
module Features
|
4
|
+
|
5
|
+
# check for rdf support
|
6
|
+
begin
|
7
|
+
require 'rdf'
|
8
|
+
require 'addressable/uri'
|
9
|
+
require 'uuid'
|
10
|
+
@@rdf_support = true
|
11
|
+
rescue LoadError => e
|
12
|
+
# exceptional condition; missing non-optional or downstream deps
|
13
|
+
@@rdf_support = false
|
14
|
+
raise unless e.message =~ /rdf/ or e.message =~ /addressable/
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.rdf_support?
|
18
|
+
@@rdf_support
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/libbel.rb
ADDED
@@ -0,0 +1,201 @@
|
|
1
|
+
module LibBEL
|
2
|
+
|
3
|
+
class << self
|
4
|
+
|
5
|
+
def rubinius?
|
6
|
+
defined?(RUBY_ENGINE) && ("rbx" == RUBY_ENGINE)
|
7
|
+
end
|
8
|
+
|
9
|
+
# @api_private
|
10
|
+
# Determine FFI constant for this ruby engine.
|
11
|
+
def find_ffi
|
12
|
+
if rubinius?
|
13
|
+
# Use ffi gem instead of rubinius-bundled FFI
|
14
|
+
# Rubinius 2.5.2 does not seem to support FFI::ManagedStruct
|
15
|
+
require "ffi"
|
16
|
+
::FFI
|
17
|
+
else # mri, jruby, etc
|
18
|
+
require "ffi"
|
19
|
+
::FFI
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# @api_private
|
24
|
+
# Extend with the correct ffi implementation.
|
25
|
+
def load_ffi
|
26
|
+
ffi_module = LibBEL::find_ffi
|
27
|
+
extend ffi_module::Library
|
28
|
+
ffi_module
|
29
|
+
end
|
30
|
+
|
31
|
+
# @api_private
|
32
|
+
# Loads the libkyotocabinet shared library.
|
33
|
+
def load_libBEL
|
34
|
+
ffi_module = find_ffi
|
35
|
+
extend ffi_module::Library
|
36
|
+
|
37
|
+
# libbel.so: Linux and MinGW
|
38
|
+
# libbel.bundle: Mac OSX
|
39
|
+
messages = []
|
40
|
+
library_loaded = ['libbel.so', 'libbel.bundle'].map { |library_file|
|
41
|
+
File.join(
|
42
|
+
File.expand_path(File.dirname(__FILE__)),
|
43
|
+
library_file
|
44
|
+
)
|
45
|
+
}.any? do |library_path|
|
46
|
+
begin
|
47
|
+
ffi_lib library_path
|
48
|
+
true
|
49
|
+
rescue LoadError => exception
|
50
|
+
messages << exception.to_s
|
51
|
+
false
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
if !library_loaded
|
56
|
+
msg = messages.map { |msg| " #{msg}" }.join("\n")
|
57
|
+
fail LoadError.new("Failed to load libbel library. Details:\n#{msg}")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Constant holding the FFI module for this ruby engine.
|
63
|
+
FFI = LibBEL::load_ffi
|
64
|
+
LibBEL::load_libBEL
|
65
|
+
|
66
|
+
# typedef enum bel_token_type
|
67
|
+
enum :bel_token_type, [
|
68
|
+
:IDENT, 0,
|
69
|
+
:STRING,
|
70
|
+
:O_PAREN,
|
71
|
+
:C_PAREN,
|
72
|
+
:COLON,
|
73
|
+
:COMMA,
|
74
|
+
:SPACES
|
75
|
+
]
|
76
|
+
|
77
|
+
class BelToken < FFI::Struct
|
78
|
+
|
79
|
+
layout :type, :bel_token_type,
|
80
|
+
:pos_start, :int,
|
81
|
+
:pos_end, :int,
|
82
|
+
:value, :pointer
|
83
|
+
|
84
|
+
def type
|
85
|
+
self[:type]
|
86
|
+
end
|
87
|
+
|
88
|
+
def pos_start
|
89
|
+
self[:pos_start]
|
90
|
+
end
|
91
|
+
|
92
|
+
def pos_end
|
93
|
+
self[:pos_end]
|
94
|
+
end
|
95
|
+
|
96
|
+
def value
|
97
|
+
self[:value].read_string
|
98
|
+
end
|
99
|
+
|
100
|
+
def hash
|
101
|
+
[self.type, self.value, self.pos_start, self.pos_end].hash
|
102
|
+
end
|
103
|
+
|
104
|
+
def ==(other)
|
105
|
+
return false if other == nil
|
106
|
+
self.type == other.type && self.value == other.value &&
|
107
|
+
self.pos_start == other.pos_start && self.pos_end == other.pos_end
|
108
|
+
end
|
109
|
+
|
110
|
+
alias_method :eql?, :'=='
|
111
|
+
end
|
112
|
+
|
113
|
+
class BelTokenList < FFI::ManagedStruct
|
114
|
+
include Enumerable
|
115
|
+
|
116
|
+
layout :length, :int,
|
117
|
+
:tokens, BelToken.ptr
|
118
|
+
|
119
|
+
def each
|
120
|
+
if block_given?
|
121
|
+
iterator = LibBEL::bel_new_token_iterator(self.pointer)
|
122
|
+
while LibBEL::bel_token_iterator_end(iterator).zero?
|
123
|
+
current_token = LibBEL::bel_token_iterator_get(iterator)
|
124
|
+
yield LibBEL::BelToken.new(current_token)
|
125
|
+
LibBEL::bel_token_iterator_next(iterator)
|
126
|
+
end
|
127
|
+
LibBEL::free_bel_token_iterator(iterator)
|
128
|
+
else
|
129
|
+
enum_for(:each)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def token_at(position)
|
134
|
+
self.each_with_index { |tk, index|
|
135
|
+
if (tk.pos_start..tk.pos_end).include? position
|
136
|
+
return [tk, index]
|
137
|
+
end
|
138
|
+
}
|
139
|
+
nil
|
140
|
+
end
|
141
|
+
|
142
|
+
def self.release(ptr)
|
143
|
+
LibBEL::free_bel_token_list(ptr)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
class BelTokenIterator < FFI::ManagedStruct
|
148
|
+
include Enumerable
|
149
|
+
|
150
|
+
layout :index, :int,
|
151
|
+
:list, :pointer,
|
152
|
+
:current_token, :pointer
|
153
|
+
|
154
|
+
def each
|
155
|
+
if self.null? or not LibBEL::bel_token_iterator_end(self).zero?
|
156
|
+
fail StopIteration, "bel_token_iterator reached end"
|
157
|
+
end
|
158
|
+
|
159
|
+
if block_given?
|
160
|
+
while LibBEL::bel_token_iterator_end(self.pointer).zero?
|
161
|
+
current_token = LibBEL::bel_token_iterator_get(self.pointer)
|
162
|
+
yield LibBEL::BelToken.new(current_token)
|
163
|
+
LibBEL::bel_token_iterator_next(self.pointer)
|
164
|
+
end
|
165
|
+
else
|
166
|
+
enum_for(:each)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def self.release(ptr)
|
171
|
+
LibBEL::free_bel_token_iterator(ptr)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
attach_function :bel_new_token, [:bel_token_type, :pointer, :pointer, :pointer], :pointer
|
176
|
+
attach_function :bel_new_token_list, [:int ], :pointer
|
177
|
+
attach_function :bel_new_token_iterator, [:pointer ], :pointer
|
178
|
+
attach_function :bel_token_iterator_get, [:pointer ], :pointer
|
179
|
+
attach_function :bel_token_iterator_next, [:pointer ], :void
|
180
|
+
attach_function :bel_token_iterator_end, [:pointer ], :int
|
181
|
+
attach_function :bel_parse_term, [:string ], :pointer
|
182
|
+
attach_function :bel_tokenize_term, [:string ], :pointer
|
183
|
+
attach_function :bel_print_token, [:pointer ], :void
|
184
|
+
attach_function :bel_print_token_list, [:pointer ], :void
|
185
|
+
attach_function :free_bel_token, [:pointer ], :void
|
186
|
+
attach_function :free_bel_token_list, [:pointer ], :void
|
187
|
+
attach_function :free_bel_token_iterator, [:pointer ], :void
|
188
|
+
|
189
|
+
def self.tokenize_term(string)
|
190
|
+
LibBEL::BelTokenList.new(self.bel_tokenize_term(string))
|
191
|
+
end
|
192
|
+
|
193
|
+
def self.print_token(token)
|
194
|
+
self.bel_print_token(token.pointer)
|
195
|
+
end
|
196
|
+
|
197
|
+
def self.print_token_list(list)
|
198
|
+
self.bel_print_token_list(list.pointer)
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
data/lib/libbel.so
ADDED
Binary file
|
data/lib/util.rb
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'digest'
|
2
|
+
require 'open-uri'
|
3
|
+
require 'pathname'
|
4
|
+
require 'tempfile'
|
5
|
+
|
6
|
+
module BEL
|
7
|
+
|
8
|
+
def self.read_all(reference)
|
9
|
+
if self.cached? reference
|
10
|
+
self.read_cached reference do |cf|
|
11
|
+
return cf.read
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
self.multi_open(reference) do |f|
|
16
|
+
content = f.read
|
17
|
+
self.write_cached reference, content
|
18
|
+
return content
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.read_lines(reference)
|
23
|
+
if self.cached? reference
|
24
|
+
self.read_cached reference do |cf|
|
25
|
+
return cf.readlines
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
self.multi_open(reference) do |f|
|
30
|
+
content = f.read
|
31
|
+
self.write_cached reference, content
|
32
|
+
f.rewind
|
33
|
+
return f.readlines
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def self.multi_open(reference)
|
40
|
+
if self.cached? reference
|
41
|
+
self.read_cached reference do |cf|
|
42
|
+
if block_given?
|
43
|
+
yield cf
|
44
|
+
else
|
45
|
+
return cf
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return
|
49
|
+
end
|
50
|
+
|
51
|
+
if File.exists? reference
|
52
|
+
File.open(reference) do |f|
|
53
|
+
if block_given?
|
54
|
+
yield f
|
55
|
+
else
|
56
|
+
return f
|
57
|
+
end
|
58
|
+
end
|
59
|
+
elsif reference.start_with? 'file:'
|
60
|
+
File.open(URI(reference).path) do |f|
|
61
|
+
if block_given?
|
62
|
+
yield f
|
63
|
+
else
|
64
|
+
return f
|
65
|
+
end
|
66
|
+
end
|
67
|
+
else
|
68
|
+
open(reference) do |f|
|
69
|
+
if block_given?
|
70
|
+
yield f
|
71
|
+
else
|
72
|
+
return f
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.cached?(identifier, options = {})
|
79
|
+
options = {
|
80
|
+
temp_dir: Dir::tmpdir
|
81
|
+
}.merge(options)
|
82
|
+
cached_name = cached_filename_for identifier
|
83
|
+
path = Pathname(options[:temp_dir]) + cached_name
|
84
|
+
File.exist? path
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.read_cached(identifier, options = {})
|
88
|
+
options = {
|
89
|
+
temp_dir: Dir::tmpdir
|
90
|
+
}.merge(options)
|
91
|
+
cached_name = cached_filename_for identifier
|
92
|
+
path = Pathname(options[:temp_dir]) + cached_name
|
93
|
+
File.open(path, "r") do |f|
|
94
|
+
if block_given?
|
95
|
+
yield f
|
96
|
+
else
|
97
|
+
return f.read
|
98
|
+
end
|
99
|
+
end
|
100
|
+
path.to_s
|
101
|
+
end
|
102
|
+
|
103
|
+
def self.write_cached(identifier, data = '', options = {})
|
104
|
+
options = {
|
105
|
+
temp_dir: Dir::tmpdir
|
106
|
+
}.merge(options)
|
107
|
+
cached_name = cached_filename_for identifier
|
108
|
+
path = Pathname(options[:temp_dir]) + cached_name
|
109
|
+
File.open(path, "w") do |f|
|
110
|
+
if block_given?
|
111
|
+
yield f
|
112
|
+
else
|
113
|
+
f.write(data)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
path.to_s
|
117
|
+
end
|
118
|
+
|
119
|
+
def self.cached_filename_for(identifier)
|
120
|
+
return nil unless identifier
|
121
|
+
"#{self.to_s}_#{Digest::SHA256.hexdigest identifier}"
|
122
|
+
end
|
123
|
+
end
|
124
|
+
# vim: ts=2 sw=2
|
125
|
+
# encoding: utf-8
|
metadata
ADDED
@@ -0,0 +1,269 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bel
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0.beta1
|
5
|
+
prerelease: 6
|
6
|
+
platform: x86-mingw32
|
7
|
+
authors:
|
8
|
+
- Anthony Bargnesi
|
9
|
+
- Natalie Catlett
|
10
|
+
- Nick Bargnesi
|
11
|
+
- William Hayes
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
date: 2015-03-14 00:00:00.000000000 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: ffi
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '1.9'
|
25
|
+
type: :runtime
|
26
|
+
prerelease: false
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.9'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: uuid
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.3'
|
41
|
+
type: :development
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '2.3'
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: addressable
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '2.3'
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ~>
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '2.3'
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: rdf
|
67
|
+
requirement: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ~>
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '1.1'
|
73
|
+
type: :development
|
74
|
+
prerelease: false
|
75
|
+
version_requirements: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ~>
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '1.1'
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: bundler
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ~>
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '1.7'
|
89
|
+
type: :development
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.7'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '10.4'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ~>
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '10.4'
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rake-compiler
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ~>
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0.9'
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
125
|
+
requirements:
|
126
|
+
- - ~>
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0.9'
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: rspec
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
133
|
+
requirements:
|
134
|
+
- - ~>
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '3.2'
|
137
|
+
type: :development
|
138
|
+
prerelease: false
|
139
|
+
version_requirements: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ~>
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '3.2'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: yard
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
149
|
+
requirements:
|
150
|
+
- - ~>
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.8'
|
153
|
+
type: :development
|
154
|
+
prerelease: false
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
157
|
+
requirements:
|
158
|
+
- - ~>
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0.8'
|
161
|
+
- !ruby/object:Gem::Dependency
|
162
|
+
name: rdoc
|
163
|
+
requirement: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
165
|
+
requirements:
|
166
|
+
- - ~>
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '4.2'
|
169
|
+
type: :development
|
170
|
+
prerelease: false
|
171
|
+
version_requirements: !ruby/object:Gem::Requirement
|
172
|
+
none: false
|
173
|
+
requirements:
|
174
|
+
- - ~>
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '4.2'
|
177
|
+
description: ! ' The BEL gem allows the reading, writing, and processing of BEL (Biological
|
178
|
+
Expression Language) with a natural DSL. '
|
179
|
+
email:
|
180
|
+
- abargnesi@selventa.com
|
181
|
+
- ncatlett@selventa.com
|
182
|
+
- nbargnesi@selventa.com
|
183
|
+
- whayes@selventa.com
|
184
|
+
executables:
|
185
|
+
- bel_summarize
|
186
|
+
- bel_rdfschema
|
187
|
+
- bel_upgrade_term
|
188
|
+
- bel2rdf
|
189
|
+
- bel_parse
|
190
|
+
- bel_compare
|
191
|
+
- bel_upgrade
|
192
|
+
extensions: []
|
193
|
+
extra_rdoc_files: []
|
194
|
+
files:
|
195
|
+
- lib/util.rb
|
196
|
+
- lib/libbel.rb
|
197
|
+
- lib/bel/quoting.rb
|
198
|
+
- lib/bel/rdf.rb
|
199
|
+
- lib/bel/completion.rb
|
200
|
+
- lib/bel/completion_rule.rb
|
201
|
+
- lib/bel/script.rb
|
202
|
+
- lib/bel/language.rb
|
203
|
+
- lib/bel/namespace.rb
|
204
|
+
- lib/features.rb
|
205
|
+
- lib/bel.rb
|
206
|
+
- ext/mri/bel-token.c
|
207
|
+
- ext/mri/bel-ast.c
|
208
|
+
- ext/mri/bel-tokenize-term.c
|
209
|
+
- ext/mri/libbel.c
|
210
|
+
- ext/mri/bel-parser.c
|
211
|
+
- ext/mri/bel-parse-statement.c
|
212
|
+
- ext/mri/bel-parse-term.c
|
213
|
+
- ext/mri/bel-node-stack.c
|
214
|
+
- ext/mri/bel-token.h
|
215
|
+
- ext/mri/bel-node-stack.h
|
216
|
+
- ext/mri/bel-parser.h
|
217
|
+
- ext/mri/bel-ast.h
|
218
|
+
- ext/mri/libbel.def
|
219
|
+
- bel.gemspec
|
220
|
+
- LICENSE
|
221
|
+
- INSTALL.md
|
222
|
+
- INSTALL_RUBY.md
|
223
|
+
- README.md
|
224
|
+
- bin/bel_summarize
|
225
|
+
- bin/bel_rdfschema
|
226
|
+
- bin/bel_upgrade_term
|
227
|
+
- bin/bel2rdf
|
228
|
+
- bin/bel_parse
|
229
|
+
- bin/bel_compare
|
230
|
+
- bin/bel_upgrade
|
231
|
+
- ext/mri/extconf.rb
|
232
|
+
- lib/libbel.so
|
233
|
+
homepage: https://github.com/OpenBEL/bel.rb
|
234
|
+
licenses:
|
235
|
+
- Apache-2.0
|
236
|
+
post_install_message:
|
237
|
+
rdoc_options:
|
238
|
+
- --title
|
239
|
+
- BEL Ruby Documentation
|
240
|
+
- --main
|
241
|
+
- README.md
|
242
|
+
- --line-numbers
|
243
|
+
- --exclude
|
244
|
+
- lib/bel/script.rb
|
245
|
+
- README.md
|
246
|
+
- INSTALL.md
|
247
|
+
- INSTALL_RUBY.md
|
248
|
+
- LICENSE
|
249
|
+
require_paths:
|
250
|
+
- lib
|
251
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
252
|
+
none: false
|
253
|
+
requirements:
|
254
|
+
- - ! '>='
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: 1.9.2
|
257
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
|
+
none: false
|
259
|
+
requirements:
|
260
|
+
- - ! '>'
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: 1.3.1
|
263
|
+
requirements: []
|
264
|
+
rubyforge_project:
|
265
|
+
rubygems_version: 1.8.23.2
|
266
|
+
signing_key:
|
267
|
+
specification_version: 3
|
268
|
+
summary: Process BEL with ruby.
|
269
|
+
test_files: []
|