qa_server 6.0.0 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/app/controllers/concerns/qa_server/authority_validation_behavior.rb +2 -3
  4. data/app/controllers/qa_server/monitor_status_controller.rb +1 -3
  5. data/app/jobs/qa_server/monitor_tests_job.rb +17 -9
  6. data/app/models/qa_server/scenario_run_history.rb +33 -9
  7. data/app/presenters/qa_server/monitor_status/history_presenter.rb +7 -7
  8. data/app/services/qa_server/performance_datatable_service.rb +1 -1
  9. data/app/services/qa_server/performance_graph_data_service.rb +1 -4
  10. data/app/services/qa_server/time_period_service.rb +8 -8
  11. data/lib/generators/qa_server/templates/config/authorities/linked_data/agrovoc_ld4l_cache.json +6 -10
  12. data/lib/generators/qa_server/templates/config/authorities/linked_data/cerl_ld4l_cache.json +168 -0
  13. data/lib/generators/qa_server/templates/config/authorities/linked_data/dbpedia_ld4l_cache.json +6 -2
  14. data/lib/generators/qa_server/templates/config/authorities/linked_data/geonames_ld4l_cache.json +6 -2
  15. data/lib/generators/qa_server/templates/config/authorities/linked_data/getty_aat_ld4l_cache.json +6 -2
  16. data/lib/generators/qa_server/templates/config/authorities/linked_data/getty_tgn_ld4l_cache.json +6 -2
  17. data/lib/generators/qa_server/templates/config/authorities/linked_data/getty_ulan_ld4l_cache.json +6 -2
  18. data/lib/generators/qa_server/templates/config/authorities/linked_data/locdemographics_ld4l_cache.json +6 -2
  19. data/lib/generators/qa_server/templates/config/authorities/linked_data/locgenres_ld4l_cache.json +6 -2
  20. data/lib/generators/qa_server/templates/config/authorities/linked_data/locnames_ld4l_cache.json +6 -2
  21. data/lib/generators/qa_server/templates/config/authorities/linked_data/locnames_rwo_ld4l_cache.json +13 -2
  22. data/lib/generators/qa_server/templates/config/authorities/linked_data/locperformance_ld4l_cache.json +6 -2
  23. data/lib/generators/qa_server/templates/config/authorities/linked_data/locsubjects_ld4l_cache.json +6 -2
  24. data/lib/generators/qa_server/templates/config/authorities/linked_data/mesh_nlm_ld4l_cache.json +6 -2
  25. data/lib/generators/qa_server/templates/config/authorities/linked_data/nalt_ld4l_cache.json +6 -2
  26. data/lib/generators/qa_server/templates/config/authorities/linked_data/oclcfast_ld4l_cache.json +6 -2
  27. data/lib/generators/qa_server/templates/config/authorities/linked_data/rda_registry_ld4l_cache.json +6 -2
  28. data/lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/cerl_ld4l_cache_validation.yml +61 -0
  29. data/lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/geonames_direct_validation.yml +1 -1
  30. data/lib/generators/qa_server/templates/db/migrate/20200213160549_add_date_column_to_scenario_run_history.rb.erb +14 -0
  31. data/lib/qa_server/version.rb +1 -1
  32. metadata +5 -3
  33. data/lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/cerl_ld4_cache_validation.yml +0 -51
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 860edda3341250dd5f1fc4db164b95f8f24bf832
4
- data.tar.gz: 89cb1ccc0f86ef647d490dd416bf27b00f598d86
3
+ metadata.gz: 3f5c0789b598b78ba1ac24e8070d989c92147bad
4
+ data.tar.gz: a3d686757d3cb4f9279c505416c6c3a54edbc00c
5
5
  SHA512:
6
- metadata.gz: f43f63cbfda11c203e79fb8aeeb4a8f05dac3051ea4225593fe82244343d35b8076a3db11672c913bf80eb8df8cfd0216bc7a6218d296c9772b516e32edeb41f
7
- data.tar.gz: 9192ba67322874947fc9f979d7545369de86d041a533361621ac091013cbb04230b0f756d2b6d570a0c5fc992dce27548d6b86dfd93ff95733c39a134b542546
6
+ metadata.gz: fc7340db3cc8a3aaf1d20449608427b57c7aa03a0d096b67b093330c92e97b4af7035acd20833bcf74e440056eebd7a6b37bf5224c95686d14294812612ad447
7
+ data.tar.gz: d7e0ae7f314ec9c7fb9d16783947a2a9cb5d7dea10388b6ad777c0da8a2e9c5ca035511bd519ed3b4bcb3314e6c782a6901983459a5872cdea0980c0333a6d56
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ### 6.1.0 (2020-02-17)
2
+
3
+ * change historical summary to show number of days instead of number of tests (original intent)
4
+ * default tests to connection tests
5
+ * update authorities to v2.2 configs
6
+ * add authority cerl_ld4l_cache
7
+
1
8
  ### 6.0.0 (2020-02-13)
2
9
 
3
10
  * refactor generation of performance graphs to minimize db access and calculations
@@ -7,7 +7,6 @@ module QaServer
7
7
  VALIDATE_CONNECTIONS = 'connections'
8
8
  VALIDATE_ACCURACY = 'accuracy'
9
9
  ALL_VALIDATIONS = 'all_checks'
10
- DEFAULT_VALIDATION_TYPE = QaServer::AuthorityValidatorService
11
10
 
12
11
  included do
13
12
  class_attribute :validator_class,
@@ -33,7 +32,7 @@ module QaServer
33
32
  @authorities_list ||= lister_class.authorities_list
34
33
  end
35
34
 
36
- def validate(authorities_list, validation_type = DEFAULT_VALIDATION_TYPE)
35
+ def validate(authorities_list, validation_type = validator_class::DEFAULT_VALIDATION_TYPE)
37
36
  return if authorities_list.blank?
38
37
  authorities_list.each { |auth_name| validate_authority(auth_name, validation_type) }
39
38
  end
@@ -71,7 +70,7 @@ module QaServer
71
70
  when VALIDATE_ACCURACY
72
71
  validator_class::VALIDATE_ACCURACY
73
72
  else
74
- DEFAULT_VALIDATION_TYPE
73
+ validator_class::DEFAULT_VALIDATION_TYPE
75
74
  end
76
75
  end
77
76
  end
@@ -104,9 +104,7 @@ module QaServer
104
104
  end
