om 3.0.7 → 3.1.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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a06b8c699f06fb0cb851e7b4e66110738a00cf7
4
- data.tar.gz: 36671447b086cdb74d25ac39cf50d35573a94c72
3
+ metadata.gz: 774ca56c42282c5d31bef07b86d7f6e5e54d74b7
4
+ data.tar.gz: bcf4d74285aa0283c8c4a926e988b5444f0706ae
5
5
  SHA512:
6
- metadata.gz: d159dd3d980dc79f7aed168c4f621941819ce89efca387b50ca34781a119da2490d07fd210e69dadd5e700cc5c8ec66cb0fa8ada329f490330dcf72137d4d0eb
7
- data.tar.gz: c388b9688995e643be94e472e804daf31e227d69746fd65c10cfd09ab824fdf1fd4426912eba5beaaca4137066f1faae097268c8ce239553bfc661bcb22dad47
6
+ metadata.gz: 8c277df99dae62c250a6747bd05f68aa058477ccec12c03861818880e2ce828f20e21a1203bda0204d088830ecf59b9769caba20929fd0643bd3d28362c38091
7
+ data.tar.gz: d145e98cd6c1387c58b6c98715d502b5bdb30e970050f0ab75c52c1c7fdb00b23ee83f09fdcf1c70565bd5fb6aecd3ab1794bc86b59d83dc0a2aaa1ed7a0d1a4
@@ -1,6 +1,7 @@
1
1
  rvm:
2
2
  - 1.9.3
3
3
  - 2.0.0
4
+ - 2.1.1
4
5
 
5
6
  gemfile:
6
7
  - gemfiles/gemfile.rails3
@@ -8,3 +9,7 @@ gemfile:
8
9
 
9
10
  notifications:
10
11
  irc: "irc.freenode.org#projecthydra"
12
+
13
+ env:
14
+ global:
15
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
@@ -1,3 +1,17 @@
1
+ h3. 3.1.0 (17 Jul 2014)
2
+ 2014-07-17: Bump solrizer version to ~> 3.3 [Justin Coyne]
3
+
4
+ 2014-07-17: Use the system libxml2 on travis [Justin Coyne]
5
+
6
+ 2014-07-17: Remove dependency on mediashelf-loggable [Justin Coyne]
7
+
8
+ 2014-06-13: Setting values on a proxy term should build the parent terms if they
9
+ don't exist [Justin Coyne]
10
+
11
+ 2014-06-05: Handle invalid time for Rails 3 [Justin Coyne]
12
+
13
+ 2014-06-02: Updating solrizer, correcting rspec deprecations [Adam Wead]
14
+
1
15
  h3. 3.0.1 (25 Jun 2013)
2
16
  Fix bug where values that were the same as the existing values were
3
17
  removed from the update list
data/lib/om.rb CHANGED
@@ -1,69 +1,73 @@
1
1
  require 'rubygems'
2
2
  require 'active_model'
3
- require 'deprecation'
4
3
  require 'nokogiri'
4
+ require 'active_support/core_ext/module/attribute_accessors'
5
5
 
6
6
  module OM
7
- # Recursively changes any strings beginning with : to symbols and any number strings to integers
8
- # @param [String, Array, Hash] params
9
- # @example
10
- # [{":person"=>"0"}, ":last_name"] #=> [{:person=>0}, :last_name]
11
- def self.destringify(params)
12
- case params
13
- when String
14
- if params == "0" || params.to_i != 0
15
- result = params.to_i
16
- elsif params[0,1] == ":"
17
- result = params.sub(":","").to_sym
7
+ mattr_accessor :logger
8
+
9
+ class << self
10
+ # Recursively changes any strings beginning with : to symbols and any number strings to integers
11
+ # @param [String, Array, Hash] params
12
+ # @example
13
+ # [{":person"=>"0"}, ":last_name"] #=> [{:person=>0}, :last_name]
14
+ def destringify(params)
15
+ case params
16
+ when String
17
+ if params == "0" || params.to_i != 0
18
+ result = params.to_i
19
+ elsif params[0,1] == ":"
20
+ result = params.sub(":","").to_sym
21
+ else
22
+ result = params.to_sym
23
+ end
24
+ return result
25
+ when Hash
26
+ result = {}
27
+ params.each_pair do |k,v|
28
+ result[ destringify(k) ] = destringify(v)
29
+ end
30
+ return result
31
+ when Array
32
+ result = []
33
+ params.each do |x|
34
+ result << destringify(x)
35
+ end
36
+ return result
18
37
  else
