rtm-ontopia 0.2.1 → 0.3.0

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.
@@ -0,0 +1,4 @@
1
+ # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
+ # License: Apache License, Version 2.0
3
+
4
+ require File.join(File.dirname(__FILE__), 'rtm/ontopia')
@@ -1,37 +1,21 @@
1
1
  # Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig.
2
2
  # License: Apache License, Version 2.0
3
3
 
4
- if Object.const_defined?("Gem") && rtmgem = Gem.loaded_specs["rtm-ontopia"]
5
- require 'rtm/javatmapi'
6
- else
4
+ unless Object.const_defined?("Gem") && rtmgem = Gem.loaded_specs["rtm-ontopia"]
7
5
  javatmapi_path = File.expand_path(File.join(File.dirname(__FILE__), "../../../rtm-javatmapi/lib"))
8
- if File.directory?(javatmapi_path)
9
- $LOAD_PATH.unshift javatmapi_path
10
- require 'rtm/javatmapi'
11
- end
6
+ $LOAD_PATH.unshift javatmapi_path if File.directory?(javatmapi_path)
12
7
  end
8
+ require 'rtm/javatmapi'
13
9
 
14
10
  Dir[File.join(File.dirname(__FILE__), 'ontopia/javalibs/*.jar')].each {|file| require file }
15
11
  require File.join(File.dirname(__FILE__), '/ontopia/io/to_cxtm')
16
12
 
17
13
  module RTM
18
14
  class Ontopia < JavaTMAPI
19
- require File.join(File.dirname(__FILE__), '/ontopia/rdbms/properties')
20
15
  identifier :ontopia
21
-
16
+
22
17
  def initialize(*args)
23
18
  super
24
- if @params[:store] == :rdbms
25
- # enhance all ontopia properties from rails-style config
26
- ontopia_properties = RTM::Ontopia::Rdbms::Properties.rails2ontopia(@params[:store_config])
27
-
28
-
29
- # FIXME: this works only if properties was not specified as file
30
- @params[:properties] ||= {}
31
- ontopia_properties.each do |k,v|
32
- @params[:properties][k] = v.to_s unless @params[:properties].key?(k)
33
- end
34
- end
35
19
 
36
20
  tmsf = Java::NetOntopiaTopicmapsImplTmapi2::TopicMapSystemFactory.new
37
21
  set_tmsf(tmsf)
@@ -40,14 +24,53 @@ module RTM
40
24
  create_system
41
25
  end
42
26
 
27
+ def self.connect(*args)
28
+ params = args.first
29
+
30
+ # redirect to create an rdbms connection if an adapter is given and we did not already com from there
31
+ if params && params[:adapter] && self != OntopiaRdbms
32
+ OntopiaRdbms.connect(*args)
33
+ else
34
+ # adapter was not given or we already handled it and came back here through super
35
+ super
36
+ end
37
+ end
38
+ end
39
+
40
+ class OntopiaRdbms < Ontopia
41
+ require File.join(File.dirname(__FILE__), '/ontopia/rdbms/properties')
42
+ require File.join(File.dirname(__FILE__), '/ontopia/rdbms/store')
43
+ identifier :ontopia_rdbms
44
+
45
+ def initialize(params={})
46
+ params2 = params || {} # XXX hack: maybe setting params in Engine#initialize is not the best idea
47
+
48
+ # enhance all ontopia properties from rails-style config
49
+ ontopia_properties = RTM::Ontopia::Rdbms::Properties.rails2ontopia(config(params2))
50
+
51
+ # FIXME: this works only if properties was not specified as file
52
+ params2[:properties] ||= {}
53
+ ontopia_properties.each do |k,v|
54
+ params2[:properties][k] = v.to_s unless params2[:properties].key?(k)
55
+ end
56
+ super
57
+ @params.merge(params2)
58
+ end
59
+
60
+ def config(params = @params)
61
+ # if no config-option is given, use params directly, but clean it up a bit
62
+ params[:config] || params.reject{|k,v| k == :identifier || k == :backend || k == :implementation}
63
+ end
64
+
43
65
  # Migrate the Database to contain the Ontopia RDBMS schema. Uses the connection data provided with connect
44
66
  def migrate_database
45
- self.class.migrate_database(@params[:store_config])
67
+ self.class.migrate_database(config)
46
68
  end
