solr_ead 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzBlY2QzY2Y2MzdlNDhjNDg3NjRjOWJkOWNkNWUyNzZkM2M2OWYwMw==
4
+ ZDQzY2IzYzhhODUxZTg0NTk0Njk1YzczN2U2ZWY1NGM0OTVhNTAwOA==
5
5
  data.tar.gz: !binary |-
6
- MWYzMjQ0YTc1NDRiZmNmZTg2MTBlZWE1YmE0YzA1OTJhMzM5Yzg2OA==
6
+ MzIyMzM2N2U3MDkwMjJjNDc0MmZkZTJjNzJhZmFmY2FhMWQzNjRmYg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Yzk1ZWI5NTE4ZWE4ZDUzNGU5ZGQ4MWFjOTQxNDViZjc3OWY1MThmNjM5NmQ0
10
- NTY4YjQ0YzYxYmNlOTlmMjhkNDE3YjczY2ZlMmNhN2E1NGFiYzQxMGEzMjA1
11
- MWU0OTc1ZDJlNmI0ODk0MTVmYzNhMjJiNjg2MGFkMTI4NjJiN2E=
9
+ ZWMwYTZiYjdlNzY0YjU0YWUwN2FhYjljYzEwOTcyOGExYTVlMjY5MmUzODlh
10
+ NjFlMzAxZWIwNDkwNzYyYzJkOGYxMDJmZjA1MWRjZGZlYzE5ZTQ2NzQyODFh
11
+ Mzc5MDAwNTJmYjljMzM0ZDQ0YWUzMGQ2ZmIyYzJhNTk2MGMwMDA=
12
12
  data.tar.gz: !binary |-
13
- Njg0MTY0Y2Q0YTQxMzViZmUwNTY3MzkwNjEwMTNlMjJlODZlYjE1ZWVlZWMy
14
- ODZlNzMzZDM4YjhiZjg3NWIwNWY0Zjk2OTc4NGZmNzQ4OGM0MjUwNjI3ODZm
15
- YWQxZDc3ZjQ4ZGVjM2ZhZWRkMmVjNjEwNjczM2Q5ODIxYmEzOTY=
13
+ MmQzNjA0NzdjYzA5MDkyMTI3MGNkMjFlZDEyMDQzZTVhYmFjMTc0NDc3ODk4
14
+ NjQwMmEyZjUzMTVhZDZhMzZlMmQ3ZjY0ZThjNmUxMDgxMjMxMjRhZTQ1YmIy
15
+ YjNlOGExYjM3ZTEyNDdhYmI4ODUwMjgxMDllOTcxNTFkOGIxNDk=
@@ -47,13 +47,14 @@ module SolrEad::Behaviors
47
47
  # The solr fields returned by this method are:
48
48
  #
49
49
  # id:: Unique identifier using the id attribute and the <eadid>
50
- # ead_id:: The <eadid> node of the ead. This is so we know which ead this component belongs to.
51
- # parent_id:: The id attribute of the parent <c> node
52
- # parent_id_s:: Array of all the parent component ids for a given component.
53
- # parent_unittitles_display:: Array of title fields for all the parent components of a given component.
54
- # component_level_i:: numeric level of the component
55
- # component_children_b:: Boolean field indicating whether or not the component has any child <c> nodes attached to it
56
- # collection_facet:: Title field of the ead document so we can facet on all components in a collection
50
+ # ead_ssi:: The <eadid> node of the ead. This is so we know which ead this component belongs to.
51
+ # parent_ssi:: The id attribute of the parent <c> node
52
+ # parent_ssm:: Array of all the parent component ids for a given component.
53
+ # parent_unittitles_ssm:: Array of title fields for all the parent components of a given component.
54
+ # parent_unittitles_teim:: Same as above but indexed
55
+ # component_level_ii:: numeric level of the component
56
+ # component_children_bsi:: Boolean field indicating whether or not the component has any child <c> nodes attached to it
57
+ # collection_sim:: Title field of the ead document so we can facet on all components in a collection
57
58
  #
58
59
  # These fields are used so that we may reconstruct placement of a single component
59
60
  # within the hierarchy of the original ead.
@@ -63,6 +64,7 @@ module SolrEad::Behaviors
63
64
  addl_fields[Solrizer.solr_name("parent", :stored_sortable)] = node.parent.attr("id") unless node.parent.attr("id").nil?
64
65
  addl_fields[Solrizer.solr_name("parent", :displayable)] = parent_id_list(node)
65
66
  addl_fields[Solrizer.solr_name("parent_unittitles", :displayable)] = parent_unittitle_list(node)
