rtm-ontopia 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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"