talia_core 0.5.4 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. data/VERSION.yml +2 -2
  2. data/config/talia_core.yml.example +37 -35
  3. data/generators/talia_admin/templates/app/models/fake_source.rb +93 -0
  4. data/generators/talia_admin/templates/app/models/talia_collection.rb +13 -37
  5. data/generators/talia_base/talia_base_generator.rb +0 -1
  6. data/generators/talia_base/templates/app/controllers/custom_templates_controller.rb +2 -1
  7. data/generators/talia_base/templates/app/controllers/sources_controller.rb +1 -1
  8. data/generators/talia_base/templates/script/configure_talia +56 -73
  9. data/generators/talia_swicky/talia_swicky_generator.rb +18 -0
  10. data/generators/talia_swicky/templates/app/controllers/swicky_notebooks_controller.rb +111 -0
  11. data/generators/talia_swicky/templates/app/helpers/swicky_notebooks_helper.rb +29 -0
  12. data/generators/talia_swicky/templates/app/views/swicky_notebooks/index.builder +6 -0
  13. data/generators/talia_swicky/templates/app/views/swicky_notebooks/index.html.erb +10 -0
  14. data/generators/talia_swicky/templates/app/views/swicky_notebooks/show.html.erb +11 -0
  15. data/generators/talia_swicky/templates/test/fixtures/notebook.rdf +862 -0
  16. data/generators/talia_swicky/templates/test/functional/swicky_notebooks_controller_test.rb +44 -0
  17. data/lib/core_ext/boolean.rb +23 -0
  18. data/lib/core_ext/jdbc_rake_monkeypatch.rb +22 -0
  19. data/lib/core_ext/nil_class.rb +11 -0
  20. data/lib/core_ext/object.rb +34 -0
  21. data/lib/core_ext/string.rb +15 -0
  22. data/lib/custom_template.rb +3 -1
  23. data/lib/loader_helper.rb +16 -3
  24. data/lib/mysql.rb +7 -7
  25. data/lib/progressbar.rb +2 -2
  26. data/lib/swicky/exhibit_json/item.rb +129 -0
  27. data/lib/swicky/exhibit_json/item_collection.rb +129 -0
  28. data/lib/swicky/fragment.rb +0 -0
  29. data/lib/swicky/note.rb +7 -0
  30. data/lib/swicky/notebook.rb +78 -12
  31. data/lib/talia_core/active_source.rb +45 -13
  32. data/lib/talia_core/active_source_parts/class_methods.rb +154 -26
  33. data/lib/talia_core/active_source_parts/finders.rb +49 -26
  34. data/lib/talia_core/active_source_parts/predicate_handler.rb +71 -23
  35. data/lib/talia_core/active_source_parts/rdf/ntriples_reader.rb +13 -0
  36. data/lib/talia_core/active_source_parts/rdf/rdf_reader.rb +99 -0
  37. data/lib/talia_core/active_source_parts/rdf/rdfxml_reader.rb +12 -0
  38. data/lib/talia_core/active_source_parts/{rdf.rb → rdf_handler.rb} +52 -19
  39. data/lib/talia_core/active_source_parts/xml/generic_reader.rb +151 -260
  40. data/lib/talia_core/active_source_parts/xml/generic_reader_add_statements.rb +97 -0
  41. data/lib/talia_core/active_source_parts/xml/generic_reader_helpers.rb +88 -0
  42. data/lib/talia_core/active_source_parts/xml/generic_reader_import_statements.rb +239 -0
  43. data/lib/talia_core/active_source_parts/xml/rdf_builder.rb +14 -7
  44. data/lib/talia_core/active_source_parts/xml/source_builder.rb +7 -3
  45. data/lib/talia_core/active_source_parts/xml/source_reader.rb +17 -2
  46. data/lib/talia_core/collection.rb +192 -1
  47. data/lib/talia_core/data_types/data_loader.rb +88 -18
  48. data/lib/talia_core/data_types/data_record.rb +24 -2
  49. data/lib/talia_core/data_types/delayed_copier.rb +13 -3
  50. data/lib/talia_core/data_types/file_record.rb +24 -13
  51. data/lib/talia_core/data_types/file_store.rb +111 -94
  52. data/lib/talia_core/data_types/iip_data.rb +104 -23
  53. data/lib/talia_core/data_types/iip_loader.rb +102 -56
  54. data/lib/talia_core/data_types/image_data.rb +3 -1
  55. data/lib/talia_core/data_types/media_link.rb +4 -1
  56. data/lib/talia_core/data_types/mime_mapping.rb +65 -38
  57. data/lib/talia_core/data_types/path_helpers.rb +23 -17
  58. data/lib/talia_core/data_types/pdf_data.rb +9 -6
  59. data/lib/talia_core/data_types/simple_text.rb +5 -4
  60. data/lib/talia_core/data_types/xml_data.rb +53 -25
  61. data/lib/talia_core/dummy_handler.rb +3 -2
  62. data/lib/talia_core/errors.rb +13 -27
  63. data/lib/talia_core/initializer.rb +44 -4
  64. data/lib/talia_core/oai/active_source_model.rb +13 -6
  65. data/lib/talia_core/oai/active_source_oai_adapter.rb +13 -12
  66. data/lib/talia_core/rdf_import.rb +1 -1
  67. data/lib/talia_core/rdf_resource.rb +2 -1
  68. data/lib/talia_core/semantic_collection_wrapper.rb +143 -151
  69. data/lib/talia_core/semantic_property.rb +4 -0
  70. data/lib/talia_core/semantic_relation.rb +84 -33
  71. data/lib/talia_core/source.rb +45 -25
  72. data/lib/talia_core/source_fragment.rb +7 -0
  73. data/lib/talia_core/source_transfer_object.rb +3 -1
  74. data/lib/talia_core/source_types/agent.rb +16 -0
  75. data/lib/talia_core/source_types/dc_resource.rb +3 -3
  76. data/lib/talia_core/source_types/marcont_resource.rb +15 -0
  77. data/lib/talia_core/source_types/skos_concept.rb +17 -0
  78. data/lib/talia_dependencies.rb +1 -1
  79. data/lib/talia_util.rb +1 -1
  80. data/lib/talia_util/bar_progressor.rb +1 -1
  81. data/lib/talia_util/image_conversions.rb +8 -2
  82. data/lib/talia_util/import_job_helper.rb +40 -3
  83. data/lib/talia_util/io_helper.rb +15 -4
  84. data/lib/talia_util/progressable.rb +50 -1
  85. data/lib/talia_util/rake_tasks.rb +3 -21
  86. data/lib/talia_util/test_helpers.rb +6 -1
  87. data/lib/talia_util/util.rb +108 -27
  88. data/lib/talia_util/xml/base_builder.rb +28 -1
  89. data/lib/talia_util/xml/rdf_builder.rb +81 -5
  90. data/lib/tasks/talia_core_tasks.rake +2 -0
  91. data/test/core_ext/boolean_test.rb +26 -0
  92. data/test/core_ext/nil_class_test.rb +14 -0
  93. data/test/core_ext/object_test.rb +26 -0
  94. data/test/core_ext/string_test.rb +11 -0
  95. data/test/swicky/json_encoder_test.rb +51 -42
  96. data/test/swicky/notebook_test.rb +13 -6
  97. data/test/talia_core/active_source_finder_interface_test.rb +30 -0
  98. data/test/talia_core/active_source_test.rb +445 -34
  99. data/test/talia_core/collection_test.rb +332 -0
  100. data/test/talia_core/data_types/file_record_test.rb +2 -23
  101. data/test/talia_core/ntriples_reader_test.rb +49 -0
  102. data/test/talia_core/rdfxml_reader_test.rb +51 -0
  103. data/test/talia_core/source_test.rb +12 -0
  104. data/test/talia_util/import_job_helper_test.rb +19 -12
  105. metadata +190 -90
  106. data/config/database.yml +0 -19
  107. data/config/rdfstore.yml +0 -13
  108. data/config/talia_core.yml +0 -24
  109. data/generators/talia_base/templates/migrations/bj_migration.rb +0 -10
  110. data/lib/JXslt/jxslt.rb +0 -60
  111. data/lib/swicky/json_encoder.rb +0 -179
  112. data/lib/talia_core/agent.rb +0 -14
  113. data/lib/talia_core/background_jobs/job.rb +0 -82
  114. data/lib/talia_core/background_jobs/progress_job.rb +0 -68
  115. data/lib/talia_core/data_types/temp_file_handling.rb +0 -85
  116. data/lib/talia_core/ordered_source.rb +0 -228
  117. data/lib/talia_core/semantic_collection_item.rb +0 -94
  118. data/lib/talia_core/source_types/collection.rb +0 -15
  119. data/lib/talia_util/progressbar.rb +0 -236
  120. data/tasks/talia_core_tasks.rake +0 -2
  121. data/test/talia_core/ordered_source_test.rb +0 -394
  122. data/test/talia_core/semantic_collection_item_test.rb +0 -125
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
- :minor: 5
4
- :patch: 4
3
+ :minor: 7
4
+ :patch: 0
5
5
  :build:
@@ -1,49 +1,51 @@
1
+ sindice: false
1
2
  # TaliaCore configuration file
2
-
3
3
  # The domain URI that is the "local" domain of this installation
4
4
  local_uri: "http://test.dummy/"
5
5
  # The domain URI that is used as a default if no namespace is given
6
6
  default_namespace_uri: "http://default.dummy/"
7
-
8
7
  # The RDF store configuration can be read from a file
9
8
  rdf_connection_file: rdfstore
10
- # RDF configuration can also be given as a hash here
11
- # rdf_connection:
12
-
13
9
  # Set the logging level for ActiveRDF
14
10
  ardf_log_level: 0
15
-
16
11
  # If standalone_db is set, ActiveRecord will be configured for use
17
12
  # without the Rails environment
18
13
  standalone_db: true
19
14
  db_file: database
20
- # Database configuration can also be given as a hash here
21
- # db_connection:
22
- # If unset, the databse log will end up in the default log directory
23
- # db_log: database.log
24
-
25
- # The location for data files (only set if you need to change
26
- # the default location)
27
- # data_directory_location: "/var/www/talia_data/"
28
-
29
- # Configure the namespaces for use with RDF
30
15
  namespaces:
31
- # Default namespaces rdf, rdfs, xsd, owl are defined in the semantic_naming
32
- # library.
33
- # HyperNietzsche namespace
34
- hyper: "http://www.hypernietzsche.org/ontology/"
35
- # FOAF
36
- foaf: http://xmlns.com/foaf/0.1/
37
- # SKOS
38
- skos: http://www.w3.org/2004/02/skos/core#
39
- # DublinCore namespace
40
- dct: http://purl.org/dc/terms/
41
- dcmit: http://purl.org/dc/dcmitype/
42
- dcns: "http://purl.org/dc/elements/1.1/"
43
- # Used in demo apps
44
- luccadom: http://trac.talia.discovery-project.eu/wiki/LuccaOntology#
45
- talias: http://trac.talia.discovery-project.eu/wiki/StructuralOntology#
46
- taliadom: http://trac.talia.discovery-project.eu/wiki/SampleDomainOntology#
47
- sesame: http://www.openrdf.org/schema/sesame#
48
- swicky: http://discovery-project.eu/ontologies/philoSpace/
49
- discovery: http://discovery-project.eu/ontologies/scholar/0.1/
16
+ hyper: "http://www.hypernietzsche.org/ontology/"
17
+ foaf: "http://xmlns.com/foaf/0.1/"
18
+ skos: "http://www.w3.org/2004/02/skos/core#"
19
+ dct: "http://purl.org/dc/terms/"
20
+ dcmit: "http://purl.org/dc/dcmitype/"
21
+ dcns: "http://purl.org/dc/elements/1.1/"
22
+ luccadom: "http://trac.talia.discovery-project.eu/wiki/LuccaOntology#"
23
+ talias: "http://trac.talia.discovery-project.eu/wiki/StructuralOntology#"
24
+ taliadom: "http://trac.talia.discovery-project.eu/wiki/SampleDomainOntology#"
25
+ sesame: "http://www.openrdf.org/schema/sesame#"
26
+ swicky: "http://discovery-project.eu/ontologies/philoSpace/"
27
+ discovery: "http://discovery-project.eu/ontologies/scholar/0.1/"
28
+ marcont: "http://www.marcont.org/ontology/2.1/"
29
+ wordnet: "http://xmlns.com/wordnet/1.6/"
30
+ geo: "http://www.w3.org/2003/01/geo/wgs84_pos#"
31
+ demo: "http://ontologies.muruca.org/demo3#"
32
+ gnames: "http://www.geonames.org/ontology#"
33
+ frbr: "http://purl.org/vocab/frbr/core#"
34
+ site_name: "Talia Tutorial Application"
35
+ iip_root_directory_location:
36
+ data_directory_location:
37
+ iip_server_uri:
38
+ vips_command:
39
+ convert_command:
40
+ googlemap_key: "ABQIAAAAOY6Zv9NunttIT5fALwpiRhSPtRO-56uzZJvIGXQxlGNVk-r4kxRE8NIB3lUS5Sog8714vby5L9bupQ"
41
+ oai:
42
+ prefix: "oai:talia"
43
+ repository_name: "Talia OAI Interface"
44
+ shown_tabs:
45
+ - users
46
+ - talia_sources
47
+
48
+ thumb_options:
49
+ height: "400"
50
+ width: "400"
51
+ admin_email: "admin@example.com"
@@ -0,0 +1,93 @@
1
+ # Methods for "fake" source classes that let Hobo play (somewhat)
2
+ # together with the classes from TaliaCore::*
3
+ module FakeSource
4
+
5
+ # Class methods for fake sources
6
+ module ClassMethods
7
+
8
+ def real_class
9
+ @real_class ||= TaliaCore::Source
10
+ end
11
+
12
+ def has_real_class(klass)
13
+ @real_class = klass
14
+ end
15
+
16
+ def find(*args)
17
+ result = real_class.find(*args)
18
+ if(result.is_a?(Array))
19
+ result.collect { |s| from_real_source(s) }
20
+ else
21
+ result.nil? ? result : from_real_source(result)
22
+ end
23
+ end
24
+
25
+ def count(*args)
26
+ real_class.count(*args)
27
+ end
28
+
29
+ def new(*args)
30
+ new_thing = super(*args)
31
+ new_thing[:type] = real_class.name
32
+ new_thing.real_source = real_class.new("http://#{rand Time.now.to_i}.x")
33
+ new_thing.real_source.add_additional_rdf_types
34
+ new_thing
35
+ end
36
+
37
+ def from_real_source(real_source)
38
+ result = self.send(:instantiate, real_source.attributes)
39
+ result.real_source = real_source
40
+ result
41
+ end
42
+
43
+ end
44
+
45
+ attr_writer :real_source
46
+
47
+ def real_class
48
+ self.class.real_class
49
+ end
50
+
51
+ def name
52
+ real_source.respond_to?(:label) ? real_source.label : to_uri.to_name_s
53
+ end
54
+
55
+ def short_type
56
+ self.type ? self.type.gsub('TaliaCore::', '') : 'ActiveSource'
57
+ end
58
+
59
+ def to_uri
60
+ self.uri.to_uri
61
+ end
62
+
63
+ def real_source
64
+ @real_source ||= if(new_record?)
65
+ real_class.new
66
+ else
67
+ TaliaCore::ActiveSource.find(self.id, :prefetch_relations => true)
68
+ end
69
+ end
70
+
71
+ def rdf_mode
72
+ nil
73
+ end
74
+
75
+ # Save the real source stuff, if it exists
76
+ def save!
77
+ save_real_source(true)
78
+ end
79
+
80
+ def save
81
+ save_real_source(false)
82
+ end
83
+
84
+ def save_real_source(throws)
85
+ real_source[:uri] = self[:uri]
86
+ was_new = self.new_record?
87
+ result = (throws ? real_source.save! : real_source.save)
88
+ self.id = real_source.id
89
+ self.instance_variable_set(:@new_record, false) if(was_new)
90
+ result
91
+ end
92
+
93
+ end
@@ -1,6 +1,11 @@
1
1
  class TaliaCollection < ActiveRecord::Base
