Class: RRSE::Database
- Inherits:
-
Object
- Object
- RRSE::Database
- Defined in:
- lib/rrse/database.rb
Instance Method Summary collapse
-
#initialize(dir, separator) ⇒ Database
constructor
A new instance of Database.
- #instance_method_name?(spec) ⇒ Boolean
- #query_full_name(name) ⇒ Object
- #query_instance_method(query) ⇒ Object
- #query_toplevel_method(query) ⇒ Object
- #toplevel_name?(spec) ⇒ Boolean
Constructor Details
#initialize(dir, separator) ⇒ Database
Returns a new instance of Database.
4 5 6 7 8 |
# File 'lib/rrse/database.rb', line 4 def initialize(dir, separator) @table = File.open(dir.join("table")){|f| MessagePack.load(f)} @index_table = File.open(dir.join("index_table")){|f| MessagePack.load(f)} @separator = separator end |
Instance Method Details
#instance_method_name?(spec) ⇒ Boolean
18 19 20 21 |
# File 'lib/rrse/database.rb', line 18 def instance_method_name?(spec) return false unless /([.:#])[^.:#]+\Z/.match(spec) return $1 == "#" end |
#query_full_name(name) ⇒ Object
23 24 25 |
# File 'lib/rrse/database.rb', line 23 def query_full_name(name) @table.fetch(name, []).map{|param| "#{name}#{param}"}.join(@separator) end |
#query_instance_method(query) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/rrse/database.rb', line 10 def query_instance_method(query) @index_table.fetch(query, []).find_all{|spec| instance_method_name?(spec) }.map{|spec| query_full_name(spec) }.join(@separator) end |
#query_toplevel_method(query) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/rrse/database.rb', line 27 def query_toplevel_method(query) @index_table.fetch(query, []).find_all{|spec| toplevel_name?(spec) }.map{|spec| query_full_name(spec) }.join(@separator) end |
#toplevel_name?(spec) ⇒ Boolean
35 36 37 |
# File 'lib/rrse/database.rb', line 35 def toplevel_name?(spec) /\A(Object\#|Kernel\.|Module#)(?!(initialize|class))/ =~ spec end |