67
+ addl_fields[Solrizer.solr_name("parent_unittitles", :searchable)] = parent_unittitle_list(node)
66
68
  addl_fields[Solrizer.solr_name("component_level", :type => :integer)] = parent_id_list(node).length + 1
67
69
  addl_fields[Solrizer.solr_name("component_children", :type => :boolean)] = component_children?(node)
68
70
  addl_fields[Solrizer.solr_name("collection", :facetable)] = node.xpath("//archdesc/did/unittitle").text
@@ -8,7 +8,6 @@ class SolrEad::Component
8
8
  t.root(:path=>"c")
9
9
  t.ref_(:path=>"/c/@id")
10
10
  t.level(:path=>"/c/@level", :index_as=>[:facetable])
11
-
12
11
  t.title(:path=>"unittitle", :attributes=>{ :type => :none }, :index_as=>[:displayable])
13
12
  t.unitdate(:index_as=>[:displayable])
14
13
 
@@ -21,12 +20,6 @@ class SolrEad::Component
21
20
  t.persname(:index_as=>[:facetable])
22
21
  t.subject(:index_as=>[:facetable])
23
22
 
24
- # These terms are proxied to match with Blacklight's default facets, but otherwise
25
- # you can remove them or rename the above facet terms to match with your solr
26
- # implementation.
27
- t.subject_geo(:proxy=>[:geogname])
28
- t.subject_topic(:proxy=>[:subject])
29
-
30
23
  # Item
