blacklight 3.0pre2 → 3.0.0pre3

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.md ADDED
@@ -0,0 +1,24 @@
1
+ # Blacklight
2
+
3
+ Blacklight is open source discovery software. Libraries (or anyone else) can use Blacklight to enable searching and browsing of their collections online. Blacklight uses the [Apache SOLR](http://lucene.apache.org/solr) search engine to index and search full text and/or metadata, and Blacklight has a highly configurable Ruby on Rails front-end. Blacklight was originally developed at the University of Virginia Library and is made public under an Apache 2.0 license.
4
+
5
+
6
+ ## Documentation, Information and Support
7
+
8
+ * [Project Homepage](http://projectblacklight.org)
9
+ * [Developer Documentation](https://github.com/projectblacklight/blacklight/wiki)
10
+ * [Quickstart Guide](https://github.com/projectblacklight/blacklight/wiki/Blacklight-3.x-Quickstart)
11
+ * [JIRA Issue Tracker](http://jira.projectblacklight.org/jira/secure/Dashboard.jspa)
12
+ * [Support](http://projectblacklight.org/support.html)
13
+
14
+ ## Dependencies
15
+
16
+ * ruby v1.8.7 or higher
17
+ * git
18
+ * java 1.5 or higher
19
+ * access to a command prompt on the machine to install
20
+
21
+ In addition, you must have the Bundler and Rails 3.0 gems installed. Other gem dependencies are defined in the blacklight.gemspec file and will be automatically loaded by Bundler.
22
+
23
+ ## Configuring Apache Solr
24
+ You'll also want some information about how Blacklight expects [Apache SOLR](http://lucene.apache.org/solr ) to run, which you can find in [README_SOLR](https://github.com/projectblacklight/blacklight/wiki/README_SOLR)
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 3.0.0pre3
@@ -12,7 +12,12 @@ module CatalogHelper
12
12
  # from will_paginate?
13
13
  def page_entries_info(collection, options = {})
14
14
  start = (collection.current_page - 1) * collection.per_page + 1
15
- total_hits = @response.total
15
+
16
+ # actual WillPaginate::Collection's have #total_entries. RSolr::Ext::Response
17
+ # has #total instead. We want this to work for both, to do what we want
18
+ # for RSolr, but not break WillPaginate's usual use.
19
+ total_hits = collection.respond_to?(:total_entries) ? collection.total_entries : collection.total
20
+
16
21
  start_num = format_num(start)
17
22
  end_num = format_num(start + collection.size - 1)
18
23
  total_num = format_num(total_hits)
@@ -1,8 +1,8 @@
1
1
  <% if current_user %>
2
2
  <%= link_to "Log Out", destroy_user_session_path %> [<%= link_to current_user, edit_user_registration_path %>]
3
- <% if current_user.last_search_url %>
4
- | <%= link_to('View your last search', catalog_index_path(current_user.last_search_url)) %><% end %> |
5
- <%= link_to 'Your Bookmarks', bookmarks_path %> |
3
+ |
4
+ <%= link_to 'Your Bookmarks', bookmarks_path %>
5
+ |
6
6
  <%= link_to "Saved Searches", saved_searches_path %>
7
7
  <% else %>
8
8
  <%= link_to 'Login', new_user_session_path %>
@@ -0,0 +1,21 @@
1
+ <% # container for a single doc -%>
2
+ <div class="document <%= render_document_class document %>">
3
+
4
+ <% # header bar for doc items in index view -%>
5
+ <div class="documentHeader">
6
+
7
+ <% # bookmark/folder functions for items/docs -%>
8
+ <%= render_index_doc_actions document %>
9
+
10
+ <% # main title container for doc partial view -%>
11
+ <div class="yui-u">
12
+ <h3 class="index_title"><%= document_counter + 1 + @response.params[:start].to_i %>. <%= link_to_document document, :label=>document_show_link_field, :counter => (document_counter + 1 + @response.params[:start].to_i) %></h3>
13
+ </div>
14
+ </div>
15
+
16
+ <% # main container for doc partial view -%>
17
+ <%= render_document_partial document, :index %>
18
+
19
+ <%= render_document_unapi_microformat document %>
20
+
21
+ </div>
@@ -1,30 +1,4 @@
1
1
  <% # container for all documents in index view -%>
2
2
  <div id="documents">
3
-
4
- <% # loop thru each doc -%>
5
- <% @document_list.each_with_index do |document,counter| %>
6
-
7
- <% # container for a single doc -%>
8
- <div class="document <%= render_document_class document %>">
9
-
10
- <% # header bar for doc items in index view -%>
11
- <div class="documentHeader">
12
-
13
- <% # bookmark/folder functions for items/docs -%>
14
- <%= render_index_doc_actions document %>
15
-
16
- <% # main title container for doc partial view -%>
17
- <div class="yui-u">
18
- <h3 class="index_title"><%= counter + 1 + @response.params[:start].to_i %>. <%= link_to_document document, :label=>document_show_link_field, :counter => (counter + 1 + @response.params[:start].to_i) %></h3>
19
- </div>
20
- </div>
21
-
22
- <% # main container for doc partial view -%>
23
- <%= render_document_partial document, :index %>
24
-
25
- <%= render_document_unapi_microformat document %>
26
-
27
- </div>
28
-
29
- <% end %>
3
+ <%= render :partial => 'document', :collection => @document_list, :as => :document %>
30
4
  </div>
@@ -31,7 +31,5 @@
31
31
 
32
32
  <%= render 'results_pagination' %>
33
33
 
34
- <%= render :partial=>'solr_request' %>
35
-
36
34
  <% end %>
37
35
 
@@ -29,9 +29,6 @@
29
29
  </div>
30
30
  </div>
31
31
 
32
- <%= render :partial=>'solr_request' %>
33
-
34
-
35
32
  <% if @document.respond_to?(:export_as_openurl_ctx_kev) %>
36
33
  <!--
37
34
  // COinS, for Zotero among others.
data/blacklight.gemspec CHANGED
@@ -30,10 +30,10 @@ Gem::Specification.new do |s|
30
30
  # Required Gems
31
31
  s.add_dependency "rails", "~> 3.0"
32
32
  s.add_dependency "nokogiri", "~>1.5.0.beta.3" # XML Parser
33
- s.add_dependency "marc" # Marc record parser
34
- s.add_dependency "rsolr", '1.0.0' # Library for interacting with rSolr.
35
- s.add_dependency "rsolr-ext", '1.0.0' # extension to the above for some rails-ish behaviors - currently imbeded in our solr document ojbect.
36
- s.add_dependency "will_paginate", "3.0.pre2" # the pagination (page 1,2,3, etc..) of our search results
33
+ s.add_dependency "marc", "~> 0.3" # Marc record parser
34
+ s.add_dependency "rsolr", '~> 1.0' # Library for interacting with rSolr.
35
+ s.add_dependency "rsolr-ext", '~> 1.0' # extension to the above for some rails-ish behaviors - currently embedded in our solr document ojbect.
36
+ s.add_dependency "will_paginate", "~> 3.0.pre2" # the pagination (page 1,2,3, etc..) of our search results
37
37
 
38
38
 
39
39
  # TESTING GEM REQUIREMENTS
@@ -0,0 +1,51 @@
1
+ Feature:
2
+ In order to develop and extend the Blacklight GEM - I need to ensure that the changes
3
+ I make will still allow all tests to pass in a fresh default installation.
4
+
5
+ Scenario: The Blacklight generator installs devise when given the -d option, and the tests pass
6
+ When I run `rails new test_app`
7
+ And I cd to "test_app"
8
+ And a file named "Gemfile" with:
9
+ """
10
+ source "http://rubygems.org"
11
+ gem 'rails', '>=3.0.4'
12
+ gem 'sqlite3-ruby', :require => 'sqlite3'
13
+ gem 'blacklight', :path => '../../../'
14
+
15
+ # For testing
16
+ group :development, :test do
17
+ gem "rspec"
18
+ gem "rspec-rails", "~>2.5.0"
19
+ gem "cucumber-rails"
20
+ gem "database_cleaner"
21
+ gem "capybara"
22
+ gem "webrat"
23
+ gem "aruba"
24
+ end
25
+
26
+ """
27
+ And I run `bundle install --local`
28
+
29
+ Then the file "app/models/user.rb" should not exist
30
+ And I run `rails generate blacklight -d`
31
+
32
+ # Devise should now be installed.
33
+ Then a file named "app/models/user.rb" should exist
34
+ Then a directory named "app/views/devise" should exist
35
+ Then the file "app/models/user.rb" should contain "devise"
36
+
37
+ # And the user model should be setup with Blacklight
38
+ And the file "app/models/user.rb" should contain "include Blacklight::User"
39
+
40
+ And I run `rake db:migrate`
41
+
42
+ # And I complete the setup for testing
43
+ And I run `rails g cucumber:install`
44
+ And I run `rails generate blacklight:jetty test_jetty -e test`
45
+ Then a directory named "test_jetty" should exist
46
+ And I run `rake solr:marc:index_test_data RAILS_ENV=test`
47
+ And I run `rake blacklight:spec:with_solr`
48
+ Then the output should contain "0 failures"
49
+ And I remove the file "public/index.html"
50
+ And I run `rake blacklight:cucumber:with_solr`
51
+ Then the output should contain "81 passed"
@@ -4,7 +4,7 @@ Feature:
4
4
  I would like to use the blacklight generator.
5
5
 
6
6
  Scenario: The Blacklight generators create all the correct files and file modifications when executed with defaults
7
- When I run "rails new test_app"
7
+ When I run `rails new test_app`
8
8
  And I cd to "test_app"
9
9
  And a file named "Gemfile" with:
10
10
  """
@@ -13,34 +13,32 @@ Feature:
13
13
  gem 'sqlite3-ruby', :require => 'sqlite3'
14
14
  gem 'blacklight', :path => '../../../'
15
15
  """
16
- And I run "bundle install --local"
16
+ And I run `bundle install --local`
17
17
 
18
18
  When I write to "app/models/user.rb" with:
19
19
  """
20
20
  class User < ActiveRecord::Base
21
21
  end
22
22
  """
23
- And I run "rails generate blacklight"
23
+ And I run `rails generate blacklight`
24
24
  Then the following files should exist:
25
25
  | config/initializers/blacklight_config.rb |
26
26
  | config/solr.yml |
27
27
  | public/images/blacklight/bg.png |
28
- | public/javascripts/blacklight.js |
29
- | public/javascripts/jquery-1.4.2.min.js |
30
- | public/javascripts/jquery-ui-1.8.1.custom.min.js |
31
- | public/stylesheets/blacklight.css |
32
- | public/stylesheets/yui.css |
33
- And a directory named "public/stylesheets/jquery" should exist
34
- And the file "app/models/user.rb" should contain "is_blacklight_user"
28
+ | public/javascripts/blacklight/blacklight.js |
29
+ | public/javascripts/blacklight/jquery-1.4.2.min.js |
30
+ | public/javascripts/blacklight/jquery-ui-1.8.1.custom.min.js |
31
+ | public/stylesheets/blacklight/blacklight.css |
32
+ | public/stylesheets/blacklight/yui.css |
33
+ And a directory named "public/stylesheets/blacklight/jquery" should exist
34
+ And the file "app/models/user.rb" should contain "include Blacklight::User"
35
35
 
36
36
  # Devise should next exist in thie scenerio
37
37
  And a directory named "app/views/devise" should not exist
38
38
  And the file "app/models/user.rb" should not contain "devise"
39
39
 
40
-
41
- @really_slow_process
42
- Scenario: The Blacklight generator installs devise when given the -d option
43
- When I run "rails new test_app"
40
+ Scenario: The Blacklight generator functions correctly when specifying an alternate user model
41
+ When I run `rails new test_app`
44
42
  And I cd to "test_app"
45
43
  And a file named "Gemfile" with:
46
44
  """
@@ -48,30 +46,13 @@ Feature:
48
46
  gem 'rails', '>=3.0.4'
49
47
  gem 'sqlite3-ruby', :require => 'sqlite3'
50
48
  gem 'blacklight', :path => '../../../'
51
-
52
- # For testing
53
- gem 'rspec-rails'
54
- gem 'cucumber-rails'
55
- gem 'webrat' # still needed for rspec view tests
56
- gem 'capybara' # used by latest cucumber
57
-
58
49
  """
59
- And I run "bundle install --local"
60
-
61
- Then the file "app/models/user.rb" should not exist
62
- And I run "rails generate blacklight -d"
63
-
64
- # Devise should now be installed.
65
- Then a file named "app/models/user.rb" should exist
66
- Then a directory named "app/views/devise" should exist
67
- Then the file "app/models/user.rb" should contain "devise"
50
+ And I run `bundle install --local`
51
+ And I run `rails generate model person`
52
+ And I run `rails generate blacklight person`
53
+ And the file "app/models/person.rb" should contain "include Blacklight::User"
68
54
 
69
- # And the user model should be setup with Blacklight
70
- And the file "app/models/user.rb" should contain "is_blacklight_user"
55
+ # Devise should not exist in thie scenerio
56
+ And a directory named "app/views/devise" should not exist
57
+ And the file "app/models/person.rb" should not contain "devise"
71
58
 
72
- # And I copy over the rspec and feature tests, just in case I want to test them.
73
- And I run "cp -r ../../../test_app/spec ."
74
- And I run "cp -r ../../../test_app/features ."
75
- And I run "cp ../../../test_app/Rakefile ."
76
- And I run "cp -r ../../../test_app/jetty ."
77
-
@@ -1,9 +1,9 @@
1
1
  require 'aruba/cucumber'
2
2
 
3
3
  Before do
4
- @aruba_timeout_seconds = 30
4
+ @aruba_timeout_seconds = 60
5
5
  end
6
6
 
7
7
  Before ('@really_slow_process') do
8
- @aruba_timeout_seconds = 30
8
+ @aruba_timeout_seconds = 120
9
9
  end
data/lib/blacklight.rb CHANGED
@@ -31,13 +31,6 @@ module Blacklight
31
31
  attr_accessor :solr, :solr_config
32
32
  end
33
33
 
34
- # Just returning a string for the Blacklight version number.
35
- # I've just put master here now, should it say when it's running under master? (Master?)
36
- # We need to find a better way of increasing this number automatically during releases, but this is a good way for now.
37
- def self.version
38
- "2.8.0"
39
- end
40
-
41
34
  # Adding a little jruby support
42
35
  def self.jruby?
43
36
  defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
@@ -316,7 +316,7 @@ module Blacklight::SolrHelper
316
316
  # override any field-specific default in the solr request handler.
317
317
  solr_params[:"f.#{facet_field}.facet.limit"] =
318
318
  if solr_params["facet.limit"]
319
- solr_params["facet.limit"] + 1
319
+ solr_params["facet.limit"].to_i + 1
320
320
  elsif respond_to?(:facet_list_limit)
321
321
  facet_list_limit.to_s.to_i + 1
322
322
  else
@@ -14,11 +14,6 @@ module Blacklight::User
14
14
  # that calls "is_blacklight_user"
15
15
  module InstanceMethods
16
16
 
17
- # fixme: This needs to be re-implemented
18
- def last_search_url
19
- return self.searches.last
20
- end
21
-
22
17
  def has_bookmarks?
23
18
  bookmarks.count > 0
24
19
  end
@@ -1,3 +1,7 @@
1
1
  module Blacklight
2
- VERSION = "3.0pre2"
2
+ def self.version
3
+ @version ||= File.read(File.join(File.dirname(__FILE__), '..', '..', 'VERSION')).chomp
4
+ end
5
+
6
+ VERSION = self.version
3
7
  end
@@ -0,0 +1,69 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ describe CatalogHelper do
3
+ include CatalogHelper
4
+
5
+ def mock_collection args
6
+ current_page = args[:current_page] || 1
7
+ per_page = args[:per_page] || 10
8
+ total = args[:total]
9
+ arr = (1..total).to_a
10
+
11
+ page_results = WillPaginate::Collection.create(current_page, per_page, total) do |pager|
12
+ pager.replace(arr.slice(pager.offset, pager.per_page))
13
+ end
14
+ end
15
+
16
+ describe "page_entries_info" do
17
+ before(:all) do
18
+ end
19
+
20
+ it "with no results" do
21
+ @collection = mock_collection :total => 0
22
+
23
+ html = page_entries_info(@collection, { :entry_name => 'entry_name' })
24
+ html.should == "No entry_names found"
25
+ html.html_safe?.should == true
26
+ end
27
+
28
+ it "with a single result" do
29
+ @collection = mock_collection :total => 1
30
+
31
+ html = page_entries_info(@collection, { :entry_name => 'entry_name' })
32
+ html.should == "Displaying <b>1</b> entry_name"
33
+ html.html_safe?.should == true
34
+ end
35
+
36
+ it "with a single page of results" do
37
+ @collection = mock_collection :total => 7
38
+
39
+ html = page_entries_info(@collection, { :entry_name => 'entry_name' })
40
+ html.should == "Displaying <b>all 7</b> entry_names"
41
+ html.html_safe?.should == true
42
+ end
43
+
44
+ it "on the first page of multiple pages of results" do
45
+ @collection = mock_collection :total => 15, :per_page => 10
46
+
47
+ html = page_entries_info(@collection, { :entry_name => 'entry_name' })
48
+ html.should == "Displaying entry_names <b>1 - 10</b> of <b>15</b>"
49
+ html.html_safe?.should == true
50
+ end
51
+
52
+ it "on the second page of multiple pages of results" do
53
+ @collection = mock_collection :total => 47, :per_page => 10, :current_page => 2
54
+
55
+ html = page_entries_info(@collection, { :entry_name => 'entry_name' })
56
+ html.should == "Displaying entry_names <b>11 - 20</b> of <b>47</b>"
57
+ html.html_safe?.should == true
58
+ end
59
+
60
+ it "on the last page of results" do
61
+ @collection = mock_collection :total => 47, :per_page => 10, :current_page => 5
62
+
63
+ html = page_entries_info(@collection, { :entry_name => 'entry_name' })
64
+ html.should == "Displaying entry_names <b>41 - 47</b> of <b>47</b>"
65
+ html.html_safe?.should == true
66
+ end
67
+
68
+ end
69
+ end
@@ -0,0 +1,76 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Blacklight::User" do
4
+ class MockUser
5
+ include Blacklight::User::InstanceMethods
6
+ attr_accessor :searches
7
+ attr_accessor :bookmarks
8
+ end
9
+
10
+ class MockBookmark
11
+ attr_accessor :document_id
12
+
13
+ def initialize document_id
14
+ self.document_id = document_id
15
+ end
16
+ end
17
+
18
+ before(:each) do
19
+ @user = MockUser.new
20
+ @user.searches = []
21
+ @user.bookmarks = []
22
+ end
23
+
24
+ def mock_bookmark doc_id
25
+ MockBookmark.new doc_id
26
+ end
27
+
28
+ it "should know if it doesn't have bookmarks" do
29
+ @user.has_bookmarks?.should == false
30
+ end
31
+
32
+ it "should know if it has bookmarkss" do
33
+ @user.bookmarks.push(mock_bookmark(1))
34
+ @user.bookmarks.push(mock_bookmark(2))
35
+ @user.has_bookmarks?.should == true
36
+ end
37
+
38
+ it "should know if it has a bookmarked document" do
39
+ @user.bookmarks.push(mock_bookmark(1))
40
+ @user.should be_document_is_bookmarked(1)
41
+ end
42
+
43
+ it "should return a bookmark it a document is bookmarked" do
44
+ @user.bookmarks.push(mock_bookmark(1))
45
+ @user.existing_bookmark_for(1).should be_a_kind_of(MockBookmark)
46
+ end
47
+
48
+ it "should be able to create bookmarks in batches" do
49
+ @md1 = { :document_id => 1 }
50
+ @md2 = { :document_id => 2 }
51
+ @md3 = { :document_id => 3 }
52
+ @user.bookmarks.should_receive(:create).with(@md1)
53
+ @user.bookmarks.should_receive(:create).with(@md2)
54
+ @user.bookmarks.should_receive(:create).with(@md3)
55
+
56
+ @user.documents_to_bookmark= [@md1,@md2,@md3]
57
+ end
58
+
59
+ it "should not recreate bookmarks for documents already bookmarked" do
60
+ @md1 = { :document_id => 1 }
61
+ @user.bookmarks.should_not_receive(:create).with(@md1)
62
+
63
+ @user.bookmarks.push(mock_bookmark(1))
64
+ @user.documents_to_bookmark=[@md1]
65
+ end
66
+
67
+ it "should know if it doesn't have a search" do
68
+ @user.has_searches?.should == false
69
+ end
70
+
71
+ it "should know if it has a search" do
72
+ @user.searches.push(1)
73
+ @user.has_searches?.should == true
74
+ end
75
+
76
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1923831917
5
- prerelease: 3
4
+ hash: -766259868
5
+ prerelease: true
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
- - pre
10
- - 2
11
- version: 3.0pre2
9
+ - 0pre3
10
+ version: 3.0.0pre3
12
11
  platform: ruby
13
12
  authors:
14
13
  - jrochkind
@@ -22,7 +21,7 @@ autorequire:
22
21
  bindir: bin
23
22
  cert_chain: []
24
23
 
25
- date: 2011-05-03 00:00:00 -04:00
24
+ date: 2011-05-11 00:00:00 -04:00
26
25
  default_executable:
27
26
  dependencies:
28
27
  - !ruby/object:Gem::Dependency
@@ -78,12 +77,13 @@ dependencies:
78
77
  requirement: &id004 !ruby/object:Gem::Requirement
79
78
  none: false
80
79
  requirements:
81
- - - ">="
80
+ - - ~>
82
81
  - !ruby/object:Gem::Version
83
- hash: 3
82
+ hash: 13
84
83
  segments:
85
84
  - 0
86
- version: "0"
85
+ - 3
86
+ version: "0.3"
87
87
  type: :runtime
88
88
  version_requirements: *id004
89
89
  - !ruby/object:Gem::Dependency
@@ -92,14 +92,13 @@ dependencies:
92
92
  requirement: &id005 !ruby/object:Gem::Requirement
93
93
  none: false
94
94
  requirements:
95
- - - "="
95
+ - - ~>
96
96
  - !ruby/object:Gem::Version
97
- hash: 23
97
+ hash: 15
98
98
  segments:
99
99
  - 1
100
100
  - 0
101
- - 0
102
- version: 1.0.0
101
+ version: "1.0"
103
102
  type: :runtime
104
103
  version_requirements: *id005
105
104
  - !ruby/object:Gem::Dependency
@@ -108,14 +107,13 @@ dependencies:
108
107
  requirement: &id006 !ruby/object:Gem::Requirement
109
108
  none: false
110
109
  requirements:
111
- - - "="
110
+ - - ~>
112
111
  - !ruby/object:Gem::Version
113
- hash: 23
112
+ hash: 15
114
113
  segments:
115
114
  - 1
116
115
  - 0
117
- - 0
118
- version: 1.0.0
116
+ version: "1.0"
119
117
  type: :runtime
120
118
  version_requirements: *id006
121
119
  - !ruby/object:Gem::Dependency
@@ -124,14 +122,13 @@ dependencies:
124
122
  requirement: &id007 !ruby/object:Gem::Requirement
125
123
  none: false
126
124
  requirements:
127
- - - "="
125
+ - - ~>
128
126
  - !ruby/object:Gem::Version
129
- hash: 1923831917
127
+ hash: 270495401
130
128
  segments:
131
129
  - 3
132
130
  - 0
133
- - pre
134
- - 2
131
+ - pre2
135
132
  version: 3.0.pre2
136
133
  type: :runtime
137
134
  version_requirements: *id007
@@ -150,8 +147,9 @@ files:
150
147
  - .yardopts
151
148
  - Gemfile
152
149
  - LICENSE
153
- - README.rdoc
150
+ - README.md
154
151
  - Rakefile
152
+ - VERSION
155
153
  - app/controllers/bookmarks_controller.rb
156
154
  - app/controllers/feedback_controller.rb
157
155
  - app/controllers/folder_controller.rb
@@ -177,6 +175,7 @@ files:
177
175
  - app/views/catalog/_constraints.html.erb
178
176
  - app/views/catalog/_constraints_element.html.erb
179
177
  - app/views/catalog/_did_you_mean.html.erb
178
+ - app/views/catalog/_document.html.erb
180
179
  - app/views/catalog/_document_list.html.erb
181
180
  - app/views/catalog/_email_form.html.erb
182
181
  - app/views/catalog/_facet_limit.html.erb
@@ -196,7 +195,6 @@ files:
196
195
  - app/views/catalog/_show_sidebar.html.erb
197
196
  - app/views/catalog/_show_tools.html.erb
198
197
  - app/views/catalog/_sms_form.html.erb
199
- - app/views/catalog/_solr_request.html.erb
200
198
  - app/views/catalog/_sort_and_per_page.html.erb
201
199
  - app/views/catalog/_unapi_microformat.html.erb
202
200
  - app/views/catalog/citation.html.erb
@@ -228,6 +226,7 @@ files:
228
226
  - config.ru
229
227
  - config/routes.rb
230
228
  - db/seeds.rb
229
+ - features/default_setup.feature
231
230
  - features/generators.feature
232
231
  - features/support/aruba.rb
233
232
  - install.rb
@@ -352,6 +351,7 @@ files:
352
351
  - test_support/spec/data/sample_docs.yml
353
352
  - test_support/spec/data/test_data.utf8.mrc
354
353
  - test_support/spec/helpers/blacklight_helper_spec.rb
354
+ - test_support/spec/helpers/catalog_helper_spec.rb
355
355
  - test_support/spec/helpers/hash_as_hidden_fields_spec.rb
356
356
  - test_support/spec/helpers/render_constraints_helper_spec.rb
357
357
  - test_support/spec/helpers/search_history_helper_spec.rb
@@ -362,6 +362,7 @@ files:
362
362
  - test_support/spec/lib/blacklight_solr_document_marc_spec.rb
363
363
  - test_support/spec/lib/blacklight_solr_document_spec.rb
364
364
  - test_support/spec/lib/blacklight_spec.rb
365
+ - test_support/spec/lib/blacklight_user_spec.rb
365
366
  - test_support/spec/lib/configurable_spec.rb
366
367
  - test_support/spec/lib/facet_paginator_spec.rb
367
368
  - test_support/spec/lib/marc_export_spec.rb
@@ -419,10 +420,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
419
420
  requirements: []
420
421
 
421
422
  rubyforge_project: blacklight
422
- rubygems_version: 1.5.1
423
+ rubygems_version: 1.3.7
423
424
  signing_key:
424
425
  specification_version: 3
425
426
  summary: A next-geration Library Catalag for Universities
426
427
  test_files:
428
+ - features/default_setup.feature
427
429
  - features/generators.feature
428
430
  - features/support/aruba.rb
data/README.rdoc DELETED
@@ -1,175 +0,0 @@
1
- Please note: The main Blacklight website is http://projectblacklight.org
2
-
3
- =Installing Blacklight
4
-
5
- == Some background information
6
-
7
- Blacklight is open source discovery software. Libraries (or anyone else) can use Blacklight to enable searching and browsing of their collections online. Blacklight uses the Apache SOLR ( http://lucene.apache.org/solr ) search engine to index and search full text and/or metadata, and Blacklight has a highly configurable Ruby on Rails front-end. Blacklight was originally developed at the University of Virginia Library and is made public under an Apache 2.0 license.
8
-
9
- == Install & Use (With Devise)
10
-
11
- Create a new rails 3 application
12
-
13
- $ rails new my_app
14
-
15
- Add blacklight to your gem file
16
-
17
- /my_app/Gemfile
18
- ...
19
- gem 'blackight'
20
-
21
- Install blacklight
22
-
23
- $ rails generate blacklight --devise
24
-
25
- Run your database migrations
26
-
27
- $ rake db:migrate
28
-
29
- You will need a Solr setup, referred to in your config/solr.yml. You can install
30
- an example jetty container with Solr, that has Solr configured to work with
31
- Blacklight's defaults, like:
32
- $ rails generate blacklight:jetty
33
-
34
- You can also install your own Solr or use an existing install. But Blacklight
35
- configuration needs to match your Solr setup, and there are certain things
36
- in a Solr setup that Blacklight requires. To generate some Solr config files
37
- that match what default Blacklight expects:
38
- $ rails generate blacklight:solr_conf path/to/output/directory/
39
-
40
- Start up your application
41
-
42
- $ rails server
43
-
44
- Visit the catalog at: http://localhost/catalog
45
-
46
-
47
- == Install and Use (with a custom user authentication system)
48
-
49
- Blacklight 3 requires Rails 3.0 or greater.
50
-
51
- Add the blacklight gem to your ./Gemfile
52
-
53
- gem 'blacklight'
54
-
55
- $ bundle install
56
-
57
- If you have a user model already, the Blacklight generator will connect to it automatically during installation. However, you will need to make sure the following named routes are included in your /config/routes.rb file:
58
-
59
- match 'new_user_session', :to => 'Your User Session Controller # Log in action'
60
- match 'destroy_user_session', :to => 'Your User Session Controller # Log Out action'
61
-
62
- One blacklight view uses #to_s on your user model to get a user-displayable
63
- account name/identifier for the currently logged in account, you probably
64
- want to have such a method.
65
-
66
- (TODO: Instructions on how to tell BL the name of your user model if it's
67
- not User?)
68
-
69
- And you will need to make sure the following methods are available both
70
- on controllers and as helpers:
71
-
72
- current_user - Which should return a user object that include Blacklight::User
73
- user_session - Which should return a user session
74
-
75
- Once these are in place, you can run the Blacklight Installation Generator:
76
-
77
- rails generate blacklight
78
-
79
- Execute your migrations, and you should be good to go.
80
-
81
- rake db:migrate
82
-
83
- Start up your application
84
-
85
- $ rails server
86
-
87
- Visit the catalog at: http://localhost/catalog
88
-
89
- == Using Blacklight source checkout as gem for development
90
-
91
- The ordinary install instructions install the BL gem (which is not
92
- full source code) in wherever your system installs gems.
93
-
94
- Sometimes, especially for development, it's useful to check out
95
- a complete copy of the blacklight source code, and link your app
96
- to that as a 'gem' instead.
97
-
98
- Checkout the code:
99
-
100
- $ git clone git@github.com:projectblacklight/blacklight.git
101
-
102
- (While the rails3 branch is still a seperate branch called 'rails3',
103
- if you'd like to checkout the rails3 branch, or any other particular
104
- branch/tag using ordinary git commands:
105
- $ cd blacklight
106
- $ git checkout -t origin/rails3
107
- )
108
-
109
- Now, in your local app's Gemfile, simply specify that it should find
110
- the Blacklight gem at this source checkout location:
111
-
112
- gem 'blacklight', :path=>"./relative/path/to/blacklight_checkout"
113
-
114
- You can have the blacklight source checkout anywhere you want, referred
115
- to by absolute or relative path. You can have it inside your local app's
116
- directory if you want, or you can have it outside using a relative path
117
- beginning with "../". If you have it inside your app's root, you can
118
- even use 'git submodule' techniques to link your app to a particular
119
- git commit, like some of us did in Rails2 Blacklight. (But you probably
120
- don't want it in your local apps ./vendor/plugins, that'll likely
121
- confuse Rails, since it's already being referred to in your Gemfile).
122
-
123
- == Running Blacklight's own tests
124
-
125
- Any application that refers to a Blacklight gem using a source checkout
126
- (see above) can run the automated tests (cucumber and rspec) that
127
- come with Blacklight source.
128
-
129
- Of course, if you've customized the app quite a bit, the tests may not
130
- pass, as they test expected default behavior in some cases. So ordinarily
131
- tests are run against a pretty basic stub app. The tests also
132
- test authentication features, so expect the app to have auth features
133
- installed, for instance with a Devise install.
134
-
135
- To run the tests:
136
-
137
- * Create a stub app with BL with devise, following the ordinary instructions for
138
- installing blacklight, but linking to a source checkout of Blacklight
139
- following the instructions above in "Using Blacklight source checkout
140
- as gem for development"
141
- * You also need to include some gems in your test app's Gemfile needed for
142
- running our tests:
143
- group :development, :test do
144
- gem "rspec"
145
- gem "rspec-rails", "~>2.5.0"
146
- gem "cucumber-rails"
147
- gem "database_cleaner"
148
- gem "capybara"
149
- gem "webrat"
150
- gem "aruba"
151
- end
152
- * run `bundle install` in the test app, and don't forget `rake db:migrate`
153
- * complete the install of cucumber: 'rails g cucumber:install'
154
- * remove /public/index.html (blacklight tests expect / to map to catalog)
155
- * You need to install a jetty/solr with test data for testing. You can do that
156
- like this (from your stub app home directory):
157
- rails generate blacklight:jetty test_jetty -e test
158
- rake solr:marc:index_test_data RAILS_ENV=test
159
- * Now use some rake tasks that come with Blacklight to actually run the tests.
160
- Run these from your stub app:
161
- * rake blacklight:cucumber:with_solr -- run tests in BL, start and stop the test jetty/solr around tests
162
- * rake blacklight:cucumber -- run tests in BL, no jetty/solr. (Tests will fail unless you start it yourself)
163
- * rake blacklight:spec:with_solr
164
- * rake blacklight:spec
165
- * the standard rails tasks for cucumber/rspec are all included with
166
- blacklight: prefix, and should work as expected, but using
167
- specs/features defined in BL plugin instead of in your local
168
- app. (Not every variant has a :with_solr yet).
169
-
170
-
171
- ==Pre-requisites
172
- Whichever method you choose for installation, be sure you have all the pre-requisites in place. You can find these detailed in {PRE-REQUISITES}[https://github.com/projectblacklight/blacklight/wiki/PRE-REQUISITES]
173
-
174
- ==Running solr
175
- You'll also want some information about how Blacklight expects Apache SOLR ( http://lucene.apache.org/solr ) to run, which you can find in {README_SOLR}[https://github.com/projectblacklight/blacklight/wiki/README_SOLR]
@@ -1,5 +0,0 @@
1
- <% unless ::Rails.env=='production' %>
2
- <% @footer = capture do %>
3
- <div class="solrQuery"><%= URI.decode(@response.header.inspect) %></div>
4
- <% end %>
5
- <% end %>