105
105
 
106
106
  def log_header
107
- QaServer.config.monitor_logger.debug("----------------------------------------------------------------------")
108
- QaServer.config.monitor_logger.debug(" loading monitor status page")
109
- QaServer.config.monitor_logger.debug("----------------------------------------------------------------------")
107
+ QaServer.config.monitor_logger.debug("------------------------------------- monitor status ---------------------------------")
110
108
  QaServer.config.monitor_logger.info("(#{self.class}##{__method__}) monitor status page request (refresh_tests? # #{refresh_tests?}, " \
111
109
  "refresh_history? # #{refresh_history?}, refresh_performance? # #{refresh_performance?})")
112
110
  end
@@ -11,22 +11,25 @@ module QaServer
11
11
 
12
12
  # def perform(job_id:)
13
13
  def perform
14
- Rails.cache.fetch("QaServer::MonitorTestsController/latest_run", expires_in: QaServer::MonitorCacheService.cache_expiry, race_condition_ttl: 5.minutes, force: true) do
14
+ Rails.cache.fetch("QaServer::MonitorTestsController/latest_test_run_from_cache", expires_in: QaServer::MonitorCacheService.cache_expiry, race_condition_ttl: 5.minutes, force: true) do
15
15
  job_id = SecureRandom.uuid
16
16
  monitor_tests_job_id = job_id unless monitor_tests_job_id
17
- if monitor_tests_job_id == job_id # avoid race conditions
18
- QaServer.config.monitor_logger.info("(#{self.class}##{__method__}-#{job_id}) RUNNING monitoring tests")
19
- validate(authorities_list)
20
- scenario_run_registry_class.save_run(scenarios_results: status_log.to_a)
21
- QaServer.config.monitor_logger.info("(#{self.class}##{__method__}-#{job_id}) COMPLETED monitoring tests")
22
- reset_monitor_tests_job_id
23
- end
17
+ run_tests if monitor_tests_job_id == job_id # avoid race conditions
24
18
  scenario_run_registry_class.latest_run
25
19
  end
26
20
  end
27
21
 
28
22
  private
29
23
 
24
+ def run_tests
25
+ QaServer.config.monitor_logger.info("(#{self.class}##{__method__}-#{job_id}) RUNNING monitoring tests")
26
+ validate(authorities_list)
27
+ log_results(authorities_list, status_log.to_a)
28
+ scenario_run_registry_class.save_run(scenarios_results: status_log.to_a)
29
+ QaServer.config.monitor_logger.info("(#{self.class}##{__method__}-#{job_id}) COMPLETED monitoring tests")
30
+ reset_monitor_tests_job_id
31
+ end
32
+
30
33
  # @return [String, Boolean] Returns job id of the job currently running tests; otherwise, false if tests are not running
31
34
  def monitor_tests_job_id
32
35
  Rails.cache.fetch("QaServer:monitor_tests-job_id", expires_in: 2.hours, race_condition_ttl: 5.minutes) { false }
@@ -36,7 +39,7 @@ module QaServer
36
39
  # @param job_id [String] UUID for job running the tests
37
40
  def monitor_tests_job_id=(job_id)
38
41
  # check to see if there is a current job already running tests
39
- current_job_id = Rails.cache.fetch("QaServer:monitor_tests-job_id", expires_in: 2.hours, race_condition_ttl: 30.seconds) { job_id }
42
+ current_job_id = Rails.cache.fetch("QaServer:monitor_tests-job_id", expires_in: 2.hours, race_condition_ttl: 5.seconds) { job_id }
40
43
 
41
44
  # current_job_id may be false meaning tests are not currently running; in which case, it is ok to force set job_id
42
45
  Rails.cache.fetch("QaServer:monitor_tests-job_id", expires_in: 2.hours, race_condition_ttl: 30.seconds, force: true) { job_id } unless current_job_id
@@ -46,5 +49,10 @@ module QaServer
46
49
  def reset_monitor_tests_job_id
47
50
  Rails.cache.fetch("QaServer:monitor_tests-job_id", expires_in: 2.hours, race_condition_ttl: 30.seconds, force: true) { false }
48
51
  end
52
+
53
+ def log_results(authorities_list, results)
54
+ QaServer.config.monitor_logger.warn("(#{self.class}##{__method__}-#{job_id}) authorities_list is empty") if authorities_list&.empty?
55
+ QaServer.config.monitor_logger.warn("(#{self.class}##{__method__}-#{job_id}) test results are empty") if results&.empty?
56
+ end
49
57
  end
50
58
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  # Provide access to the scenario_run_history database table which tracks scenario runs over time.
3
3
  module QaServer
4
- class ScenarioRunHistory < ActiveRecord::Base
4
+ class ScenarioRunHistory < ActiveRecord::Base # rubocop:disable Metrics/ClassLength
5
5
  self.table_name = 'scenario_run_history'
6
6
  belongs_to :scenario_run_registry
7
7
  enum scenario_type: [:connection, :accuracy, :performance], _suffix: :type
@@ -20,6 +20,7 @@ module QaServer
20
20
  # @param run_id [Integer] the run on which to gather statistics
21
21
  # @param result [Hash] the scenario result to be saved
22
22
  def save_result(run_id:, scenario_result:)
23
+ registry = QaServer::ScenarioRunRegistry.find(run_id)
23
24
  QaServer::ScenarioRunHistory.create(scenario_run_registry_id: run_id,
24
25
  status: scenario_result[:status],
25
26
  authority_name: scenario_result[:authority_name],
@@ -28,7 +29,8 @@ module QaServer
28
29
  action: scenario_result[:action],
29
30
  url: scenario_result[:url],
30
31
  err_message: scenario_result[:err_message],
31
- run_time: scenario_result[:run_time])
32
+ run_time: scenario_result[:run_time],
33
+ date: registry.dt_stamp.to_date)
32
34
  end
33
35
 
34
36
  # Get a summary of passing/failing tests for a run.
@@ -45,7 +47,7 @@ module QaServer
45
47
  # * total_scenario_count: 159,
46
48
  def run_summary(scenario_run:, force: false)
47
49
  Rails.cache.fetch("QaServer::ScenarioRunHistory/#{__method__}", expires_in: QaServer::MonitorCacheService.cache_expiry, race_condition_ttl: 1.minute, force: force) do
