solr_mapper 0.1.5 → 0.1.6

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.
data/README.rdoc CHANGED
@@ -30,7 +30,14 @@ gem install solr_mapper
30
30
 
31
31
  class Thing
32
32
  include SolrDocument
33
- @base_url = 'http://localhost:8080/solr/thing'
33
+
34
+ # base urls can also be defined by rails environments
35
+ @base_url = {
36
+ :development => 'http://somehost/solr_thing',
37
+ :test => 'http://localhost:8080/solr_thing',
38
+ :production => 'http://somehost/solr_thing'
39
+ }
40
+
34
41
  @per_page = 10
35
42
 
36
43
  has_many :stuffs
@@ -89,7 +96,6 @@ gem install solr_mapper
89
96
  # deletes reference and destroys stuff from index
90
97
  Thing.find(2).stuffs.destroy(stuff)
91
98
 
92
-
93
99
  == Copyright
94
100
 
95
101
  Copyright 2010 The Skunkworx.
data/Rakefile CHANGED
@@ -16,7 +16,7 @@ require 'rubygems'
16
16
  require 'rake'
17
17
  require 'echoe'
18
18
 
19
- Echoe.new('solr_mapper', '0.1.5') do |p|
19
+ Echoe.new('solr_mapper', '0.1.6') do |p|
20
20
  p.description = "Object Document Mapper for the Apache Foundation's Solr search platform"
21
21
  p.url = "http://github.com/skunkworx/solr_mapper"
22
22
  p.author = "Chris Umbel"
data/lib/solr_mapper.rb CHANGED
@@ -20,6 +20,7 @@ require 'rest_client'
20
20
  require 'builder'
21
21
  require 'will_paginate'
22
22
  require 'active_support/inflector'
23
+ require 'active_support/hash_with_indifferent_access'
23
24
 
24
25
  include ActiveSupport::Inflector
25
26
 
@@ -47,7 +47,14 @@ module SolrMapper
47
47
  qs = build_qs(opts)
48
48
  qs = '?' + qs unless qs.empty?
49
49
 
50
- URI::escape("#{base_url}/#{path}#{qs}")
50
+ if self.base_url.kind_of?(Hash) && ENV['RAILS_ENV']
51
+ self.base_url = ActiveSupport::HashWithIndifferentAccess.new(self.base_url) unless self.base_url.kind_of?(ActiveSupport::HashWithIndifferentAccess)
52
+ base = self.base_url[ENV['RAILS_ENV']]
53
+ else
54
+ base = base_url
55
+ end
56
+
57
+ URI::escape("#{base}/#{path}#{qs}")
51
58
  end
52
59
 
53
60
  # create a querystring from a hash
data/solr_mapper.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{solr_mapper}
5
- s.version = "0.1.5"
5
+ s.version = "0.1.6"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Chris Umbel"]
data/spec/url_spec.rb CHANGED
@@ -32,5 +32,34 @@ describe SolrDocument do
32
32
  Thing.build_url("update").should == "#{Thing.base_url}/update"
33
33
  end
34
34
 
35
+ it "should build URLs accepting hashes for the environment" do
36
+ ENV['RAILS_ENV'] = 'test'
37
+
38
+ class AnotherThing
39
+ include SolrDocument
40
+ @base_url = {
41
+ :development => 'http://somehost/solr_thing',
42
+ :test => 'http://localhost:8080/solr_thing',
43
+ :production => 'http://somehost/solr_thing'
44
+ }
45
+ end
46
+
47
+ AnotherThing.build_url('select').should == 'http://localhost:8080/solr_thing/select'
48
+ end
49
+
50
+ it "should build URLs accepting hashes for the environment via string keys" do
51
+ ENV['RAILS_ENV'] = 'test'
52
+
53
+ class AnotherThing
54
+ include SolrDocument
55
+ @base_url = {
56
+ 'development' => 'http://somehost/solr_thing',
57
+ 'test' => 'http://localhost:8080/solr_thing',
58
+ 'production' => 'http://somehost/solr_thing'
59
+ }
60
+ end
61
+
62
+ AnotherThing.build_url('select').should == 'http://localhost:8080/solr_thing/select'
63
+ end
35
64
  end
36
65
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solr_mapper
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 5
10
- version: 0.1.5
9
+ - 6
10
+ version: 0.1.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Umbel