2
2
  hobo_model # Don't put anything above this
3
3
 
4
+ include FakeSource
5
+ extend FakeSource::ClassMethods
6
+
7
+ has_real_class TaliaCore::Collection
8
+
4
9
  self.inheritance_column = 'foo'
5
10
 
6
11
  fields do
@@ -8,49 +13,20 @@ class TaliaCollection < ActiveRecord::Base
8
13
  end
9
14
 
10
15
  set_table_name "active_sources"
11
-
12
-
13
-
16
+
14
17
  def create_permitted?
15
18
  acting_user.administrator?
16
19
  end
17
-
20
+
18
21
  def update_permitted?
19
22
  acting_user.administrator?
20
23
  end
21
-
24
+
25
+ def destroy_permitted?
26
+ acting_user.administrator?
27
+ end
28
+
22
29
  def view_permitted?(field)
23
30
  true
24
31
  end
25
-
26
- def self.new(*args)
27
- new_thing = super(*args)
28
- new_thing[:type] = "TaliaCore::Collection"
29
- new_thing
30
- end
31
-
32
- def self.find(*args)
33
- puts args.inspect
34
- result = TaliaCore::Collection.find(*args)
35
- if(result.is_a?(Array))
36
- result.collect { |s| from_real_collection(s) }
37
- else
38
- from_real_collection(result)
39
- end
40
- end
41
-
42
- def self.count(*args)
43
- TaliaCore::Collection.count(*args)
44
- end
45
-
46
- def name
47
- N::URI.new(self.uri).to_name_s
48
- end
49
-
50
- private
51
-
52
- def self.from_real_collection(real_collection)
53
- TaliaCollection.send(:instantiate, real_collection.attributes)
54
- end
55
-
56
- end
32
+ end
@@ -55,7 +55,6 @@ class TaliaBaseGenerator < Rails::Generator::Base
55
55
  m.make_migration "create_custom_templates.rb"