48
- QaServer.config.monitor_logger.info("(QaServer::ScenarioRunHistory##{__method__}) - creating summary of latest run - cache expired or refresh requested (force: #{force})")
50
+ QaServer.config.monitor_logger.info("(QaServer::ScenarioRunHistory##{__method__}) - CALCULATING summary of latest run - cache expired or refresh requested (force: #{force})")
49
51
  status = status_counts_in_run(run_id: scenario_run.id)
50
52
  summary_class.new(run_id: scenario_run.id,
51
53
  run_dt_stamp: scenario_run.dt_stamp,
@@ -136,16 +138,38 @@ module QaServer
136
138
  # Get a summary level of historical data
137
139
  # @returns [Array<Array>] summary of passing/failing tests for each authority
138
140
  # @example [auth_name, failing, passing]
139
- # { 'agrovoc' => { "good" => 0, "bad" => 24 },
140
- # 'geonames_ld4l_cache' => { "good" => 2, "bad" => 22 } }
141
+ # { 'agrovoc' => { good: 31, bad: 2 },
142
+ # 'geonames_ld4l_cache' => { good: 32, bad: 1 } }
141
143
  def historical_summary(force: false)
142
144
  Rails.cache.fetch("QaServer::ScenarioRunHistory/#{__method__}", expires_in: QaServer::MonitorCacheService.cache_expiry, race_condition_ttl: 1.minute, force: force) do
143
- runs_per_authority_for_time_period
145
+ QaServer.config.monitor_logger.info("(QaServer::ScenarioRunHistory##{__method__}) - CALCULATING authority connection history - cache expired or refresh requested (force: #{force})")
146
+ days_good = count_days(:good)
147
+ days_bad = count_days(:bad)
148
+ days_unknown = count_days(:unknown)
149
+ keys = (days_good.keys + days_bad.keys + days_unknown.keys).uniq.sort
150
+ keys.each_with_object({}) do |auth, hash|
151
+ hash[auth] = { good: day_count(auth, days_good), bad: day_count(auth, days_bad) + day_count(auth, days_unknown) }
152
+ end
144
153
  end
145
154
  end
146
155
 
147
156
  private
148
157
 
158
+ def day_count(auth, days)
159
+ days&.key?(auth) ? days[auth] : 0
160
+ end
161
+
162
+ def count_days(status)
163
+ where = time_period_where
164
+ where[:status] = status
165
+ auths = QaServer::ScenarioRunHistory.where(where).select("authority_name").group("date, authority_name")
166
+ .order("authority_name").pluck(:authority_name)
167
+ auths.each_with_object({}) do |auth, hash|
168
+ hash[auth] = 0 unless hash.key? auth
169
+ hash[auth] += 1
170
+ end
171
+ end
172
+
149
173
  def authorities_in_run(run_id:)
150
174
  QaServer::ScenarioRunHistory.where(scenario_run_registry_id: run_id).pluck(:authority_name).uniq
151
175
  end
@@ -180,11 +204,11 @@ module QaServer
180
204
  def time_period_where
181
205
  case expected_time_period
182
206
  when :day
183
- QaServer::TimePeriodService.where_clause_for_last_24_hours(dt_table: :scenario_run_registry)
207
+ QaServer::TimePeriodService.where_clause_for_last_24_hours(dt_table: :scenario_run_history, dt_column: :date)
184
208
  when :month
185
- QaServer::TimePeriodService.where_clause_for_last_30_days(dt_table: :scenario_run_registry)
209
+ QaServer::TimePeriodService.where_clause_for_last_30_days(dt_table: :scenario_run_history, dt_column: :date)
186
210
  when :year
187
- QaServer::TimePeriodService.where_clause_for_last_12_months(dt_table: :scenario_run_registry)
211
+ QaServer::TimePeriodService.where_clause_for_last_12_months(dt_table: :scenario_run_history, dt_column: :date)
188
212
  else
189
213
  all_records
190
214
  end
@@ -67,7 +67,7 @@ module QaServer::MonitorStatus
67
67
  "status-#{status[:status]}"
68
68
  end
69
69
 
70
- # @return [String] the name of the css style class to use for the status cell based on the status of the scenario test.
70
+ # @return [String] the marker to use for the status cell based on the status of the scenario test
71
71
  def status_label(status)
72
72
  case status[:status]
73
73
  when :good
@@ -84,11 +84,11 @@ module QaServer::MonitorStatus
84
84
  end
85
85
 
86
86
  def days_authority_passing(historical_entry)
87
- historical_entry[1]["good"]
87
+ historical_entry[1][:good]
88
88
  end
89
89
 
90
90
  def days_authority_failing(historical_entry)
91
- historical_entry[1]["bad"]
91
+ historical_entry[1][:bad]
92
92
  end
93
93
 
94
94
  def days_authority_tested(historical_entry)
@@ -100,12 +100,12 @@ module QaServer::MonitorStatus
100
100
  end
101
101
 
102
102
  def percent_authority_failing_str(historical_entry)
103
- "#{percent_authority_failing(historical_entry) * 100}%"
103
+ ActiveSupport::NumberHelper.number_to_percentage(percent_authority_failing(historical_entry) * 100, precision: 1)
104
104
  end
105
105
 
106
106
  def failure_style_class(historical_entry)
107
107
  return "status-neutral" if days_authority_failing(historical_entry) <= 0
108
- percent_authority_failing(historical_entry) < 0.1 ? "status-unknown" : "status-bad"
108
+ percent_authority_failing(historical_entry) < 0.10 ? "status-unknown" : "status-bad"
109
109
  end
110
110
 
111
111
  def passing_style_class(historical_entry)
@@ -149,8 +149,8 @@ module QaServer::MonitorStatus
149
149
  historical_summary.each do |auth, data|
150
150
  labels[i] = auth
151
151
  i += 1
152
- fail_data << data["bad"]
153
- pass_data << data["good"]
152
+ fail_data << data[:bad]
153
+ pass_data << data[:good]
154
154
  end
155
155
  [labels, fail_data, pass_data]
156
156
  end
@@ -26,7 +26,7 @@ module QaServer
26
26
  # }
27
27
  def calculate_datatable_data(force:)
28
28
  Rails.cache.fetch("QaServer::PerformanceDatatableService/#{__method__}", expires_in: QaServer::MonitorCacheService.cache_expiry, race_condition_ttl: 5.minutes, force: force) do
29
- QaServer.config.monitor_logger.info("(QaServer::PerformanceDatatableService##{__method__}) - calculating performance datatable stats - cache expired or refresh requested (force: #{force})")
29
+ QaServer.config.monitor_logger.info("(QaServer::PerformanceDatatableService##{__method__}) - CALCULATING performance datatable stats - cache expired or refresh requested (force: #{force})")
30
30
  data = {}
31
31
  auths = authority_list_class.authorities_list
32
32
  data[ALL_AUTH] = datatable_data_for_authority
@@ -45,11 +45,11 @@ module QaServer
45
45
  # AGROVOC_LD4L_CACHE: { ... # same data for each authority }
46
46
  # }
47
47
  def calculate_graph_data(force:)
48
- QaServer.config.monitor_logger.info("(QaServer::PerformanceGraphDataService##{__method__}) - calculating performance graph data")
49
48
  QaServer.config.performance_cache.write_all
50
49
  data = {}
51
50
  auths = authority_list_class.authorities_list
52
51
  calculate_all = force || cache_expired?
52
+ QaServer.config.monitor_logger.info("(QaServer::PerformanceGraphDataService##{__method__}) - CALCULATING performance graph data (calculate_all: #{calculate_all})")
53
53
  data[ALL_AUTH] = graph_data_for_authority(force: force, calculate_all: calculate_all)
54
54
  auths.each { |auth_name| data[auth_name] = graph_data_for_authority(authority_name: auth_name, force: force, calculate_all: calculate_all) }
55
55
  data
@@ -83,7 +83,6 @@ module QaServer
83
83
  avgs = Rails.cache.fetch("QaServer::PerformanceGraphDataService/#{__method__}/#{authority_name || ALL_AUTH}/#{action}/#{FOR_DAY}",
84
84
  expires_in: QaServer::TimeService.current_time.end_of_hour - QaServer::TimeService.current_time,
85
85
  race_condition_ttl: 1.hour, force: force) do
86
- QaServer.config.monitor_logger.info("(QaServer::PerformanceGraphDataService##{__method__}) - calculating performance stats - cache expired or refresh requested (force: #{force})")
87
86
  calculate_last_24_hours(authority_name, action)
88
87
  end
89
88
  calculate_last_hour(authority_name, action, avgs)
@@ -104,7 +103,6 @@ module QaServer
104
103
  def average_last_30_days(authority_name: nil, action: nil, force: false)
105
104
  Rails.cache.fetch("QaServer::PerformanceGraphDataService/#{__method__}/#{authority_name || ALL_AUTH}/#{action}/#{FOR_MONTH}",
106
105
  expires_in: QaServer::MonitorCacheService.cache_expiry, race_condition_ttl: 1.hour, force: force) do
107
- QaServer.config.monitor_logger.info("(QaServer::PerformanceGraphDataService##{__method__}) - calculating performance stats - cache expired or refresh requested (force: #{force})")
108
106
  calculate_last_30_days(authority_name, action)
109
107
  end
110
108
  end
@@ -124,7 +122,6 @@ module QaServer
124
122
  def average_last_12_months(authority_name: nil, action: nil, force: false)
125
123
  Rails.cache.fetch("QaServer::PerformanceGraphDataService/#{__method__}/#{authority_name || ALL_AUTH}/#{action}/#{FOR_YEAR}",
126
124
  expires_in: QaServer::MonitorCacheService.cache_expiry, race_condition_ttl: 1.hour, force: force) do
127
- QaServer.config.monitor_logger.info("(QaServer::PerformanceGraphDataService##{__method__}) - calculating performance stats - cache expired or refresh requested (force: #{force})")
128
125
  calculate_last_12_months(authority_name, action)
129
126
  end
130
127
  end
@@ -17,9 +17,9 @@ module QaServer
17
17
  # { dt_stamp: start_hour..end_hour, authority: 'LOC_DIRECT' }
18
18
  # @example returned where when no authority
19
19
  # { dt_stamp: start_hour..end_hour }
20
- def where_clause_for_last_24_hours(auth_name: nil, auth_table: nil, dt_table: nil)
20
+ def where_clause_for_last_24_hours(auth_name: nil, auth_table: nil, dt_table: nil, dt_column: :dt_stamp)
21
21
  validate_params(auth_name, auth_table, dt_table)
22
- where_clause = where_for_dt_stamp(dt_table, 1.day)
22
+ where_clause = where_for_dt_stamp(dt_table, dt_column, 1.day)
23
23
  where_with_authority(where_clause, auth_name, auth_table)
24
24
  end
25
25
 
@@ -37,9 +37,9 @@ module QaServer
37
37
  # { dt_stamp: start_day..end_day, authority: 'LOC_DIRECT' }
38
38
  # @example returned where when no authority
39
39
  # { dt_stamp: start_day..end_day }
40
- def where_clause_for_last_30_days(auth_name: nil, auth_table: nil, dt_table: nil)
40
+ def where_clause_for_last_30_days(auth_name: nil, auth_table: nil, dt_table: nil, dt_column: :dt_stamp)
41
41
  validate_params(auth_name, auth_table, dt_table)
42
- where_clause = where_for_dt_stamp(dt_table, 1.month)
42
+ where_clause = where_for_dt_stamp(dt_table, dt_column, 1.month)
43
43
  where_with_authority(where_clause, auth_name, auth_table)
44
44
  end
45
45
 
@@ -57,18 +57,18 @@ module QaServer
57
57
  # { dt_stamp: start_month..end_month, authority: 'LOC_DIRECT' }
58
58
  # @example returned where when no authority
59
59
  # { dt_stamp: start_month..end_month }
60
- def where_clause_for_last_12_months(auth_name: nil, auth_table: nil, dt_table: nil)
60
+ def where_clause_for_last_12_months(auth_name: nil, auth_table: nil, dt_table: nil, dt_column: :dt_stamp)
61
61
  validate_params(auth_name, auth_table, dt_table)
62
- where_clause = where_for_dt_stamp(dt_table, 1.year)
62
+ where_clause = where_for_dt_stamp(dt_table, dt_column, 1.year)
63
63
  where_with_authority(where_clause, auth_name, auth_table)
64
64
  end
65
65
 
66
66
  private
67
67
 
68
- def where_for_dt_stamp(dt_table, time_period)
68
+ def where_for_dt_stamp(dt_table, dt_column, time_period)
69
69
  end_range = QaServer::TimeService.current_time
70
70
  start_range = end_range - time_period
71
- where_clause = { dt_stamp: start_range..end_range }
71
+ where_clause = { dt_column => start_range..end_range }
72
72
  where_clause = { dt_table => where_clause } unless dt_table.nil?
73
73
  where_clause
74
74
  end
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "vivo": "http://vivoweb.org/ontology/core#"
5
6
  },