19
- result = params.to_sym
20
- end
21
- return result
22
- when Hash
23
- result = {}
24
- params.each_pair do |k,v|
25
- result[ destringify(k) ] = destringify(v)
38
+ return params
26
39
  end
27
- return result
28
- when Array
29
- result = []
30
- params.each do |x|
31
- result << destringify(x)
32
- end
33
- return result
34
- else
35
- return params
36
40
  end
37
- end
38
-
39
- # Convert a Term pointer into a flat array without Hashes.
40
- # If include_indices is set to false, node indices will be removed.
41
- #
42
- # @param [Array] pointers array that you would pass into other Accessor methods
43
- # @param [Boolean] include_indices (default: true) if set to false, parent indices will be excluded from the array
44
- # @example Turn a pointer into a flat array with node indices preserved
45
- # OM.pointers_to_flat_array( [{:conference=>0}, {:role=>1}, :text] )
46
- # => [:conference, 0, :role, 1, :text]
47
- # @example Remove node indices by setting include_indices to false
48
- # OM.pointers_to_flat_array( [{:conference=>0}, {:role=>1}, :text], false )
49
- # => [:conference, :role, :text]
50
- def self.pointers_to_flat_array(pointers, include_indices=true)
51
- flat_array = []
52
- pointers.each do |pointer|
53
- if pointer.kind_of?(Hash)
54
- flat_array << pointer.keys.first
55
- if include_indices
56
- flat_array << pointer.values.first
41
+
42
+ # Convert a Term pointer into a flat array without Hashes.
43
+ # If include_indices is set to false, node indices will be removed.
44
+ #
45
+ # @param [Array] pointers array that you would pass into other Accessor methods
46
+ # @param [Boolean] include_indices (default: true) if set to false, parent indices will be excluded from the array
47
+ # @example Turn a pointer into a flat array with node indices preserved
48
+ # OM.pointers_to_flat_array( [{:conference=>0}, {:role=>1}, :text] )
49
+ # => [:conference, 0, :role, 1, :text]
50
+ # @example Remove node indices by setting include_indices to false
51
+ # OM.pointers_to_flat_array( [{:conference=>0}, {:role=>1}, :text], false )
52
+ # => [:conference, :role, :text]
53
+ def pointers_to_flat_array(pointers, include_indices=true)
54
+ flat_array = []
55
+ pointers.each do |pointer|
56
+ if pointer.kind_of?(Hash)
57
+ flat_array << pointer.keys.first
58
+ if include_indices
59
+ flat_array << pointer.values.first
60
+ end
61
+ else
62
+ flat_array << pointer
57
63
  end
58
- else
59
- flat_array << pointer
60
64
  end
65
+ return flat_array
61
66
  end
62
- return flat_array
63
- end
64
67
 
65
- def self.version
66
- Om::VERSION
68
+ def version
69
+ Om::VERSION
70
+ end
67
71
  end
68
72
 
69
73
  class TypeMismatch < StandardError; end
@@ -1,3 +1,3 @@
1
1
  module Om
2
- VERSION = "3.0.7"
2
+ VERSION = "3.1.0"
3
3
  end
@@ -1,5 +1,4 @@
1
1
  require "open-uri"
2
- require "logger"
3
2
 