31
24
  t.container {
32
25
  t.label(:path => {:attribute=>"label"})
@@ -73,32 +66,11 @@ class SolrEad::Component
73
66
  t.scopecontent_heading(:path=>"scopecontent/head")
74
67
  t.userestrict(:path=>"userestrict/p", :index_as=>[:displayable])
75
68
  t.userestrict_heading(:path=>"userestrict/head")
76
-
77
- # <odd> nodes
78
- # These guys depend on what's in <head> so we do some xpathy stuff...
79
- t.note(:path=>'odd[./head="General note"]/p', :index_as=>[:displayable])
80
- t.accession(:path=>'odd[./head[starts-with(.,"Museum Accession")]]/p', :index_as=>[:displayable])
81
- t.print_run(:path=>'odd[./head[starts-with(.,"Limited")]]/p', :index_as=>[:displayable])
82
-
83
69
  end
84
70
 
85
71
  def to_solr(solr_doc = Hash.new)
86
72
  super(solr_doc)
87
- Solrizer.insert_field(solr_doc, "format", "Archival Item", :facetable)
88
- heading = get_heading solr_doc[Solrizer.solr_name("parent_unittitles", :displayable)]
89
- Solrizer.insert_field(solr_doc, "heading", heading, :displayable) unless heading.nil?
90
73
  Solrizer.insert_field(solr_doc, "ref", self.ref.first.strip, :stored_sortable)
91
74
  end
92
75
 
93
- protected
94
-
95
- def get_heading parent_titles = Array.new
96
- return nil if parent_titles.nil?
97
- if parent_titles.length > 0
98
- [parent_titles, self.title.first].join(" >> ")
99
- else
100
- self.title.first
101
- end
102
- end
103
-
104
76
  end
@@ -7,22 +7,7 @@ class SolrEad::Document
7
7
  # Define each term in your ead that you want put into the solr document
8
8
  set_terminology do |t|
9
9
  t.root(:path=>"ead")
10
-
11
10
  t.eadid
12
- t.corpname(:index_as=>[:facetable])
13
- t.famname(:index_as=>[:facetable])
14
- t.genreform(:index_as=>[:facetable])
15
- t.geogname(:index_as=>[:facetable])
16
- t.name(:index_as=>[:facetable])
17
- t.persname(:index_as=>[:facetable])
18
- t.subject(:index_as=>[:facetable])
19
-
20
- # These terms are proxied to match with Blacklight's default facets, but otherwise
21
- # you can remove them or rename the above facet terms to match with your solr
22
- # implementation.
23
- t.subject_geo(:proxy=>[:geogname])
24
- t.subject_topic(:proxy=>[:subject])
25
-
26
11
  t.title(:path=>"archdesc/did/unittitle", :index_as=>[:searchable, :displayable])
27
12
  t.title_filing(:path=>"titleproper", :attributes=>{ :type => "filing" }, :index_as=>[:sortable])
28
13
  t.title_num(:path=>"archdesc/did/unitid")
@@ -34,9 +19,16 @@ class SolrEad::Document
34
19
  t.langcode(:path=>"did/langmaterial/language/@langcode")
35
20
  t.abstract(:path=>"archdesc/did/abstract", :index_as=>[:searchable])
36
21
 
22
+ # Facets
23
+ t.corpname(:index_as=>[:facetable])
24
+ t.famname(:index_as=>[:facetable])
25
+ t.genreform(:index_as=>[:facetable])
26
+ t.geogname(:index_as=>[:facetable])
27
+ t.name(:index_as=>[:facetable])
28
+ t.persname(:index_as=>[:facetable])
29
+ t.subject(:index_as=>[:facetable])
37
30
  t.collection(:proxy=>[:title], :index_as=>[:facetable])
38
31
 
39
-
40
32
  # General field available within archdesc
41
33
  t.accessrestrict(:path=>"archdesc/accessrestrict/p", :index_as=>[:searchable])
42
34
  t.accessrestrict_heading(:path=>"archdesc/accessrestrict/head", :index_as=>[:displayable])
@@ -77,13 +69,8 @@ class SolrEad::Document
77
69
 
78
70
  def to_solr(solr_doc = Hash.new)
79
71
  super(solr_doc)
80
- solr_doc.merge!({"id" => self.eadid.first.strip})
81
- Solrizer.insert_field(solr_doc, "format", "Archival Collection", :facetable)
72
+ solr_doc.merge!({"id" => self.eadid.first.strip})
82
73
  Solrizer.insert_field(solr_doc, "ead", self.eadid.first.strip, :stored_sortable)
83
- unless self.title_num.empty?
84
- heading = "Guide to the " + self.title.first + " (" + self.title_num.first + ")"
85
- Solrizer.insert_field(solr_doc, "heading", heading, :displayable)
86
- end
87
74
  return solr_doc
88
75
  end
89
76
 
@@ -1,3 +1,3 @@
1
1
  module SolrEad
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -14,8 +14,8 @@ describe SolrEad::Component do
14
14
  before :each do
15
15
  additional_fields = {
16
16
  "id" => "TEST-0001ref010",
17
- Solrizer.solr_name("ead", :stored_sortable) => "TEST-0001",
18
- Solrizer.solr_name("parent", :stored_sortable) => "ref001",
17
+ Solrizer.solr_name("ead", :stored_sortable) => "TEST-0001",
18
+ Solrizer.solr_name("parent", :stored_sortable) => "ref001",
19
19
  Solrizer.solr_name("parent", :displayable) => ["ref001", "ref002", "ref003"],
20
20
  Solrizer.solr_name("parent_unittitles", :displayable) => ["Series I", "Subseries A", "Subseries 1"],
21
21
  Solrizer.solr_name("component_children", :type => :boolean) => FALSE
@@ -26,7 +26,6 @@ describe SolrEad::Component do
26
26
  it "should accept additional fields from a hash" do
27
27
  @solr_doc["id"].should == "TEST-0001ref010"
28
28
  @solr_doc[Solrizer.solr_name("level", :facetable)].should include "item"
29
- @solr_doc[Solrizer.solr_name("heading", :displayable)].first.should == "Series I >> Subseries A >> Subseries 1 >> Internal Revenue Service Form Information Return [RESTRICTED]"
30
29
  @solr_doc[Solrizer.solr_name("accessrestrict", :displayable)].first.should match /^This item .* is available.$/
31
30
  end
32
31
 
@@ -38,9 +37,9 @@ describe SolrEad::Component do
38
37
 
39
38
  it "should format heading_display with only one element" do
40
39
  additional_fields = {
41
- "id" => "TEST-0001ref010",
42
- Solrizer.solr_name("ead", :stored_sortable) => "TEST-0001",
43
- Solrizer.solr_name("parent", :stored_sortable) => "ref001",
40
+ "id" => "TEST-0001ref010",
41
+ Solrizer.solr_name("ead", :stored_sortable) => "TEST-0001",
42
+ Solrizer.solr_name("parent", :stored_sortable) => "ref001",
44
43
  Solrizer.solr_name("parent", :displayable) => ["ref001", "ref002", "ref003"],
45
44
  Solrizer.solr_name("parent_unittitles", :displayable) => [],
46
45
  Solrizer.solr_name("component_children", :type => :boolean) => FALSE
@@ -48,7 +47,6 @@ describe SolrEad::Component do
48
47
  solr_doc = @doc.to_solr(additional_fields)
49
48
  solr_doc["id"].should == "TEST-0001ref010"
50
49
  solr_doc[Solrizer.solr_name("level", :facetable)].should include "item"
51
- solr_doc[Solrizer.solr_name("heading", :displayable)].first.should == "Internal Revenue Service Form Information Return [RESTRICTED]"
52
50
  solr_doc[Solrizer.solr_name("accessrestrict", :displayable)].first.should match /^This item .* is available.$/
53
51
  end
54
52
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solr_ead
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Wead
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-01 00:00:00.000000000 Z
11
+ date: 2013-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: om