@@ -77,8 +78,11 @@
77
78
  },
78
79
  "qa_replacement_patterns": {
79
80
  "query": "query",
80
- "subauth": "entity"
81
+ "subauth": "entity",
82
+ "start_record": "startRecord",
83
+ "requested_records": "maxRecords"
81
84
  },
85
+ "total_count_ldpath": "vivo:count",
82
86
  "results": {
83
87
  "label_ldpath": "skos:prefLabel ::xsd:string",
84
88
  "sort_ldpath": "vivo:rank ::xsd:string"
@@ -117,14 +121,6 @@
117
121
  "expansion_label_ldpath": "skos:prefLabel ::xsd:string"
118
122
  }
119
123
  ]
120
- },
121
- "subauthorities": {
122
- "person": "Person",
123
- "organization": "Organization",
124
- "place": "Place",
125
- "intangible": "Intangible",
126
- "geocoordinates": "GeoCoordinates",
127
- "work": "Work"
128
124
  }
129
125
  }
130
126
  }
@@ -0,0 +1,168 @@
1
+ {
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
4
+ "prefixes": {
5
+ "rdaGr2": "http://rdvocab.info/ElementsGr2/",
6
+ "rdaGr3": "http://rdvocab.info/ElementsGr3/",
7
+ "ct": "http://www.cerl.org/namespaces/thesaurus",
8
+ "rdaRelGr2": "http://metadataregistry.org/uri/schema/RDARelationshipsGR2",
9
+ "vivo": "http://vivoweb.org/ontology/core#"
10
+ },
11
+ "term": {
12
+ "url": {
13
+ "@context": "http://www.w3.org/ns/hydra/context.jsonld",
14
+ "@type": "IriTemplate",
15
+ "template": "http://services.ld4l.org/ld4l_services/cerl_lookup.jsp?uri={term_uri}",
16
+ "variableRepresentation": "BasicRepresentation",
17
+ "mapping": [
18
+ {
19
+ "@type": "IriTemplateMapping",
20
+ "variable": "term_uri",
21
+ "property": "hydra:freetextQuery",
22
+ "required": true,
23
+ "encode": true
24
+ }
25
+ ]
26
+ },
27
+ "qa_replacement_patterns": {
28
+ "term_id": "term_uri"
29
+ },
30
+ "term_id": "URI",
31
+ "results": {
32
+ "label_ldpath": "skos:prefLabel ::xsd:string",
33
+ "altlabel_ldpath": "skos:altLabel ::xsd:string",
34
+ "broader_ldpath": "skos:broader ::xsd:anyURI",
35
+ "narrower_ldpath": "skos:narrower ::xsd:anyURI",
36
+ "sameas_ldpath": "skos:exactMatch ::xsd:anyURI"
37
+ }
38
+ },
39
+ "search": {
40
+ "url": {
41
+ "@context": "http://www.w3.org/ns/hydra/context.jsonld",
42
+ "@type": "IriTemplate",
43
+ "template": "http://services.ld4l.org/ld4l_services/cerl_batch.jsp?{?query}&{?maxRecords}&{?startRecord}&{?entity}&{?lang}",
44
+ "variableRepresentation": "BasicRepresentation",
45
+ "mapping": [
46
+ {
47
+ "@type": "IriTemplateMapping",
48
+ "variable": "query",
49
+ "property": "hydra:freetextQuery",
50
+ "required": true,
51
+ "encode": true
52
+ },
53
+ {
54
+ "@type": "IriTemplateMapping",
55
+ "variable": "entity",
56
+ "property": "hydra:freetextQuery",
57
+ "required": false,
58
+ "default": ""
59
+ },
60
+ {
61
+ "@type": "IriTemplateMapping",
62
+ "variable": "maxRecords",
63
+ "property": "hydra:freetextQuery",
64
+ "required": false,
65
+ "default": "20"
66
+ },
67
+ {
68
+ "@type": "IriTemplateMapping",
69
+ "variable": "startRecord",
70
+ "property": "hydra:freetextQuery",
71
+ "required": false,
72
+ "default": "1"
73
+ },
74
+ {
75
+ "@type": "IriTemplateMapping",
76
+ "variable": "lang",
77
+ "property": "hydra:freetextQuery",
78
+ "required": false,
79
+ "default": "en"
80
+ }
81
+ ]
82
+ },
83
+ "qa_replacement_patterns": {
84
+ "query": "query",
85
+ "subauth": "entity",
86
+ "start_record": "startRecord",
87
+ "requested_records": "maxRecords"
88
+ },
89
+ "total_count_ldpath": "vivo:count",
90
+ "results": {
91
+ "label_ldpath": "rdaGr2:nameOfThePerson | rdaGr2:nameOfTheCorporateBody | ct:imprintName ::xsd:string",
92
+ "sort_ldpath": "vivo:rank ::xsd:string"
93
+ },
94
+ "context": {
95
+ "properties": [
96
+ {
97
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.name",
98
+ "property_label_default": "Name",
99
+ "ldpath": "rdaGr2:nameOfThePerson | rdaGr2:nameOfTheCorporateBody | ct:imprintName :: xsd:string",
100
+ "selectable": true,
101
+ "drillable": false
102
+ },
103
+ {
104
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.biographical_information",
105
+ "property_label_default": "Biographical information",
106
+ "ldpath": "rdaGr2:biographicalInformation :: xsd:string",
107
+ "selectable": false,
108
+ "drillable": false
109
+ },
110
+ {
111
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.dates_of_activity",
112
+ "property_label_default": "Dates of activity",
113
+ "ldpath": "ct:datesOfActivity",
114
+ "selectable": false,
115
+ "drillable": false
116
+ },
117
+ {
118
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.activity",
119
+ "property_label_default": "Activity",
120
+ "ldpath": "rdaGr2:fieldOfActivityOfThePerson | ct:activityNote :: xsd:string",
121
+ "selectable": false,
122
+ "drillable": false
123
+ },
124
+ {
125
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.device",
126
+ "property_label_default": "Device",
127
+ "ldpath": "ct:signOrDevice/ct:hasDescription :: xsd:string",
128
+ "selectable": false,
129
+ "drillable": false
130
+ },
131
+ {
132
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.variant_name",
133
+ "property_label_default": "Variant name",
134
+ "ldpath": "rdaGr2:variantNameForThePerson | rdaGr2:variantNameForTheCorporateBody | ct:variantImprintName :: xsd:string",
135
+ "selectable": false,
136
+ "drillable": false
137
+ },
138
+ {
139
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.affiliation",
140
+ "property_label_default": "Affiliation",
141
+ "ldpath": "rdaRelGr2:relatedCorporateBody :: xsd:string",
142
+ "selectable": false,
143
+ "drillable": false
144
+ },
145
+ {
146
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.address",
147
+ "property_label_default": "Address",
148
+ "ldpath": "ct:locationOfActivity/ct:hasAddress :: xsd:string",
149
+ "selectable": false,
150
+ "drillable": false
151
+ },
152
+ {
153
+ "property_label_i18n": "qa.linked_data.authority.cerl_ld4l_cache.location",
154
+ "property_label_default": "Location",
155
+ "ldpath": "(rdaGr2:placeAssociatedWithTheCorporateBody/rdaGr3:nameOfThePlace) | (ct:locationOfActivity/ct:hasPlace/rdaGr3:nameOfThePlace) :: xsd:string",
156
+ "selectable": false,
157
+ "drillable": false
158
+ }
159
+ ]
160
+ },
161
+ "subauthorities": {
162
+ "person": "Person",
163
+ "corporate": "Corporate",
164
+ "imprint": "Imprint"
165
+ }
166
+ }
167
+ }
168
+
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "dbpedia": "http://dbpedia.org/property/",
5
6
  "vivo": "http://vivoweb.org/ontology/core#"