4
3
  class OM::XML::ParentNodeNotFoundError < RuntimeError; end
5
4
  module OM::XML::TermValueOperators
@@ -13,7 +12,7 @@ module OM::XML::TermValueOperators
13
12
  find_by_terms(*term_pointer).each {|node| result << (trim_text ? node.text.strip : node.text) }
14
13
 
15
14
  if term_pointer.length == 1 && term_pointer.first.kind_of?(String)
16
- logger.warn "Passing a xpath to term_values means that OM can not properly find the associated term. Pass a term pointer instead."
15
+ OM.logger.warn "Passing a xpath to term_values means that OM can not properly find the associated term. Pass a term pointer instead." if OM.logger
17
16
  result
18
17
  else
19
18
  term = self.class.terminology.retrieve_term(*OM.pointers_to_flat_array(OM.destringify(term_pointer), false))
@@ -1,6 +1,4 @@
1
- require 'loggable'
2
1
  module OM::XML::TermXpathGenerator
3
- include Loggable
4
2
 
5
3
  # Generate relative xpath for a term
6
4
  # @param [OM::XML::Term] term that you want to generate relative xpath for
@@ -168,7 +166,7 @@ module OM::XML::TermXpathGenerator
168
166
  # If we've encountered a NamedTermProxy, insert path sections corresponding to each entry in its proxy_pointer (rather than just the final term that it points to).
169
167
  # TODO Looks like this only works if the last key is a NamedTermProxy, what if we cross proxies on the way there?
170
168
  if term.kind_of? OM::XML::NamedTermProxy
171
- logger.warn "You attempted to call an index value of #{index} on the term \"#{k.inspect}\". However \"#{k.inspect}\" is a proxy so we are ignoring the index. See https://jira.duraspace.org/browse/HYDRA-643" if index
169
+ OM.logger.warn "You attempted to call an index value of #{index} on the term \"#{k.inspect}\". However \"#{k.inspect}\" is a proxy so we are ignoring the index. See https://jira.duraspace.org/browse/HYDRA-643" if index && OM.logger
172
170
  current_location = term.parent.nil? ? term.terminology : term.parent
173
171
  relative_path = ""
174
172
  term.proxy_pointer.each_with_index do |proxy_pointer, proxy_pointer_index|
data/om.gemspec CHANGED
@@ -16,10 +16,8 @@ Gem::Specification.new do |s|
16
16
 
17
17
  s.add_dependency 'activesupport'
18
18
  s.add_dependency 'activemodel'
19
- s.add_dependency 'solrizer', '~> 3.1.0'
19
+ s.add_dependency 'solrizer', '~> 3.3'
20
20
  s.add_dependency('nokogiri', ">= 1.4.2")
21
- s.add_dependency('mediashelf-loggable')
22
- s.add_dependency('deprecation')
23
21
  s.add_development_dependency "rspec", "~> 2.0"
24
22
  s.add_development_dependency "rake"
25
23
  s.add_development_dependency "yard"
@@ -10,6 +10,9 @@ require 'om'
10
10
  require 'rspec'
11
11
  require 'equivalent-xml/rspec_matchers'
12
12
  require 'samples'
13
+ require 'logger'
14
+
15
+ OM.logger = Logger.new(STDERR)
13
16
 
14
17
  RSpec.configure do |config|
15
18
  end
@@ -149,13 +149,13 @@ describe "OM::XML::Document" do
149
149
 
150
150
  describe "node_exists?" do
151
151
  it "should return true if any nodes are found" do
152
- @mods_article.node_exists?( {:person=>1}, :first_name).should be_true
152
+ @mods_article.node_exists?( {:person=>1}, :first_name).should be true
153
153
  end
154
154
  it "should return false if no nodes are found" do
155
- @mods_article.node_exists?( {:person=>8}, :first_name ).should be_false
155
+ @mods_article.node_exists?( {:person=>8}, :first_name ).should be false
156
156
  end
