cul_scv_hydra 0.22.2 → 0.22.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ee69396ec0c96d812e5d7c872e630b66f19a1d9
4
- data.tar.gz: a61e56d4b6ba7251e6ff364e923d18aba5965518
3
+ metadata.gz: 978a755b275967be31524d7f5353f87bb5f8b1f6
4
+ data.tar.gz: 3472e7787729f6d4e55fd342ad02904fa7fcaae4
5
5
  SHA512:
6
- metadata.gz: 4b5d95e704771fc4b9f8c4e2770fd987b67ad1d3df516e6a9707e11c15715307f877284019c5f9246ed5b6023ef908f8bd1a0d9f0acdc98a0981d40f42d9fef6
7
- data.tar.gz: e574854f780642125717df158897824ca0f56f7a17f548c28ff2b7235e35e46aed95686dcdc200599ec046470fd0f863d795ca682151bfcb72abf9a5efba392b
6
+ metadata.gz: 751f9996118553e9750610bd8f03eee3bf5783e5d23b79a78e62e98531700a0796b17afb3af7277780350dddef55ea2aecdae22f4671d2199ab9675e4e504e64
7
+ data.tar.gz: 8e107fea323d41e5ff4b1b87ef54a7e0a9c1d61db2fa3f38a355dec6bdaaf0d7a23f5e4f5c5d3021a282c73faff61d597aad05ad3c9b70549f138122551aee82
@@ -58,23 +58,28 @@ module Cul::Scv::Hydra::Indexer
58
58
  def self.recursively_index_fedora_objects(top_pid, pids_to_omit=nil, skip_generic_resources=false, verbose_output=false)
59
59
 
60
60
  descend_from(top_pid, pids_to_omit, verbose_output) do |pid|
61
+ self.index_pid(pid, skip_generic_resources, verbose_output)
62
+ end
61
63
 
62
- # We found an object with the desired PID. Let's reindex it
63
- begin
64
- active_fedora_object = ActiveFedora::Base.find(pid, :cast => true)
65
-
66
- if skip_generic_resources && active_fedora_object.is_a?(GenericResource)
67
- puts 'Object was skipped because GenericResources are being skipped and it is a GenericResource.'
68
- else
69
- active_fedora_object.update_index
70
- puts 'done.' if verbose_output
71
- end
72
- rescue Exception => e
73
- puts "Encountered problem with #{pid}. Skipping record. Exception: #{e.message}"
74
- end
64
+ end
75
65
 
76
- end
66
+ def self.index_pid(pid, skip_generic_resources=false, verbose_output=false)
67
+ # We found an object with the desired PID. Let's reindex it
68
+ begin
69
+ active_fedora_object = ActiveFedora::Base.find(pid, :cast => true)
77
70
 
71
+ if skip_generic_resources && active_fedora_object.is_a?(GenericResource)
72
+ puts 'Object was skipped because GenericResources are being skipped and it is a GenericResource.'
73
+ else
74
+ active_fedora_object.update_index
75
+ puts 'done.' if verbose_output
76
+ end
77
+ rescue SystemExit, Interrupt => e
78
+ # Allow system interrupt (ctrl+c)
79
+ raise e
80
+ rescue Exception => e
81
+ puts "Encountered problem with #{pid}. Skipping record. Exception: #{e.message}"
82
+ end
78
83
  end
79
84
 
80
85
  end
@@ -5,7 +5,7 @@ module Cul::Scv::Hydra::RisearchMembers
5
5
  recursive_member_query =
6
6
  'select $child $parent from <#ri>
7
7
  where