@@ -76,8 +77,11 @@
76
77
  },
77
78
  "qa_replacement_patterns": {
78
79
  "query": "query",
79
- "subauth": "entity"
80
+ "subauth": "entity",
81
+ "start_record": "startRecord",
82
+ "requested_records": "maxRecords"
80
83
  },
84
+ "total_count_ldpath": "vivo:count",
81
85
  "language": ["en"],
82
86
  "results": {
83
87
  "id_ldpath": "dbpedia:id ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "geo": "http://www.w3.org/2003/01/geo/wgs84_pos#",
5
6
  "geonames": "http://www.geonames.org/ontology#",
@@ -78,8 +79,11 @@
78
79
  },
79
80
  "qa_replacement_patterns": {
80
81
  "query": "query",
81
- "subauth": "entity"
82
+ "subauth": "entity",
83
+ "start_record": "startRecord",
84
+ "requested_records": "maxRecords"
82
85
  },
86
+ "total_count_ldpath": "vivo:count",
83
87
  "language": ["en"],
84
88
  "results": {
85
89
  "label_ldpath": "geonames:name ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "vivo": "http://vivoweb.org/ontology/core#"
5
6
  },
@@ -78,8 +79,11 @@
78
79
  },
79
80
  "qa_replacement_patterns": {
80
81
  "query": "query",
81
- "subauth": "subauth"
82
+ "subauth": "subauth",
83
+ "start_record": "startRecord",
84
+ "requested_records": "maxRecords"
82
85
  },