56
56
  m.make_migration "upgrade_relations.rb"
57
57
  m.make_migration "create_progress_jobs.rb"
58
- m.make_migration "bj_migration.rb"
59
58
 
60
59
  m.readme 'README'
61
60
  end
@@ -1,7 +1,8 @@
1
1
  class CustomTemplatesController < ApplicationController
2
2
 
3
3
  layout nil
4
- session :off
4
+ # Deprecated, not needed anymore.
5
+ # session :off
5
6
 
6
7
  caches_page :xslt
7
8
 
@@ -132,7 +132,7 @@ class SourcesController < ApplicationController
132
132
  end
133
133
  end
134
134
  template = template_map[source.class.name.demodulize]
135
- template ? template : "semantic_templates/default/default"
135
+ template || File.join(template_path, 'default', 'default')
136
136
  end
137
137
 
138
138
  def template_map
@@ -1,4 +1,4 @@
1
- #!/Developer/Talia/jruby-1.3.1_2.3/bin/jruby
1
+ #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
4
  gem 'activerecord'
@@ -19,35 +19,11 @@ talia_dir = TALIA_CODE_ROOT
19
19
  config_dir = File.join(rails_dir, 'config')
20
20
  config_template_dir = File.join(talia_dir, 'config')
21
21
 
22
- def check_result(value, regexp)
23
- if(regexp && !regexp.match(value))
24
- puts "Value does not have the right format (must match #{regexp})"
25
- value = ''
26
- end
27
- value
28
- end
29
-
30
- def raw_read(default, regexp)
22
+ def readl(required = false)
31
23
  result = gets.chomp.strip