69
+ alias migrate migrate_database
47
70
 
48
71
  # Drops the Ontopia schema from the database. This corresponds to migrating the database down.
49
72
  def migrate_database_down
50
- self.class.migrate_database_down(@params[:store_config])
73
+ self.class.migrate_database_down(config)
51
74
  end
52
75
 
53
76
  # Migrate the Database to contain the Ontopia RDBMS schema.
@@ -61,116 +84,145 @@ module RTM
61
84
  # :direction => :up|:down create or drop schema (defaults to :up)
62
85
  #
63
86
  def self.migrate_database(config)
87
+ res = nil
88
+ connect_with(config) do |connection|
89
+ # see if we were provided with a schema directly or get it from file
90
+ schema_sql = config[:schema_sql]
91
+ unless schema_sql
92
+ # should we migrate up or down?
93
+ direction = config[:direction] || :up
94
+ create_or_drop = direction.to_s == "up" ? "create" : "drop"
95
+
96
+ # get the adapter name for ontopia from the config
97
+ adapter_schema_name = config[:adapter_schema_name] || config[:adapter].sub(/^jdbc/, '')
98
+
99
+ # check if it is one of the available adapters
100
+ available_schemas = %w[generic h2 mysql oracle8 oracle9i oracle10g postresql sqlserver]
101
+ adapter_schema_name = "generic" unless available_schemas.include?(adapter_schema_name)
102
+
103
+ # find the corresponding schema file
104
+ schema_file = config[:schema_file] || File.join(File.dirname(__FILE__), "/../../res/rdbms/setup/#{adapter_schema_name}.#{create_or_drop}.sql")
105
+ raise "Could not find schema definition file #{File.expand_path(schema_file)}." unless File.exist?(schema_file)
106
+
107
+ # read the schema
108
+ schema_sql = File.read(schema_file)
109
+ end
110
+
111
+ # execute the schema
112
+ res = connection.execute(schema_sql)
113
+ end
114
+ res
115
+ end
116
+
117
+ # Drops the Ontopia schema from the database. This corresponds to migrating the database down.
118
+ def self.migrate_database_down(params={})
119
+ migrate_database(params.merge(:direction => :down))
120
+ end
121
+
122
+ # Provides a given block with a (temporary) connection using the given
123
+ # configuration. Either an existing connection is used (and kept open) or
124
+ # a new connection is opened, yielded to the block and then closed again.
125
+ #
126
+ # This is needed for migrations and for the connection check.
127
+ # Within the connection check it loads the needed JDBC connectors via
128
+ # ActiveRecord.
129
+ def self.connect_with(config)
64
130
  require 'active_record' unless defined?(ActiveRecord)
65
131
  require 'jdbc_adapter' unless defined?(ActiveRecord::ConnectionAdapters::Jdbc)
66
132
 
67
- # create a new anonymous class extending ActiveRecord::Base for a separate connection
68
- anonymous_active_record_base = Class.new(ActiveRecord::Base)
133
+ # prepare variable for separate connection class (if needed)
134
+ anonymous_active_record_base = nil
69
135
 
70
136
  # use a supplied connection or create one using the config
71
137
  connection = config[:connection]
72
138
  unless connection
139
+ # create a new anonymous class extending ActiveRecord::Base for a separate connection
140
+ anonymous_active_record_base = Class.new(ActiveRecord::Base)
141
+
73
142
  # connect to backend using the anonymous base class
74
143
  anonymous_active_record_base.establish_connection(config)
75
144
  connection = anonymous_active_record_base.connection
76
145
  end
77
146
 
78
- # see if we were provided with a schema directly or get it from file
79
- schema_sql = config[:schema_sql]
80
- unless schema_sql
81
- # should we migrate up or down?
82
- direction = config[:direction] || :up
83
- create_or_drop = direction.to_s == "up" ? "create" : "drop"
84
-
85
- # get the adapter name for ontopia from the config
86
- adapter_schema_name = config[:adapter_schema_name] || config[:adapter].sub(/^jdbc/, '')
87
-
88
- # check if it is one of the available adapters
89
- available_schemas = %w[generic h2 mysql oracle8 oracle9i oracle10g postresql sqlserver]
90
- adapter_schema_name = "generic" unless available_schemas.include?(adapter_schema_name)
91
-
92
- # find the corresponding schema file
93
- schema_file = config[:schema_file] || File.join(File.dirname(__FILE__), "/../../res/rdbms/setup/#{adapter_schema_name}.#{create_or_drop}.sql")
94
- raise "Could not find schema definition file #{File.expand_path(schema_file)}." unless File.exist?(schema_file)
95
-
96
- # read the schema
97
- schema_sql = File.read(schema_file)
98
- end
147
+ yield connection if block_given?
99
148
 
