om 3.0.7 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
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