32
- result = default if(default && result == '')
33
- check_result(result, regexp)
34
- end
35
-
36
- def readl(required_or_default = false, match_check = nil)
37
- # Checks if we have a default value or a "required" bool
38
- required = required_or_default
39
- default = nil
40
- if(required_or_default.is_a?(String))
41
- reuqired = false
42
- default = required_or_default
43
- end
44
-
45
- match_check = Regexp.new(match_check) if(match_check.is_a?(String))
46
-
47
- result = raw_read(default, match_check)
48
24
  while(result == '' && required)
49
25
  print 'Must enter a value, retry: '
50
- result = raw_read(default, match_check)
26
+ result = gets.chomp.strip
51
27
  end
52
28
  result
53
29
  end
@@ -81,7 +57,7 @@ mysql_setup.host = 'localhost'
81
57
  mysql_setup.app_name = 'talia'
82
58
  mysql_setup.sock = sock_file
83
59
 
84
- print "Enter the mySQL root pasword: "
60
+ print "Enter the mySQL root password: "
85
61
  root_pw = readl
86
62
  mysql_setup.root_credentials('root', root_pw)
87
63
  if(root_pw == '')
@@ -127,15 +103,15 @@ end
127
103
 
128
104
  print "Loading the configuration templates..."
129
105
  db_config = TaliaUtil::Configuration::DatabaseConfig.new(File.join(config_template_dir, 'database.yml.example'))
130
- rdf_config = TaliaUtil::Configuration::ConfigFile.new(File.join(config_template_dir, 'rdfstore.yml.example'))
106
+ rdf_config = TaliaUtil::Configuration::ConfigFile.new(File.join(config_template_dir, 'rdfstore.yml.example'))
131
107
  talia_config = TaliaUtil::Configuration::ConfigFile.new(File.join(config_template_dir, 'talia_core.yml.example'))