100
- # execute the schema
101
- connection.execute(schema_sql)
149
+ # close connection if we created a new one
150
+ anonymous_active_record_base.remove_connection if anonymous_active_record_base
102
151
  end
103
152
 
104
- # Drops the Ontopia schema from the database. This corresponds to migrating the database down.
105
- def self.migrate_database_down(params={})
106
- migrate_database(params.merge(:direction => :down))
153
+ def check
154
+ check_ok = false
155
+ self.class.connect_with(config) do |connection|
156
+ check_ok = true if connection.table_exists?('tm_topic_map') || connection.table_exists?('TM_TOPIC_MAP') # MySQL needs ALLCAPS, but e.g. H2 needs small letters. Dunno why.
157
+ end
158
+ check_ok
107
159
  end
108
160
  end
109
161
  end
110
162
 
111
163
 
112
- Java::OrgTmapiCore::TopicMap.register_java_implementation net.ontopia.topicmaps.impl.tmapi2.TopicMapImpl
164
+ Java::OrgTmapiCore::TopicMap.register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::TopicMapImpl
113
165
 
114
- module Java::OrgTmapiCore::Topic
115
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.TopicImpl
166
+ module Java::OrgTmapiCore::Topic
167
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::TopicImpl
116
168
  end
117
169
 
118
170
  module Java::OrgTmapiCore::Association
119
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.AssociationImpl
171
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::AssociationImpl
120
172
  end
121
173
 
122
- module Java::OrgTmapiCore::Name
123
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.NameImpl
174
+ module Java::OrgTmapiCore::Name
175
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::NameImpl
124
176
  end
125
177
 
126
178
  module Java::OrgTmapiCore::Occurrence
127
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.OccurrenceImpl
179
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::OccurrenceImpl
128
180
  end
129
181
 
130
182
  module Java::OrgTmapiCore::Variant
131
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.VariantImpl
183
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::VariantImpl
132
184
  end
133
185
 
134
186
  module Java::OrgTmapiCore::Role
135
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.RoleImpl
187
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::RoleImpl
136
188
  end
137
189
 
138
190
  module Java::OrgTmapiCore::Scoped
139
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.ScopedImpl
140
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.AssociationImpl
141
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.NameImpl
142
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.OccurrenceImpl
143
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.VariantImpl
191
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::ScopedImpl
192
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::AssociationImpl
193
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::NameImpl
194
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::OccurrenceImpl
195
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::VariantImpl
144
196
  end
145
197
 
146
198
  module Java::OrgTmapiCore::Typed
147
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.AssociationImpl
148
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.NameImpl
149
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.OccurrenceImpl
150
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.RoleImpl
199
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::AssociationImpl
200
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::NameImpl
201
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::OccurrenceImpl
202
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::RoleImpl
151
203
  end
152
204
 
153
205
  module Java::OrgTmapiCore::Construct
154
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.ConstructImpl
155
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.TopicMapImpl
156
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.TopicImpl
157
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.AssociationImpl
158
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.NameImpl
159
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.OccurrenceImpl
160
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.VariantImpl
161
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.RoleImpl
206
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::ConstructImpl
207
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::TopicMapImpl
208
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::TopicImpl
209
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::AssociationImpl
210
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::NameImpl
211
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::OccurrenceImpl
212
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::VariantImpl
213
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::RoleImpl
162
214
  end
163
215
 
164
216
  module Java::OrgTmapiCore::Reifiable
165
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.ReifiableImpl
217
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::ReifiableImpl
166
218
  end
167
219
 
168
- module Java::OrgTmapiCore::Locator
169
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.LocatorImpl
220
+ module Java::OrgTmapiCore::Locator
221
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::LocatorImpl
170
222
  end
171
223
 
172
224
  module Java::OrgTmapiCore::DatatypeAware
