active-fedora 11.4.1 → 11.5.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: ed4b83fd7af3c0f5d229ae8cbb7ecb54db6a14d6
4
- data.tar.gz: 157910b7d13aa69ae54c8a8934668c1aa766af18
3
+ metadata.gz: 92d0034bbac0025de2d37bbc3c2338dfe7845c26
4
+ data.tar.gz: adcd29bb2e0243dc8cb72de4196fda37eddfade4
5
5
  SHA512:
6
- metadata.gz: 162f909e91544aaa3cd25444a603dcc89d294919ed058c30fa35900707d531ab80a2f362fec99ed8c6df8c3e0f3babf2eaba71498ec025bbd2f905633c539b72
7
- data.tar.gz: 3a299f97e7b47258f3b4028caf52741f15979a55f7f498970044eecd51fcbb228e7ac99c00ca0cbfd60ccc2f3a40ce96d3e60ca72ec09cb3228b8ea0a3944186
6
+ metadata.gz: 91406a7de60279f1e5c78d4e99d62eb8357e76c31dd62ac56b854198a7fb980b08ddaa52e003cd7fe225b75936e98cbc16c57b2a911cb8b69934f67ccb44a18a
7
+ data.tar.gz: fad213756426a2855107a96a1a8f95abea32220b1eb283ba67a53deb9842c2284ffd195e499bc731068aac122e55c69f6621b433c0d58cfa01a159b9d0738107
@@ -44,9 +44,23 @@ module ActiveFedora
44
44
  SolrService.instance.conn.get(select_path, params: args)
45
45
  end
46
46
 
47
+ def post(query, args = {})
48
+ args = args.merge(q: query, qt: 'standard')
49
+ SolrService.instance.conn.post(select_path, data: args)
50
+ end
51
+
47
52
  def query(query, args = {})
48
53
  Base.logger.warn "Calling ActiveFedora::SolrService.get without passing an explicit value for ':rows' is not recommended. You will end up with Solr's default (usually set to 10)\nCalled by #{caller[0]}" unless args.key?(:rows)
49
- result = get(query, args)
54
+ method = args.delete(:method) || :get
55
+
56
+ result = case method
57
+ when :get
58
+ get(query, args)
59
+ when :post
60
+ post(query, args)
61
+ else
62
+ raise "Unsupported HTTP method for querying SolrService (#{method.inspect})"
63
+ end
50
64
  result['response']['docs'].map do |doc|
51
65
  ActiveFedora::SolrHit.new(doc)
52
66
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "11.4.1".freeze
2
+ VERSION = "11.5.0".freeze
3
3
  end
@@ -65,14 +65,48 @@ describe ActiveFedora::SolrService do
65
65
  end
66
66
  end
67
67
 
68
+ describe "#post" do
69
+ it "calls solr" do
70
+ stub_result = double("Result")
71
+ expect(mock_conn).to receive(:post).with('select', data: { q: 'querytext', qt: 'standard' }).and_return(stub_result)
72
+ allow(described_class).to receive(:instance).and_return(double("instance", conn: mock_conn))
73
+ expect(described_class.post('querytext')).to eq stub_result
74
+ end
75
+ it "uses select_path" do
76
+ stub_result = double("Result")
77
+ expect(mock_conn).to receive(:post).with('select_test', data: { q: 'querytext', qt: 'standard' }).and_return(stub_result)
78
+ expect(described_class).to receive(:select_path).and_return('select_test')
79
+ allow(described_class).to receive(:instance).and_return(double("instance", conn: mock_conn))
80
+ expect(described_class.post('querytext')).to eq stub_result
81
+ end
82
+ end
83
+
68
84
  describe "#query" do
69
85
  let(:doc) { { 'id' => 'x' } }
70
86
  let(:docs) { [doc] }
71
87
  let(:stub_result) { { 'response' => { 'docs' => docs } } }
88
+
72
89
  before do
73
90
  allow(described_class).to receive(:instance).and_return(double("instance", conn: mock_conn))
74
91
  end
75
92
 
93
+ it "defaults to HTTP GET method" do
94
+ expect(mock_conn).to receive(:get).with('select', params: { rows: 2, q: 'querytext', qt: 'standard' }).and_return(stub_result)
95
+ described_class.query('querytext', rows: 2)
96
+ end
97
+
98
+ it "allows callers to specify HTTP POST method" do
99
+ expect(mock_conn).to receive(:post).with('select', data: { rows: 2, q: 'querytext', qt: 'standard' }).and_return(stub_result)
100
+ described_class.query('querytext', rows: 2, method: :post)
101
+ end
102
+
103
+ it "raises if method not GET or POST" do
104
+ expect(mock_conn).not_to receive(:head).with('select', data: { rows: 2, q: 'querytext', qt: 'standard' })
105
+ expect {
106
+ described_class.query('querytext', rows: 2, method: :head)
107
+ }.to raise_error(RuntimeError, "Unsupported HTTP method for querying SolrService (:head)")
108
+ end
109
+
76
110
  it "wraps the solr response documents in Solr hits" do
77
111
  expect(mock_conn).to receive(:get).with('select', params: { rows: 2, q: 'querytext', qt: 'standard' }).and_return(stub_result)
78
112
  result = described_class.query('querytext', rows: 2)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-fedora
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.4.1
4
+ version: 11.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-10-04 00:00:00.000000000 Z
13
+ date: 2017-10-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rsolr