132
108
  talia_test_config = TaliaUtil::Configuration::ConfigFile.new(File.join(talia_dir, 'test', 'config', 'talia_core.yml_example')) unless(from_gem)
133
109
  puts " done."
134
110
 
135
111
  puts
136
112
  print "Enter the sql driver you want to use (e.g. jdbcmysql, mysql, ...) [jdbcmysql]: "
137
- adapter = readl('jdbcmysql')
138
-
113
+ adapter = readl
114
+ adapter = (adapter == '') ? 'jdbcmysql' : adapter
139
115
 
140
116
  db_config.set_adapter(adapter)
141
117
  db_config.set_credentials(rails_user, rails_pw)
@@ -148,29 +124,17 @@ print "Enter the site name (it will appear in the window title): "
148
124
  talia_config.site_name = readl
149
125
 
150
126
  puts
151
- print "Enter the URI for your site: "
152
- site_url = readl(true, /\Ahttp:\/\/.+\/\Z/)
127
+ print "Enter the URI for your site. The URI requires a final \"/\": "
128
+ site_url = readl(true)
153
129
 
154
130
  if(read_yn('Do you want to use the IIP image server?'))
155
- init_file = File.join(rails_dir, 'config', 'initializers', 'talia.rb')
156
- if(File.exist?(init_file))
157
- puts "Adding the creation handler to your talia_initializer. Note that you will need 'vips' installed."
158
- File.open(init_file, 'a') do |io|
159
- io.puts ''
160
- io.puts '# IIP creation handlers, added automatically'
161
- %w(jpeg tiff png gif bmp).each { |t| io.puts "TaliaCore::DataTypes::MimeMapping.add_mapping(:#{t}, TaliaCore::DataTypes::ImageData, :create_iip)" }
162
- io.puts ''
163
- end
164
- else
165
- puts "WARNING: Initializer file for Talia not found. You will need to add the image handler for the MIME types manually."
166
- end
167
131
  puts
168
132
  print "Enter the URL of your IIP server, or the port number (for default URL on localhost): "
169
- iip_url = readl('', /\A\d{2,}\Z|\Ahttp:\/\/.*/)
170
-
133
+ iip_url = readl
171
134
  # If only numerals, we'll create the URL
172
- if(iip_url =~ /^\d*$/)
173
- iip_url = "http://localhost:#{iip_url}/fcgi-bin/iipsrv.fcgi"
135
+ if iip_url =~ /^\d*$/
136
+ iip_url = ":#{iip_url}" if iip_url != ''
137
+ iip_url = "http://localhost#{iip_url}/fcgi-bin/iipsrv.fcgi"
174
138
  end
175
139
  puts "Setting IIP URL to: #{iip_url}"
176
140
 
@@ -179,31 +143,27 @@ if(read_yn('Do you want to use the IIP image server?'))
179
143
  puts
180
144
  print "Enter the path to store the IIP image files (return for default): "
181
145
  iip_directory = readl
182
-
146
+
183
147
  vips_default_command = `which vips`.gsub("\n", '')
184
148
  print "Enter the path to the vips command (default: #{vips_default_command.inspect}): "
185
- vips_command = readl((vips_default_command == '') ? true : vips_default_command)
186
- talia_config.vips_command = vips_command
187
-
149
+ vips_command = readl
150
+ talia_config.vips_command = vips_command == '' ? vips_default_command : vips_command
151
+
152
+
188
153
  convert_default_command = `which convert`.gsub("\n", '')
189
154
  print "Enter the path to the convert command (default: #{convert_default_command.inspect}): "
190
- convert_command = readl((convert_default_command == '') ? true : convert_default_command)
191
- talia_config.convert_command = convert_command
192
-
155
+ convert_command = readl
156
+ talia_config.convert_command = convert_command == '' ? convert_default_command : convert_command
193
157
  end
194
158
 
195
159
  puts
196
160
  puts "Configuring the Sesame RDF store (change the config by hand for stores other than Sesame)"
197
161
  puts
198
162
  backends = %w(native memory rdbms http)