173
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.DatatypeAwareImpl
174
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.VariantImpl
175
- register_java_implementation net.ontopia.topicmaps.impl.tmapi2.OccurrenceImpl
225
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::DatatypeAwareImpl
226
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::VariantImpl
227
+ register_java_implementation Java::NetOntopiaTopicmapsImplTmapi2::OccurrenceImpl
176
228
  end
@@ -11,7 +11,7 @@ module RTM::IO
11
11
  module Ontopia
12
12
  module TopicMap
13
13
  def to_cxtm(file=nil)
14
- raise("Only supported for Ontopia.") unless self.kind_of?(net.ontopia.topicmaps.impl.tmapi2.TopicMapImpl)
14
+ raise("Only supported for Ontopia.") unless self.kind_of?(Java::NetOntopiaTopicmapsImplTmapi2::TopicMapImpl)
15
15
  if file
16
16
  if file.is_a?(java.io.OutputStream)
17
17
  out_stream = file
@@ -23,7 +23,7 @@ module RTM::IO
23
23
  out_stream = java.io.ByteArrayOutputStream.new
24
24
  end
25
25
 
26
- writer = net.ontopia.topicmaps.xml.CanonicalXTMWriter.new(out_stream)
26
+ writer = Java::NetOntopiaTopicmapsXml::CanonicalXTMWriter.new(out_stream)
27
27
  writer.write(self.wrapped)
28
28
  out_stream.flush
29
29
 
@@ -17,8 +17,8 @@ module RTM::Ontopia::Rdbms
17
17
  ontopia_properties["#{ontopia_rdbms_prefix}ConnectionString"] = config[:url]
18
18
  ontopia_properties["#{ontopia_rdbms_prefix}UserName"] = config[:username] || "sa"
19
19
  ontopia_properties["#{ontopia_rdbms_prefix}Password"] = config[:password] || ""
20
- ontopia_properties["#{ontopia_rdbms_prefix}ConnectionPool"] = true
21
- ontopia_properties["#{ontopia_rdbms_prefix}BatchUpdates"] = true
20
+ ontopia_properties["#{ontopia_rdbms_prefix}ConnectionPool"] = config[:connection_pool] == nil ? false : config[:connection_pool]
21
+ ontopia_properties["#{ontopia_rdbms_prefix}BatchUpdates"] = config[:batch_updates] == nil ? true : config[:batch_updates]
22
22
  ontopia_properties["#{ontopia_rdbms_prefix}StorePool.MinimumSize"] = 2
23
23
 
24
24
  ontopia_properties
@@ -55,7 +55,8 @@ module RTM::Ontopia::Rdbms
55
55
 
56
56
  # enhances a config hash using the defaults for hsqldb
57
57
  def hsqldb_config(config)
58
- config[:url] ||= "jdbc:hsqldb:#{config[:database]}" # Ontopia adds ";MVCC=true"
58
+ # config[:url] ||= "jdbc:hsqldb:#{config[:database]}" # ActiveRecord JDBC default
59
+ config[:url] ||= "jdbc:hsqldb:#{config[:database]};MVCC=true" # Ontopia default
59
60
  config[:driver] ||= "org.hsqldb.jdbcDriver"
60
61
  config
61
62
  end
@@ -0,0 +1,39 @@
1
+
2
+ class Java::NetOntopiaTopicmapsImplTmapi2::TopicMapImpl
3
+ # Commits the transaction. The changes made are written to the persistent
4
+ # store.
5
+ #
6
+ # The transaction will resume after the commit meaning that the objects
7
+ # retrieved through is still usable after the commit.
8
+ #
9
+ # This is just a convencience method for getWrapped().getStore().commit().
10
+ #
11
+ # @return true
12
+ def commit
13
+ wrapped.store.commit
14
+ true
15
+ end
16
+
17
+ # Aborts the transaction; all changes made inside the transaction are rolled
18
+ # back.
19
+ #
20
+ # The transaction will resume after the abort meaning that the objects
21
+ # retrieved through is still usable after the abort, but their state has
22
+ # been reverted to the state in the persistent store.
23
+ #
24
+ # This is just a convencience method for getWrapped().getStore().abort().
25
+ #
26
+ # @return true
27
+ def abort
28
+ wrapped.store.commit
29
+ true
30
+ end
31
+
32
+ # @private
33
+ # This method is undocumented intentionally because it is here only for
34
+ # those of us who look for "rollback" instead of "abort".
35
+ def rollback
36
+ warn("TopicMap#rollback is only a convenience method for Ontopia's default 'abort'. Please use that instead.")
37
+ abort
38
+ end
39
+ end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtm-ontopia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 3
8
+ - 0
9
+ version: 0.3.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Benjamin Bock
@@ -12,21 +17,25 @@ autorequire:
12
17
  bindir: bin