8
- walk($child <http://purl.oclc.org/NET/CUL/memberOf> <fedora:' + pid + '> and $child <http://purl.oclc.org/NET/CUL/memberOf> $parent)'
8
+ walk($child <http://purl.oclc.org/NET/CUL/memberOf> <fedora:' + pid + '> and $child <http://purl.oclc.org/NET/CUL/memberOf> $parent)'
9
9
 
10
10
  unless cmodel_type == 'all'
11
11
  recursive_member_query += ' and $child <fedora-model:hasModel> $cmodel'
@@ -51,9 +51,42 @@ module Cul::Scv::Hydra::RisearchMembers
51
51
  unique_pids = get_direct_member_results(pid,verbose_output,'json')
52
52
  unique_pids.map{|result| result['pid'].gsub('info:fedora/', '') }.uniq
53
53
  end
54
-
54
+
55
55
  def self.get_direct_member_count(pid, verbose_output=false)
56
56
  count = get_direct_member_results(pid,verbose_output,'count/json')
57
57
  return count.blank? ? 0 : count[0]['count'].to_i
58
58
  end
59
+
60
+
61
+ #Project constituents
62
+
63
+ def self.get_project_constituent_results(pid, verbose_output=false, format='json')
64
+
65
+ project_constituent_query =
66
+ 'select $pid from <#ri>
67
+ where $pid <info:fedora/fedora-system:def/relations-external#isConstituentOf> <fedora:' + pid + '>'
68
+
69
+ puts 'Performing query:' if verbose_output
70
+ puts project_constituent_query if verbose_output
71
+
72
+ search_response = JSON(Cul::Scv::Fedora.repository.find_by_itql(project_constituent_query, {
73
+ :type => 'tuples',
74
+ :format => format,
75
+ :limit => '',
76
+ :stream => 'on'
77
+ }))
78
+
79
+ return search_response['results']
80
+ end
81
+
82
+ def self.get_project_constituent_pids(pid, verbose_output=false)
83
+ unique_pids = get_project_constituent_results(pid,verbose_output,'json')
84
+ unique_pids.map{|result| result['pid'].gsub('info:fedora/', '') }.uniq
85
+ end
86
+
87
+ def self.get_project_constituent_count(pid, verbose_output=false)
88
+ count = get_project_constituent_results(pid,verbose_output,'count/json')
89
+ return count.blank? ? 0 : count[0]['count'].to_i
90
+ end
91
+
59
92
  end
@@ -2,7 +2,7 @@
2
2
  module Cul
3
3
  module Scv
4
4
  module Hydra
5
- VERSION = '0.22.2'
5
+ VERSION = '0.22.3'
6
6
  def self.version
7
7
  VERSION
8
8
  end
@@ -2,7 +2,7 @@
2
2
  module Cul
3
3
  module Scv
4
4
  module Hydra
5
- VERSION = '0.22.1'
5
+ VERSION = '0.22.2'
6
6
  def self.version
7
7
  VERSION
8
8
  end
data/lib/tasks/index.rake CHANGED
@@ -40,6 +40,31 @@ namespace :cul_scv_hydra do
40
40
 
41
41
  end
42
42
 
43
+ task :by_project_pid => :environment do
44
+
45
+ puts '---------------------------'
46
+ puts 'Fedora URL: ' + ActiveFedora.config.credentials[:url]
47
+ puts 'Solr URL: ' + ActiveFedora.solr_config[:url]
48
+ puts '---------------------------'
49
+
50
+ if ENV['PID']
51
+ project_pid = ENV['PID']
52
+ else
53
+ puts 'Please specify a project PID (e.g. PID=cul:123)'
54
+ next
55
+ end
56
+
57
+ START_TIME = Time.now
58
+ pids = Cul::Scv::Hydra::RisearchMembers.get_project_constituent_pids(project_pid, true)
59
+
60
+ puts "Found #{pids.length} project members."
61
+
62
+ pids.each do |pid|
63
+ Cul::Scv::Hydra::Indexer.index_pid(pid, false, false)
64
+ end
65
+
66
+ end
67
+
43
68
  end
44
69
 
45
70
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cul_scv_hydra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.2
4
+ version: 0.22.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Armintor
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-02-18 00:00:00.000000000 Z
12
+ date: 2015-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: blacklight
@@ -481,3 +481,4 @@ signing_key:
481
481
  specification_version: 4
482
482
  summary: ActiveFedora, OM, and Solrizer implementations for CUL Staff Collection Viewer
483
483
  test_files: []
484
+ has_rdoc: