bel 0.3.0.beta1-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|