86
+ "total_count_ldpath": "vivo:count",
83
87
  "results": {
84
88
  "id_ldpath": "dc:identifier ::xsd:string",
85
89
  "label_ldpath": "skos:prefLabel ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "getty": "http://vocab.getty.edu/ontology#",
5
6
  "vivo": "http://vivoweb.org/ontology/core#"
@@ -71,8 +72,11 @@
71
72
  ]
72
73
  },
73
74
  "qa_replacement_patterns": {
74
- "query": "query"
75
+ "query": "query",
76
+ "start_record": "startRecord",
77
+ "requested_records": "maxRecords"
75
78
  },
79
+ "total_count_ldpath": "vivo:count",
76
80
  "results": {
77
81
  "id_ldpath": "dc:identifier ::xsd:string",
78
82
  "label_ldpath": "skos:prefLabel ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "vivo": "http://vivoweb.org/ontology/core#"
5
6
  },
@@ -78,8 +79,11 @@
78
79
  },
79
80
  "qa_replacement_patterns": {
80
81
  "query": "query",
81
- "subauth": "entity"
82
+ "subauth": "entity",
83
+ "start_record": "startRecord",
84
+ "requested_records": "maxRecords"
82
85
  },
86
+ "total_count_ldpath": "vivo:count",
83
87
  "results": {
84
88
  "id_ldpath": "dc:identifier ::xsd:string",
85
89
  "label_ldpath": "skos:prefLabel ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "loc": "http://id.loc.gov/vocabulary/identifiers/",
5
6
  "madsrdf": "http://www.loc.gov/mads/rdf/v1#",
@@ -70,8 +71,11 @@
70
71
  ]
71
72
  },
72
73
  "qa_replacement_patterns": {
73
- "query": "query"
74
+ "query": "query",
75
+ "start_record": "startRecord",
76
+ "requested_records": "maxRecords"
74
77
  },
78
+ "total_count_ldpath": "vivo:count",
75
79
  "results": {
76
80
  "label_ldpath": "skos:prefLabel ::xsd:string",
77
81
  "sort_ldpath": "vivo:rank ::xsd:string"
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "loc": "http://id.loc.gov/vocabulary/identifiers/",
5
6
  "madsrdf": "http://www.loc.gov/mads/rdf/v1#",
@@ -87,8 +88,11 @@
87
88
  },
88
89
  "qa_replacement_patterns": {
89
90
  "query": "query",
90
- "subauth": "entity"
91
+ "subauth": "entity",
92
+ "start_record": "startRecord",
93
+ "requested_records": "maxRecords"
91
94
  },
95
+ "total_count_ldpath": "vivo:count",
92
96
  "results": {
93
97
  "id_ldpath": "loc:lccn ::xsd:string",
94
98
  "label_ldpath": "skos:prefLabel | madsrdf:variantLabel ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "loc": "http://id.loc.gov/vocabulary/identifiers/",
5
6
  "madsrdf": "http://www.loc.gov/mads/rdf/v1#",
@@ -78,8 +79,11 @@
78
79
  },