157
157
  it "should support xpath queries" do
158
- @mods_article.node_exists?('//oxns:name[@type="personal"][1]/oxns:namePart[1]').should be_true
158
+ @mods_article.node_exists?('//oxns:name[@type="personal"][1]/oxns:namePart[1]').should be true
159
159
  end
160
160
  end
161
161
 
@@ -2,12 +2,14 @@ require 'spec_helper'
2
2
 
3
3
  describe OM::XML::Term do
4
4
  describe "without a type" do
5
- subject { OM::XML::Term.new(:test_term) }
6
- its (:type) { should == :string }
5
+ it "should default to string" do
6
+ OM::XML::Term.new(:test_term).type.should == :string
7
+ end
7
8
  end
8
9
  describe "when type is specified" do
9
- subject { OM::XML::Term.new(:test_term, :type=>:date)}
10
- its (:type) { should == :date }
10
+ it "should accept date" do
11
+ OM::XML::Term.new(:test_term, :type=>:date).type.should == :date
12
+ end
11
13
  end
12
14
 
13
15
  describe "a big test" do
@@ -195,14 +195,14 @@ describe "OM::XML::Terminology" do
195
195
 
196
196
  describe ".has_term?" do
197
197
  it "should return true if the specified term does exist in the terminology" do
198
- @test_full_terminology.has_term?(:journal,:issue,:end_page).should be_true
198
+ @test_full_terminology.has_term?(:journal,:issue,:end_page).should be true
199
199
  end
200
200
  it "should support term_pointers with array indexes in them (ignoring the indexes)" do
201
- @test_full_terminology.has_term?(:title_info, :main_title).should be_true
202
- @test_full_terminology.has_term?({:title_info=>"0"}, :main_title).should be_true
201
+ @test_full_terminology.has_term?(:title_info, :main_title).should be true
202
+ @test_full_terminology.has_term?({:title_info=>"0"}, :main_title).should be true
203
203
  end
204
204
  it "should return false if the specified term does not exist in the terminology" do
205
- @test_full_terminology.has_term?(:name, :date, :nonexistentTerm, :anotherTermName).should be_false
205
+ @test_full_terminology.has_term?(:name, :date, :nonexistentTerm, :anotherTermName).should be_falsey
206
206
  end
207
207
  end
208
208
 
@@ -69,8 +69,8 @@ describe "OM::XML::Validation" do
69
69
  ValidationTest.send(:file_from_url, "http://google.com")
70
70
  end
71
71
  it "should raise an error if the url is invalid" do
72
- lambda {ValidationTest.send(:file_from_url, "")}.should raise_error(RuntimeError, "Could not retrieve file from . Error: No such file or directory - ")
73
- lambda {ValidationTest.send(:file_from_url, "foo")}.should raise_error(RuntimeError, "Could not retrieve file from foo. Error: No such file or directory - foo")
72
+ lambda {ValidationTest.send(:file_from_url, "")}.should raise_error(RuntimeError, /Could not retrieve file from /)
73
+ lambda {ValidationTest.send(:file_from_url, "foo")}.should raise_error(RuntimeError, /Could not retrieve file from foo/)
74
74
  end
75
75
  it "should raise an error if file retrieval fails" do
76
76
  skip "no internet connection"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: om
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.7
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-13 00:00:00.000000000 Z
12
+ date: 2014-07-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 3.1.0
48
+ version: '3.3'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: 3.1.0
55
+ version: '3.3'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: nokogiri
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -67,34 +67,6 @@ dependencies:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: 1.4.2
70
- - !ruby/object:Gem::Dependency
71
- name: mediashelf-loggable
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :runtime
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: '0'
84
- - !ruby/object:Gem::Dependency
85
- name: deprecation
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
- type: :runtime
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
70
  - !ruby/object:Gem::Dependency
99
71
  name: rspec
100
72
  requirement: !ruby/object:Gem::Requirement