199
- print "Enter the sesame backend to use (#{backends.join('|')}) (default: native): "
200
- backend = readl
201
- backend = 'native' if(backend.blank?)
202
- while(!(backends.include?(backend)))
163
+ print "Enter the sesame backend to use (#{backends.join('|')}): "
164
+ while(!(backends.include?(backend = readl)))
203
165
  puts "#{backend} is not a valid backend"
204
166
  print "Enter the backend (#{backends.join('|')}: )"
205
- backend = readl
206
- backend = 'native' if(backend.blank?)
207
167
  end
208
168
 
209
169
  %w(production test development).each do |env|
@@ -231,7 +191,7 @@ when 'rdbms':
231
191
  print "Enter the password for the connection: "
232
192
  pass = readl
233
193
  end
234
- %w(production test development).each do |env|
194
+ %(production test development).each do |env|
235
195
  rdf_config[env]['driver'] = driver
236
196
  rdf_config[env]['user'] = user
237
197
  rdf_config[env]['pass'] = pass
@@ -247,10 +207,11 @@ when 'http':
247
207
  pass = readl
248
208
  end
249
209
  %w(production test development).each do |env|
250
- rdf_config[env]['user'] = user unless(user.blank?)
251
- rdf_config[env]['pass'] = pass unless(pass.blank?)
210
+ rdf_config[env]['driver'] = driver
211
+ rdf_config[env]['user'] = user
212
+ rdf_config[env]['pass'] = pass
252
213
  print "Enter the URL for the '#{env}' environment: "
253
- rdf_config[env]['url'] = readl(true, /\Ahttp:\/\/.+\//)
214
+ rdf_config[env]['url'] = readl(true)
254
215
  end
255
216
  else
256
217
  puts "ERROR: ILLEGAL BACKEND #{backend} - you shouldn't see this..."
@@ -260,8 +221,7 @@ if(iip_directory != '')
260
221
  talia_config.iip_root_directory_location = iip_directory
261
222
  end
262
223
 
263
- puts ''
264
- print "Enter the path to store general data files (return for default): "
224
+ print "Enter the path to store the data files (return for default): "
265
225
  data_directory = readl
266
226
 
267
227
  if(data_directory != '')
@@ -305,15 +265,38 @@ end
305
265
  puts
306
266
  puts "Now migrating the databases"
307
267
  %w(test development production).each do |env|
308
- puts "Init database for #{env}"
309
268
  raise("Error migrating #{env}") unless(system("rake db:migrate RAILS_ENV=#{env}"))
310
269
  # raise("Error creating globalize tables in #{env}") unless(system("rake globalize:setup RAILS_ENV=#{env}"))
311
- puts "Importing ontologies for #{env}"
312
- system("rake talia_core:rdf_import files=ontologies/*.owl rdf_syntax=rdfxml RAILS_ENV=#{env}")
313
- system("rake talia_core:owl_to_rdfs_update RAILS_ENV=#{env}")
314
270
  puts "Migrated #{env}"
315
271
  end
316
272
 
273
+ puts "Importing ontologies"
274
+ system('rake talia_core:rdf_import files=ontologies/*.owl rdf_syntax=rdfxml')
275
+ system('rake talia_core:owl_to_rdfs_update')
276
+
277
+ # print "Importing language files..."
278
+ # Dir[File.join(rails_dir, 'languages', '*_glob.csv')].each do |lang_file|
279
+ # language = File.basename(lang_file)[0..1] # first two chars are the lang code
280
+ # print " #{language}"
281
+ # raise("Error importing language #{language}") unless(system("rake discovery:import_language language=#{language} file=#{File.expand_path(lang_file)}"))
282
+ # end
283
+ # puts " ... done."
284
+ # puts
285
+
286
+ puts "Customize the start page. The following custom start pages are available:"
287
+ cust_pages = Dir[File.join(rails_dir, 'customization_files', 'start_page', '_start_page_*.html.erb')]
288
+ cust_pages.each do |cust_page|
289
+ # Get the descriptive name
290
+ md = /_start_page_(.*)\.html\.erb/.match(cust_page)
291
+ puts "#{cust_pages.index(cust_page)} - #{md[1]}"
292
+ end
293
+
294
+ if(read_yn('Do you want to build a war file now?'))
295
+ puts
296
+ puts "Building the war file"
297
+ system("warble")
298
+ end
299
+
317
300
  puts
318
301
  puts "Configuration complete"
319
- puts
302
+ puts