79
80
  "qa_replacement_patterns": {
80
81
  "query": "query",
81
- "subauth": "entity"
82
+ "subauth": "entity",
83
+ "start_record": "startRecord",
84
+ "requested_records": "maxRecords"
82
85
  },
86
+ "total_count_ldpath": "vivo:count",
83
87
  "results": {
84
88
  "id_ldpath": "loc:lccn ::xsd:string",
85
89
  "label_ldpath": "madsrdf:authoritativeLabel ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "loc": "http://id.loc.gov/vocabulary/identifiers/",
5
6
  "madsrdf": "http://www.loc.gov/mads/rdf/v1#",
@@ -78,8 +79,11 @@
78
79
  },
79
80
  "qa_replacement_patterns": {
80
81
  "query": "query",
81
- "subauth": "entity"
82
+ "subauth": "entity",
83
+ "start_record": "startRecord",
84
+ "requested_records": "maxRecords"
82
85
  },
86
+ "total_count_ldpath": "vivo:count",
83
87
  "results": {
84
88
  "id_ldpath": "^madsrdf:identifiesRWO/loc:lccn ::xsd:string",
85
89
  "label_ldpath": "rdfs:label ::xsd:string",
@@ -225,6 +229,13 @@
225
229
  "ldpath": "^madsrdf:identifiesRWO/madsrdf:editorialNote :: xsd:string",
226
230
  "selectable": false,
227
231
  "drillable": false
232
+ },
233
+ {
234
+ "property_label_default": "Authority URI",
235
+ "property_label_i18n": "qa.linked_data.authority.locnames_ld4l_cache.authority_uri",
236
+ "ldpath": "^madsrdf:identifiesRWO :: xsd:string",
237
+ "selectable": false,
238
+ "drillable": false
228
239
  }
229
240
  ]
230
241
  },
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "loc": "http://id.loc.gov/vocabulary/identifiers/",
5
6
  "madsrdf": "http://www.loc.gov/mads/rdf/v1#",
@@ -70,8 +71,11 @@
70
71
  ]
71
72
  },
72
73
  "qa_replacement_patterns": {
73
- "query": "query"
74
+ "query": "query",
75
+ "start_record": "startRecord",
76
+ "requested_records": "maxRecords"
74
77
  },
78
+ "total_count_ldpath": "vivo:count",
75
79
  "results": {
76
80
  "label_ldpath": "skos:prefLabel ::xsd:string",
77
81
  "sort_ldpath": "vivo:rank ::xsd:string"
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "loc": "http://id.loc.gov/vocabulary/identifiers/",
5
6
  "madsrdf": "http://www.loc.gov/mads/rdf/v1#",
@@ -71,8 +72,11 @@
71
72
  },
72
73
  "qa_replacement_patterns": {
73
74
  "query": "query",
74
- "subauth": "entity"
75
+ "subauth": "entity",
76
+ "start_record": "startRecord",
77
+ "requested_records": "maxRecords"
75
78
  },
79
+ "total_count_ldpath": "vivo:count",
76
80
  "results": {
77
81
  "label_ldpath": "madsrdf:authoritativeLabel ::xsd:string",
78
82
  "sort_ldpath": "vivo:rank ::xsd:string"
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "nlmmesh": "http://id.nlm.nih.gov/mesh/vocab#",
5
6
  "vivo": "http://vivoweb.org/ontology/core#"
@@ -66,8 +67,11 @@
66
67
  ]
67
68
  },
68
69
  "qa_replacement_patterns": {
69
- "query": "query"
70
+ "query": "query",
71
+ "start_record": "startRecord",
72
+ "requested_records": "maxRecords"
70
73
  },
74
+ "total_count_ldpath": "vivo:count",
71
75
  "results": {
72
76
  "id_ldpath": "nlmmesh:identifier ::xsd:string",
73
77
  "label_ldpath": "nlmmesh:prefLabel ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "vivo": "http://vivoweb.org/ontology/core#"
5
6
  },
@@ -77,8 +78,11 @@
77
78
  },
78
79
  "qa_replacement_patterns": {
79
80
  "query": "query",
80
- "subauth": "entity"
81
+ "subauth": "entity",
82
+ "start_record": "startRecord",
83
+ "requested_records": "maxRecords"
81
84
  },
85
+ "total_count_ldpath": "vivo:count",
82
86
  "results": {
83
87
  "label_ldpath": "skos:prefLabel ::xsd:string",
84
88
  "sort_ldpath": "vivo:rank ::xsd:string"
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "dcterms": "http://purl.org/dc/terms/",
5
6
  "vivo": "http://vivoweb.org/ontology/core#"
@@ -77,8 +78,11 @@
77
78
  },
78
79
  "qa_replacement_patterns": {
79
80
  "query": "query",
80
- "subauth": "entity"
81
+ "subauth": "entity",
82
+ "start_record": "startRecord",
83
+ "requested_records": "maxRecords"
81
84
  },