13
18
  cert_chain: []
14
19
 
15
- date: 2010-02-21 00:00:00 +01:00
20
+ date: 2010-04-13 00:00:00 +02:00
16
21
  default_executable:
17
22
  dependencies:
18
23
  - !ruby/object:Gem::Dependency
19
24
  name: rtm-javatmapi
20
- type: :runtime
21
- version_requirement:
22
- version_requirements: !ruby/object:Gem::Requirement
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
23
27
  requirements:
24
28
  - - "="
25
29
  - !ruby/object:Gem::Version
26
- version: 0.2.1
27
- version:
30
+ segments:
31
+ - 0
32
+ - 3
33
+ - 0
34
+ version: 0.3.0
35
+ type: :runtime
36
+ version_requirements: *id001
28
37
  description: The Ontopia backend for Ruby Topic Maps. See http://code.google.com/p/ontopia/ for more information about Ontopia.
29
- email: rtm+rtm-ontopia-gem-20100221@topicmapslab.de
38
+ email: rtm+rtm-ontopia-gem-20100413@topicmapslab.de
30
39
  executables: []
31
40
 
32
41
  extensions: []
@@ -36,7 +45,9 @@ extra_rdoc_files: []
36
45
  files:
37
46
  - lib/rtm/ontopia/io/to_cxtm.rb
38
47
  - lib/rtm/ontopia/rdbms/properties.rb
48
+ - lib/rtm/ontopia/rdbms/store.rb
39
49
  - lib/rtm/ontopia.rb
50
+ - lib/rtm-ontopia.rb
40
51
  - lib/rtm/ontopia/javalibs/antlr-2.7.7.jar
41
52
  - lib/rtm/ontopia/javalibs/avalon-framework-4.1.3.jar
42
53
  - lib/rtm/ontopia/javalibs/backport-util-concurrent-3.1.jar
@@ -71,7 +82,7 @@ files:
71
82
  - lib/rtm/ontopia/javalibs/lucene-snowball-2.0.0.jar
72
83
  - lib/rtm/ontopia/javalibs/nekohtml-0.9.1.jar
73
84
  - lib/rtm/ontopia/javalibs/ontoboot.jar
74
- - lib/rtm/ontopia/javalibs/ontopia-engine-5.1.0-b1.jar
85
+ - lib/rtm/ontopia/javalibs/ontopia-engine-5.1.0-SNAPSHOT.jar
75
86
  - lib/rtm/ontopia/javalibs/opencsv-1.8.jar
76
87
  - lib/rtm/ontopia/javalibs/oro-2.0.8.jar
77
88
  - lib/rtm/ontopia/javalibs/saxon-6.5.3.jar
@@ -118,7 +129,7 @@ has_rdoc: true
118
129
  homepage: http://rtm.topicmapslab.de/
119
130
  licenses: []
120
131
 
121
- post_install_message: You have successfully installed rtm-ontopia.
132
+ post_install_message:
122
133
  rdoc_options: []
123
134
 
124
135
  require_paths:
@@ -127,18 +138,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
138
  requirements:
128
139
  - - ">="
129
140
  - !ruby/object:Gem::Version
141
+ segments:
142
+ - 0
130
143
  version: "0"
131
- version:
132
144
  required_rubygems_version: !ruby/object:Gem::Requirement
133
145
  requirements:
134
146
  - - ">="
135
147
  - !ruby/object:Gem::Version
148
+ segments:
149
+ - 0
136
150
  version: "0"
137
- version:
138
151
  requirements: []
139
152
 
140
153
  rubyforge_project: rtm
141
- rubygems_version: 1.3.5
154
+ rubygems_version: 1.3.6
142
155
  signing_key:
143
156
  specification_version: 3
144
157
  summary: "Ruby Topic Maps: Ontopia backend"