85
+ "total_count_ldpath": "vivo:count",
82
86
  "results": {
83
87
  "id_ldpath": "dcterms:identifier ::xsd:string",
84
88
  "label_ldpath": "skos:prefLabel ::xsd:string",
@@ -1,5 +1,6 @@
1
1
  {
2
- "QA_CONFIG_VERSION": "2.1",
2
+ "QA_CONFIG_VERSION": "2.2",
3
+ "service_uri": "http://ld4l.org/ld4l_services/cache",
3
4
  "prefixes": {
4
5
  "vivo": "http://vivoweb.org/ontology/core#"
5
6
  },
@@ -49,8 +50,11 @@
49
50
  },
50
51
  "qa_replacement_patterns": {
51
52
  "query": "query",
52
- "subauth": "entity"
53
+ "subauth": "entity",
54
+ "start_record": "startRecord",
55
+ "requested_records": "maxRecords"
53
56
  },
57
+ "total_count_ldpath": "vivo:count",
54
58
  "results": {
55
59
  "label_ldpath": "skos:prefLabel ::xsd:string",
56
60
  "sort_ldpath": "vivo:rank ::xsd:string"
@@ -0,0 +1,61 @@
1
+ ---
2
+ authority:
3
+ service: ld4l_cache
4
+ context: true
5
+ search:
6
+ -
7
+ query: John Winters
8
+ -
9
+ query: John Winters
10
+ subauth: person
11
+ -
12
+ query: Jacob Winter
13
+ subauth: imprint
14
+ -
15
+ query: Typographia Plantiniana
16
+ subauth: corporate
17
+ -
18
+ query: Joannes Philippus de Lignamine
19
+ subauth: person
20
+ position: 1
21
+ subject_uri: "http://thesaurus.cerl.org/record/cnp00372755"
22
+ replacements:
23
+ maxRecords: '8'
24
+ -
25
+ query: Joannes Philippus de Lignamine
26
+ subauth: person
27
+ position: 2
28
+ subject_uri: "http://thesaurus.cerl.org/record/cnp00895966"
29
+ replacements:
30
+ maxRecords: '8'
31
+ -
32
+ query: Jacob Winter
33
+ subauth: person
34
+ position: 2
35
+ subject_uri: "http://thesaurus.cerl.org/record/cnp02081773"
36
+ replacements:
37
+ maxRecords: '8'
38
+ -
39
+ query: Jacob Winter
40
+ subauth: imprint
41
+ position: 4
42
+ subject_uri: "http://thesaurus.cerl.org/record/cni00081233"
43
+ replacements:
44
+ maxRecords: '8'
45
+ -
46
+ query: Plantin
47
+ subauth: imprint
48
+ position: 1
49
+ subject_uri: "http://thesaurus.cerl.org/record/cni00007649"
50
+ replacements:
51
+ maxRecords: '8'
52
+ -
53
+ query: Typographia Plantiniana
54
+ subauth: corporate
55
+ position: 1
56
+ subject_uri: "http://thesaurus.cerl.org/record/cnc00011608"
57
+ replacements:
58
+ maxRecords: '8'
59
+ term:
60
+ -
61
+ identifier: "http://thesaurus.cerl.org/record/cnp00895966"
@@ -6,4 +6,4 @@ search:
6
6
  query: Ithaca
7
7
  term:
8
8
  -
9
- identifier: 'http://sws.geonames.org/261707/'
9
+ identifier: 'https://sws.geonames.org/261707/'
@@ -0,0 +1,14 @@
1
+ class AddDateColumnToScenarioRunHistory < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ add_column :scenario_run_history, :date, :date
4
+ add_index :scenario_run_history, :date
5
+
6
+ begin
7
+ QaServer::ScenarioRunHistory.all.each do |entry|
8
+ registry = QaServer::ScenarioRunRegistry.find(entry.scenario_run_registry_id)
9
+ entry.date = registry.dt_stamp.to_date
10
+ entry.save
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module QaServer
3
- VERSION = '6.0.0'
3
+ VERSION = '6.1.0'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qa_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - E. Lynette Rayle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-13 00:00:00.000000000 Z
11
+ date: 2020-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -410,6 +410,7 @@ files:
410
410
  - lib/generators/qa_server/templates/config/authorities/linked_data/DISABLED/scenarios/mesh_bioportal_ld4l_cache_validation.yml
411
411
  - lib/generators/qa_server/templates/config/authorities/linked_data/agrovoc_direct.json
412
412
  - lib/generators/qa_server/templates/config/authorities/linked_data/agrovoc_ld4l_cache.json
413
+ - lib/generators/qa_server/templates/config/authorities/linked_data/cerl_ld4l_cache.json
413
414
  - lib/generators/qa_server/templates/config/authorities/linked_data/dbpedia_direct.json
414
415
  - lib/generators/qa_server/templates/config/authorities/linked_data/dbpedia_ld4l_cache.json
415
416
  - lib/generators/qa_server/templates/config/authorities/linked_data/geonames_direct.json
@@ -432,7 +433,7 @@ files:
432
433
  - lib/generators/qa_server/templates/config/authorities/linked_data/rda_registry_ld4l_cache.json
433
434
  - lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/agrovoc_direct_validation.yml
434
435
  - lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/agrovoc_ld4l_cache_validation.yml
435
- - lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/cerl_ld4_cache_validation.yml
436
+ - lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/cerl_ld4l_cache_validation.yml
436
437
  - lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/dbpedia_direct_validation.yml
437
438
  - lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/dbpedia_ld4l_cache_validation.yml
438
439
  - lib/generators/qa_server/templates/config/authorities/linked_data/scenarios/geonames_direct_validation.yml
@@ -468,6 +469,7 @@ files:
468
469
  - lib/generators/qa_server/templates/db/migrate/20180809045552_add_indices_to_scenario_run_history.rb.erb
469
470
  - lib/generators/qa_server/templates/db/migrate/20190813045549_create_performance_history.rb.erb
470
471
  - lib/generators/qa_server/templates/db/migrate/20191007134527_update_performance_history_table.rb.erb
472
+ - lib/generators/qa_server/templates/db/migrate/20200213160549_add_date_column_to_scenario_run_history.rb.erb
471
473
  - lib/generators/qa_server/templates/qa_server.scss
472
474
  - lib/qa_server.rb
473
475
  - lib/qa_server/configuration.rb
@@ -1,51 +0,0 @@
1
- authority:
2
- service: ld4_cache
3
- context: true
4
-
5
- -
6
- query: Joannes Philippus de Lignamine
7
- subauth: person
8
- position: 1
9
- subject_uri: “http://thesaurus.cerl.org/record/cnp00372755”
10
- replacements:
11
- maxRecords: '8'
12
-
13
- -
14
- query: Joannes Philippus de Lignamine
15
- subauth: person
16
- position: 2
17
- subject_uri: “http://thesaurus.cerl.org/record/cnp00895966”
18
- replacements:
19
- maxRecords: '8'
20
- -
21
- query: Jacob Winter
22
- subauth: person
23
- position: 2
24
- subject_uri: “http://thesaurus.cerl.org/record/cnp02081773”
25
- replacements:
26
- maxRecords: '8'
27
-
28
- -
29
- query: Jacob Winter
30
- subauth: imprint
31
- position: 4
32
- subject_uri: “http://thesaurus.cerl.org/record/cni00081233”
33
- replacements:
34
- maxRecords: '8'
35
- -
36
- query: Plantin
37
- subauth: imprint
38
- position: 1
39
- subject_uri: “http://thesaurus.cerl.org/record/cni00007649”
40
- replacements:
41
- maxRecords: '8'
42
-
43
-
44
-
45
- -
46
- query: Typographia Plantiniana
47
- subauth: corporate_body
48
- position: 1
49
- subject_uri: “http://thesaurus.cerl.org/record/cnc00011608”
50
- replacements:
51
- maxRecords: '8'