blacklight 3.0pre1 → 3.0pre2
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/.gitmodules +0 -6
- data/README.rdoc +94 -87
- data/blacklight.gemspec +1 -1
- data/config/routes.rb +1 -1
- data/lib/blacklight.rb +2 -2
- data/lib/blacklight/catalog.rb +10 -12
- data/lib/blacklight/controller.rb +2 -2
- data/lib/blacklight/engine.rb +5 -2
- data/lib/blacklight/solr/document.rb +1 -1
- data/lib/blacklight/solr/document/marc.rb +1 -16
- data/lib/blacklight/solr_helper.rb +43 -14
- data/lib/blacklight/version.rb +1 -1
- data/lib/generators/blacklight/assets_generator.rb +25 -0
- data/lib/generators/blacklight/blacklight_generator.rb +16 -1
- data/lib/generators/blacklight/jetty_generator.rb +101 -0
- data/lib/generators/blacklight/solr_conf_generator.rb +25 -0
- data/lib/generators/blacklight/templates/catalog_controller.rb +0 -1
- data/lib/generators/blacklight/templates/config/solr.yml +14 -2
- data/lib/generators/blacklight/templates/public/images/{blacklight/bg.png → bg.png} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/border.png → border.png} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/bul_sq_gry.gif → bul_sq_gry.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/checkmark.gif → checkmark.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/logo.png → logo.png} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/magnifying_glass.gif → magnifying_glass.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/remove.gif → remove.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/separator.gif → separator.gif} +0 -0
- data/lib/generators/blacklight/templates/public/images/{blacklight/start_over.gif → start_over.gif} +0 -0
- data/lib/generators/blacklight/templates/public/javascripts/blacklight.js +5 -0
- data/lib/generators/blacklight/templates/public/stylesheets/blacklight.css +9 -3
- data/lib/generators/blacklight/templates/solr_conf/schema.xml +339 -0
- data/lib/generators/blacklight/templates/solr_conf/solrconfig.xml +578 -0
- data/lib/railties/all_tests.rake +11 -0
- data/lib/railties/blacklight.rake +0 -52
- data/lib/railties/blacklight_cucumber.rake +125 -0
- data/lib/railties/blacklight_rspec.rake +128 -0
- data/lib/railties/{test_solr_server.rb → jetty_solr_server.rb} +22 -45
- data/lib/railties/solr_marc.rake +24 -5
- data/test_support/.rspec +1 -0
- data/test_support/data/test_data.utf8.mrc +1 -0
- data/test_support/features/bookmarks.feature +88 -0
- data/test_support/features/did_you_mean.feature +129 -0
- data/test_support/features/folder.feature +67 -0
- data/test_support/features/librarian_view.feature +17 -0
- data/test_support/features/record_view.feature +34 -0
- data/test_support/features/saved_searches.feature +49 -0
- data/test_support/features/search.feature +86 -0
- data/test_support/features/search_filters.feature +121 -0
- data/test_support/features/search_history.feature +95 -0
- data/test_support/features/search_results.feature +61 -0
- data/test_support/features/search_sort.feature +29 -0
- data/test_support/features/step_definitions/bookmarks_steps.rb +5 -0
- data/test_support/features/step_definitions/error_steps.rb +4 -0
- data/test_support/features/step_definitions/folder_steps.rb +26 -0
- data/test_support/features/step_definitions/general_steps.rb +49 -0
- data/test_support/features/step_definitions/record_view_steps.rb +11 -0
- data/test_support/features/step_definitions/saved_searches_steps.rb +21 -0
- data/test_support/features/step_definitions/search_facets_steps.rb +28 -0
- data/test_support/features/step_definitions/search_history_steps.rb +8 -0
- data/test_support/features/step_definitions/search_result_steps.rb +113 -0
- data/test_support/features/step_definitions/search_steps.rb +102 -0
- data/test_support/features/step_definitions/user_steps.rb +4 -0
- data/test_support/features/step_definitions/web_steps.rb +211 -0
- data/test_support/features/support/env.rb +49 -0
- data/test_support/features/support/paths.rb +55 -0
- data/test_support/features/support/selectors.rb +39 -0
- data/test_support/features/unapi.feature +30 -0
- data/test_support/spec/controllers/application_controller_spec.rb +22 -0
- data/test_support/spec/controllers/catalog_controller_spec.rb +480 -0
- data/test_support/spec/controllers/folder_controller_spec.rb +40 -0
- data/test_support/spec/controllers/search_history_controller_spec.rb +45 -0
- data/test_support/spec/data/sample_docs.yml +655 -0
- data/test_support/spec/data/test_data.utf8.mrc +1 -0
- data/test_support/spec/helpers/blacklight_helper_spec.rb +482 -0
- data/test_support/spec/helpers/hash_as_hidden_fields_spec.rb +23 -0
- data/test_support/spec/helpers/render_constraints_helper_spec.rb +64 -0
- data/test_support/spec/helpers/search_history_helper_spec.rb +11 -0
- data/test_support/spec/helpers/solr_helper_spec.rb +873 -0
- data/test_support/spec/lib/blacklight_email_spec.rb +23 -0
- data/test_support/spec/lib/blacklight_sms_spec.rb +23 -0
- data/test_support/spec/lib/blacklight_solr_document_dublin_core_spec.rb +41 -0
- data/test_support/spec/lib/blacklight_solr_document_marc_spec.rb +88 -0
- data/test_support/spec/lib/blacklight_solr_document_spec.rb +173 -0
- data/test_support/spec/lib/blacklight_spec.rb +39 -0
- data/test_support/spec/lib/configurable_spec.rb +97 -0
- data/test_support/spec/lib/facet_paginator_spec.rb +93 -0
- data/test_support/spec/lib/marc_export_spec.rb +444 -0
- data/test_support/spec/lib/search_fields_spec.rb +105 -0
- data/test_support/spec/lib/tasks/blacklight_task_spec.rb +21 -0
- data/test_support/spec/lib/tasks/solr_marc_task_spec.rb +59 -0
- data/test_support/spec/models/bookmark_spec.rb +37 -0
- data/test_support/spec/models/record_mailer_spec.rb +67 -0
- data/test_support/spec/models/search_spec.rb +55 -0
- data/test_support/spec/models/solr_docment_spec.rb +111 -0
- data/test_support/spec/rcov.opts +3 -0
- data/test_support/spec/spec.opts +4 -0
- data/test_support/spec/spec_helper.rb +38 -0
- data/test_support/spec/support/action_controller.rb +42 -0
- data/test_support/spec/support/assert_difference.rb +16 -0
- data/test_support/spec/support/include_text.rb +20 -0
- data/test_support/spec/views/catalog/_constraints_element.html.erb_spec.rb +59 -0
- data/test_support/spec/views/catalog/_document_list.html.erb_spec.rb +8 -0
- data/test_support/spec/views/catalog/_facets.html.erb_spec.rb +182 -0
- data/test_support/spec/views/catalog/_index_partials/_default.erb_spec.rb +70 -0
- data/test_support/spec/views/catalog/_show_partials/_default.html.erb_spec.rb +70 -0
- data/test_support/spec/views/catalog/index.atom.builder_spec.rb +141 -0
- data/test_support/spec/views/catalog/show.html.erb_spec.rb +100 -0
- data/test_support/spec/views/catalog/unapi.xml.builder_spec.rb +45 -0
- metadata +95 -98
- data/lib/blacklight/marc.rb +0 -46
- data/lib/blacklight/marc/citation.rb +0 -251
- data/lib/railties/cucumber.rake +0 -53
- data/lib/railties/rspec.rake +0 -188
- data/spec/helpers/catalog_helper_spec.rb +0 -111
- data/spec/views/catalog/_sms_form.html.erb_spec.rb +0 -19
data/lib/blacklight/marc.rb
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
## This module and the ::Document class in it is DEPRECATED, and will go away.
|
|
3
|
-
# It has been replaced by
|
|
4
|
-
# code using the new document extension framework. See
|
|
5
|
-
# Blacklight::Solr::Document::Marc and Blacklight::Solr::Document::MarcExport
|
|
6
|
-
# This code should not really be changed, or used anymore. It is frozen
|
|
7
|
-
# and deprecated until removed.
|
|
8
|
-
module Blacklight::Marc
|
|
9
|
-
|
|
10
|
-
autoload :Citation, 'blacklight/marc/citation.rb'
|
|
11
|
-
|
|
12
|
-
class UnsupportedMarcFormatType < RuntimeError; end
|
|
13
|
-
|
|
14
|
-
class Document
|
|
15
|
-
|
|
16
|
-
attr_reader :marc
|
|
17
|
-
|
|
18
|
-
include Citation
|
|
19
|
-
|
|
20
|
-
def initialize(marc_data, marc_type)
|
|
21
|
-
case marc_type.to_s
|
|
22
|
-
when 'marcxml'
|
|
23
|
-
reader = MARC::XMLReader.new(StringIO.new(marc_data)).to_a
|
|
24
|
-
@marc = reader[0]
|
|
25
|
-
when 'marc21'
|
|
26
|
-
reader = MARC::Record.new_from_marc(marc_data)
|
|
27
|
-
@marc = reader
|
|
28
|
-
else
|
|
29
|
-
raise UnsupportedMarcFormatType.new("Only marcxml and marc21 are supported.")
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def marc_xml
|
|
34
|
-
@marc.to_xml.to_s
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def to_xml
|
|
38
|
-
if @marc
|
|
39
|
-
self.marc_xml
|
|
40
|
-
else
|
|
41
|
-
"<not-implemented/>"
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
end
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
## This module is DEPRECATED, and will go away. It has been replaced by
|
|
2
|
-
# code using the new document extension framework. See
|
|
3
|
-
# Blacklight::Solr::Document::Marc and Blacklight::Solr::Document::MarcExport
|
|
4
|
-
# This code should not really be changed, or used anymore. It is frozen
|
|
5
|
-
# and deprecated until removed.
|
|
6
|
-
module Blacklight::Marc::Citation
|
|
7
|
-
|
|
8
|
-
def to_apa
|
|
9
|
-
return nil if self.marc.blank?
|
|
10
|
-
apa_citation(self.marc)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def to_mla
|
|
14
|
-
return nil if self.marc.blank?
|
|
15
|
-
mla_citation(self.marc)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def to_zotero(format)
|
|
19
|
-
return nil if self.marc.blank?
|
|
20
|
-
z3988_span(self.marc, format)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
protected
|
|
24
|
-
|
|
25
|
-
def mla_citation(record)
|
|
26
|
-
text = ''
|
|
27
|
-
authors_final = []
|
|
28
|
-
|
|
29
|
-
#setup formatted author list
|
|
30
|
-
authors = get_author_list(record)
|
|
31
|
-
|
|
32
|
-
if authors.length < 4
|
|
33
|
-
authors.each do |l|
|
|
34
|
-
if l == authors.first #first
|
|
35
|
-
authors_final.push(l)
|
|
36
|
-
elsif l == authors.last #last
|
|
37
|
-
authors_final.push(", and " + name_reverse(l) + ".")
|
|
38
|
-
else #all others
|
|
39
|
-
authors_final.push(", " + name_reverse(l))
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
text += authors_final.join
|
|
43
|
-
unless text.blank?
|
|
44
|
-
if text[-1,1] != "."
|
|
45
|
-
text += ". "
|
|
46
|
-
else
|
|
47
|
-
text += " "
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
else
|
|
51
|
-
text += authors.first + ", et al. "
|
|
52
|
-
end
|
|
53
|
-
# setup title
|
|
54
|
-
title = setup_title_info(record)
|
|
55
|
-
if !title.nil?
|
|
56
|
-
text += "<i>" + mla_citation_title(title) + "</i> "
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# Edition
|
|
60
|
-
edition_data = setup_edition(record)
|
|
61
|
-
text += edition_data + " " unless edition_data.nil?
|
|
62
|
-
|
|
63
|
-
# Publication
|
|
64
|
-
text += setup_pub_info(record) + ", " unless setup_pub_info(record).nil?
|
|
65
|
-
|
|
66
|
-
# Get Pub Date
|
|
67
|
-
text += setup_pub_date(record) unless setup_pub_date(record).nil?
|
|
68
|
-
if text[-1,1] != "."
|
|
69
|
-
text += "." unless text.nil? or text.blank?
|
|
70
|
-
end
|
|
71
|
-
text
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def apa_citation(record)
|
|
75
|
-
text = ''
|
|
76
|
-
authors_list = []
|
|
77
|
-
authors_list_final = []
|
|
78
|
-
|
|
79
|
-
#setup formatted author list
|
|
80
|
-
authors = get_author_list(record)
|
|
81
|
-
authors.each do |l|
|
|
82
|
-
authors_list.push(abbreviate_name(l)) unless l.nil?
|
|
83
|
-
end
|
|
84
|
-
authors_list.each do |l|
|
|
85
|
-
if l == authors_list.first #first
|
|
86
|
-
authors_list_final.push(l.strip)
|
|
87
|
-
elsif l == authors_list.last #last
|
|
88
|
-
authors_list_final.push(", & " + l.strip)
|
|
89
|
-
else #all others
|
|
90
|
-
authors_list_final.push(", " + l.strip)
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
text += authors_list_final.join
|
|
94
|
-
unless text.blank?
|
|
95
|
-
if text[-1,1] != "."
|
|
96
|
-
text += ". "
|
|
97
|
-
else
|
|
98
|
-
text += " "
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
# Get Pub Date
|
|
102
|
-
text += "(" + setup_pub_date(record) + "). " unless setup_pub_date(record).nil?
|
|
103
|
-
|
|
104
|
-
# setup title info
|
|
105
|
-
title = setup_title_info(record)
|
|
106
|
-
text += "<i>" + title + "</i> " unless title.nil?
|
|
107
|
-
|
|
108
|
-
# Edition
|
|
109
|
-
edition_data = setup_edition(record)
|
|
110
|
-
text += edition_data + " " unless edition_data.nil?
|
|
111
|
-
|
|
112
|
-
# Publisher info
|
|
113
|
-
text += setup_pub_info(record) unless setup_pub_info(record).nil?
|
|
114
|
-
unless text.blank?
|
|
115
|
-
if text[-1,1] != "."
|
|
116
|
-
text += "."
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
text
|
|
120
|
-
end
|
|
121
|
-
def setup_pub_date(record)
|
|
122
|
-
if !record.find{|f| f.tag == '260'}.nil?
|
|
123
|
-
pub_date = record.find{|f| f.tag == '260'}
|
|
124
|
-
if pub_date.find{|s| s.code == 'c'}
|
|
125
|
-
date_value = pub_date.find{|s| s.code == 'c'}.value.gsub(/[^0-9]/, "") unless pub_date.find{|s| s.code == 'c'}.value.gsub(/[^0-9]/, "").blank?
|
|
126
|
-
end
|
|
127
|
-
return nil unless !date_value.nil?
|
|
128
|
-
end
|
|
129
|
-
date_value
|
|
130
|
-
end
|
|
131
|
-
def setup_pub_info(record)
|
|
132
|
-
text = ''
|
|
133
|
-
pub_info_field = record.find{|f| f.tag == '260'}
|
|
134
|
-
if !pub_info_field.nil?
|
|
135
|
-
a_pub_info = pub_info_field.find{|s| s.code == 'a'}
|
|
136
|
-
b_pub_info = pub_info_field.find{|s| s.code == 'b'}
|
|
137
|
-
a_pub_info = clean_end_punctuation(a_pub_info.value.strip) unless a_pub_info.nil?
|
|
138
|
-
b_pub_info = b_pub_info.value.strip unless b_pub_info.nil?
|
|
139
|
-
text += a_pub_info.strip unless a_pub_info.nil?
|
|
140
|
-
if !a_pub_info.nil? and !b_pub_info.nil?
|
|
141
|
-
text += ": "
|
|
142
|
-
end
|
|
143
|
-
text += b_pub_info.strip unless b_pub_info.nil?
|
|
144
|
-
end
|
|
145
|
-
return nil if text.strip.blank?
|
|
146
|
-
clean_end_punctuation(text.strip)
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
def mla_citation_title(text)
|
|
150
|
-
no_upcase = ["a","an","and","but","by","for","it","of","the","to","with"]
|
|
151
|
-
new_text = []
|
|
152
|
-
word_parts = text.split(" ")
|
|
153
|
-
word_parts.each do |w|
|
|
154
|
-
if !no_upcase.include? w
|
|
155
|
-
new_text.push(w.capitalize)
|
|
156
|
-
else
|
|
157
|
-
new_text.push(w)
|
|
158
|
-
end
|
|
159
|
-
end
|
|
160
|
-
new_text.join(" ")
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def setup_title_info(record)
|
|
164
|
-
text = ''
|
|
165
|
-
title_info_field = record.find{|f| f.tag == '245'}
|
|
166
|
-
if !title_info_field.nil?
|
|
167
|
-
a_title_info = title_info_field.find{|s| s.code == 'a'}
|
|
168
|
-
b_title_info = title_info_field.find{|s| s.code == 'b'}
|
|
169
|
-
a_title_info = clean_end_punctuation(a_title_info.value.strip) unless a_title_info.nil?
|
|
170
|
-
b_title_info = clean_end_punctuation(b_title_info.value.strip) unless b_title_info.nil?
|
|
171
|
-
text += a_title_info unless a_title_info.nil?
|
|
172
|
-
if !a_title_info.nil? and !b_title_info.nil?
|
|
173
|
-
text += ": "
|
|
174
|
-
end
|
|
175
|
-
text += b_title_info unless b_title_info.nil?
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
return nil if text.strip.blank?
|
|
179
|
-
clean_end_punctuation(text.strip) + "."
|
|
180
|
-
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
def clean_end_punctuation(text)
|
|
184
|
-
if [".",",",":",";","/"].include? text[-1,1]
|
|
185
|
-
return text[0,text.length-1]
|
|
186
|
-
end
|
|
187
|
-
text
|
|
188
|
-
end
|
|
189
|
-
|
|
190
|
-
def setup_edition(record)
|
|
191
|
-
edition_field = record.find{|f| f.tag == '250'}
|
|
192
|
-
edition_code = edition_field.find{|s| s.code == 'a'} unless edition_field.nil?
|
|
193
|
-
edition_data = edition_code.value unless edition_code.nil?
|
|
194
|
-
if edition_data.nil? or edition_data == '1st ed.'
|
|
195
|
-
return nil
|
|
196
|
-
else
|
|
197
|
-
return edition_data
|
|
198
|
-
end
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
def get_author_list(record)
|
|
202
|
-
author_list = []
|
|
203
|
-
authors_primary = record.find{|f| f.tag == '100'}
|
|
204
|
-
author_primary = authors_primary.find{|s| s.code == 'a'}.value unless authors_primary.nil?
|
|
205
|
-
author_list.push(clean_end_punctuation(author_primary)) unless author_primary.nil?
|
|
206
|
-
authors_secondary = record.find_all{|f| ('700') === f.tag}
|
|
207
|
-
if !authors_secondary.nil?
|
|
208
|
-
authors_secondary.each do |l|
|
|
209
|
-
author_list.push(clean_end_punctuation(l.find{|s| s.code == 'a'}.value)) unless l.find{|s| s.code == 'a'}.value.nil?
|
|
210
|
-
end
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
author_list.uniq!
|
|
214
|
-
author_list
|
|
215
|
-
end
|
|
216
|
-
|
|
217
|
-
def abbreviate_name(name)
|
|
218
|
-
name_parts = name.split(", ")
|
|
219
|
-
first_name_parts = name_parts.last.split(" ")
|
|
220
|
-
temp_name = name_parts.first + ", " + first_name_parts.first[0,1] + "."
|
|
221
|
-
first_name_parts.shift
|
|
222
|
-
temp_name += " " + first_name_parts.join(" ") unless first_name_parts.empty?
|
|
223
|
-
temp_name
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
def name_reverse(name)
|
|
227
|
-
name = clean_end_punctuation(name)
|
|
228
|
-
temp_name = name.split(", ")
|
|
229
|
-
return temp_name.last + " " + temp_name.first
|
|
230
|
-
end
|
|
231
|
-
|
|
232
|
-
# Genrates a Z39.88 span element to pass the COinS metadata to Zotero
|
|
233
|
-
def z3988_span(record,format)
|
|
234
|
-
title = record.find{|field| field.tag == '245'}
|
|
235
|
-
author = record.find{|field| field.tag == '100'}
|
|
236
|
-
publisher_info = record.find{|field| field.tag == '260'}
|
|
237
|
-
edition = record.find{|field| field.tag == '250'}
|
|
238
|
-
isbn = record.find{|field| field.tag == '020'}
|
|
239
|
-
issn = record.find{|field| field.tag == '022'}
|
|
240
|
-
format.is_a?(Array) ? format = format[0].downcase.strip : format = format.downcase.strip
|
|
241
|
-
text = "<span class='Z3988' "
|
|
242
|
-
if format == 'book'
|
|
243
|
-
text << "title='ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&rft.genre=book&rft.btitle=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&rft.title=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&rft.au=#{(author.nil? or author['a'].nil?) ? "" : CGI::escape(author['a'])}&rft.date=#{(publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c'])}&rft.pub=#{(publisher_info.nil? or publisher_info['a'].nil?) ? "" : CGI::escape(publisher_info['a'])}&rft.edition=#{(edition.nil? or edition['a'].nil?) ? "" : CGI::escape(edition['a'])}&rft.isbn=#{(isbn.nil? or isbn['a'].nil?) ? "" : isbn['a']}'"
|
|
244
|
-
elsif format.include?('journal') # checking using include because institutions may use formats like Journal or Journal/Magazine
|
|
245
|
-
text << "title='ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&rft.genre=article&rft.title=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&rft.atitle=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&rft.date=#{(publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c'])}&rft.issn=#{(issn.nil? or issn['a'].nil?) ? "" : issn['a']}'"
|
|
246
|
-
else
|
|
247
|
-
text << "title='ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&rft.title=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&rft.creator=#{(author.nil? or author['a'].nil?) ? "" : CGI::escape(author['a'])}&rft.date=#{(publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c'])}&rft.pub=#{(publisher_info.nil? or publisher_info['a'].nil?) ? "" : CGI::escape(publisher_info['a'])}&rft.format=#{CGI::escape(format)}'"
|
|
248
|
-
end
|
|
249
|
-
text << "></span>"
|
|
250
|
-
end
|
|
251
|
-
end
|
data/lib/railties/cucumber.rake
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
|
2
|
-
# It is recommended to regenerate this file in the future when you upgrade to a
|
|
3
|
-
# newer version of cucumber-rails. Consider adding your own code to a new file
|
|
4
|
-
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
|
5
|
-
# files.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
|
|
9
|
-
|
|
10
|
-
vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
|
|
11
|
-
$LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
|
|
12
|
-
|
|
13
|
-
begin
|
|
14
|
-
require 'cucumber/rake/task'
|
|
15
|
-
|
|
16
|
-
namespace :cucumber do
|
|
17
|
-
Cucumber::Rake::Task.new({:ok => 'db:test:prepare'}, 'Run features that should pass') do |t|
|
|
18
|
-
t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
|
|
19
|
-
t.fork = true # You may get faster startup if you set this to false
|
|
20
|
-
t.profile = 'default'
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t|
|
|
24
|
-
t.binary = vendored_cucumber_bin
|
|
25
|
-
t.fork = true # You may get faster startup if you set this to false
|
|
26
|
-
t.profile = 'wip'
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
Cucumber::Rake::Task.new({:rerun => 'db:test:prepare'}, 'Record failing features and run only them if any exist') do |t|
|
|
30
|
-
t.binary = vendored_cucumber_bin
|
|
31
|
-
t.fork = true # You may get faster startup if you set this to false
|
|
32
|
-
t.profile = 'rerun'
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
desc 'Run all features'
|
|
36
|
-
task :all => [:ok, :wip]
|
|
37
|
-
end
|
|
38
|
-
desc 'Alias for cucumber:ok'
|
|
39
|
-
task :cucumber => 'cucumber:ok'
|
|
40
|
-
|
|
41
|
-
task :default => :cucumber
|
|
42
|
-
|
|
43
|
-
task :features => :cucumber do
|
|
44
|
-
STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
|
|
45
|
-
end
|
|
46
|
-
rescue LoadError
|
|
47
|
-
desc 'cucumber rake task not available (cucumber not installed)'
|
|
48
|
-
task :cucumber do
|
|
49
|
-
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
end
|
data/lib/railties/rspec.rake
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
blacklight_plugin_dir = "#{File.dirname(__FILE__)}/../.."
|
|
2
|
-
|
|
3
|
-
gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9
|
|
4
|
-
rspec_gem_dir = nil
|
|
5
|
-
Dir["#{blacklight_plugin_dir}/vendor/gems/*"].each do |subdir|
|
|
6
|
-
rspec_gem_dir = subdir if subdir.gsub("#{blacklight_plugin_dir}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb")
|
|
7
|
-
end
|
|
8
|
-
rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec')
|
|
9
|
-
|
|
10
|
-
if rspec_gem_dir && (test ?d, rspec_plugin_dir)
|
|
11
|
-
raise "\n#{'*'*50}\nYou have rspec installed in both vendor/gems and vendor/plugins\nPlease pick one and dispose of the other.\n#{'*'*50}\n\n"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
if rspec_gem_dir
|
|
15
|
-
$LOAD_PATH.unshift("#{rspec_gem_dir}/lib")
|
|
16
|
-
elsif File.exist?(rspec_plugin_dir)
|
|
17
|
-
$LOAD_PATH.unshift("#{rspec_plugin_dir}/lib")
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# Don't load rspec if running "rake gems:*"
|
|
21
|
-
unless ARGV.any? {|a| a =~ /^gems/}
|
|
22
|
-
|
|
23
|
-
begin
|
|
24
|
-
require 'spec/rake/spectask'
|
|
25
|
-
rescue MissingSourceFile
|
|
26
|
-
module Spec
|
|
27
|
-
module Rake
|
|
28
|
-
class SpecTask
|
|
29
|
-
def initialize(name)
|
|
30
|
-
task name do
|
|
31
|
-
# if rspec-rails is a configured gem, this will output helpful material and exit ...
|
|
32
|
-
require File.expand_path(File.dirname(__FILE__) + "/../../config/environment")
|
|
33
|
-
|
|
34
|
-
# ... otherwise, do this:
|
|
35
|
-
raise <<-MSG
|
|
36
|
-
|
|
37
|
-
#{"*" * 80}
|
|
38
|
-
* You are trying to run an rspec rake task defined in
|
|
39
|
-
* #{__FILE__},
|
|
40
|
-
* but rspec can not be found in vendor/gems, vendor/plugins or system gems.
|
|
41
|
-
#{"*" * 80}
|
|
42
|
-
MSG
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# Rake.application.instance_variable_get('@tasks').delete('default')
|
|
51
|
-
|
|
52
|
-
spec_prereq = File.exist?(File.join(::Rails.root.to_s, 'config', 'database.yml')) ? "db:test:prepare" : :noop
|
|
53
|
-
task :noop do
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# task :default => :spec
|
|
57
|
-
task :stats => "spec:statsetup"
|
|
58
|
-
|
|
59
|
-
desc "Run all specs in spec directory (excluding plugin specs)"
|
|
60
|
-
Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t|
|
|
61
|
-
t.spec_opts = ['--options', "\"#{blacklight_plugin_dir}/spec/spec.opts\""]
|
|
62
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
63
|
-
t.rcov = true
|
|
64
|
-
t.rcov_opts = lambda do
|
|
65
|
-
IO.readlines("#{blacklight_plugin_dir}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
namespace :spec do
|
|
70
|
-
desc "Run all specs in spec directory with RCov (excluding plugin specs)"
|
|
71
|
-
Spec::Rake::SpecTask.new(:rcov) do |t|
|
|
72
|
-
t.spec_opts = ['--options', "\"#{blacklight_plugin_dir}/spec/spec.opts\""]
|
|
73
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
74
|
-
t.rcov = true
|
|
75
|
-
t.rcov_opts = lambda do
|
|
76
|
-
IO.readlines("#{blacklight_plugin_dir}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
desc "Print Specdoc for all specs (excluding plugin specs)"
|
|
81
|
-
Spec::Rake::SpecTask.new(:doc) do |t|
|
|
82
|
-
t.spec_opts = ["--format", "specdoc", "--dry-run"]
|
|
83
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
desc "Print Specdoc for all plugin examples"
|
|
87
|
-
Spec::Rake::SpecTask.new(:plugin_doc) do |t|
|
|
88
|
-
t.spec_opts = ["--format", "specdoc", "--dry-run"]
|
|
89
|
-
t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*')
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
[:models, :controllers, :views, :helpers, :lib, :integration].each do |sub|
|
|
93
|
-
desc "Run the code examples in spec/#{sub}"
|
|
94
|
-
Spec::Rake::SpecTask.new(sub => spec_prereq) do |t|
|
|
95
|
-
t.spec_opts = ['--options', "\"#{blacklight_plugin_dir}/spec/spec.opts\""]
|
|
96
|
-
t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"]
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
desc "Run the code examples in vendor/plugins (except RSpec's own)"
|
|
101
|
-
Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t|
|
|
102
|
-
t.spec_opts = ['--options', "\"#{blacklight_plugin_dir}/spec/spec.opts\""]
|
|
103
|
-
t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*")
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
namespace :plugins do
|
|
107
|
-
desc "Runs the examples for rspec_on_rails"
|
|
108
|
-
Spec::Rake::SpecTask.new(:rspec_on_rails) do |t|
|
|
109
|
-
t.spec_opts = ['--options', "\"#{blacklight_plugin_dir}/spec/spec.opts\""]
|
|
110
|
-
t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb']
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
# Setup specs for stats
|
|
115
|
-
task :statsetup do
|
|
116
|
-
require 'code_statistics'
|
|
117
|
-
::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models')
|
|
118
|
-
::STATS_DIRECTORIES << %w(View\ specs spec/views) if File.exist?('spec/views')
|
|
119
|
-
::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers')
|
|
120
|
-
::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers')
|
|
121
|
-
::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib')
|
|
122
|
-
::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing')
|
|
123
|
-
::STATS_DIRECTORIES << %w(Integration\ specs spec/integration) if File.exist?('spec/integration')
|
|
124
|
-
::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
|
|
125
|
-
::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
|
|
126
|
-
::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
|
|
127
|
-
::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers')
|
|
128
|
-
::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib')
|
|
129
|
-
::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing')
|
|
130
|
-
::CodeStatistics::TEST_TYPES << "Integration specs" if File.exist?('spec/integration')
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
namespace :db do
|
|
134
|
-
namespace :fixtures do
|
|
135
|
-
desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z."
|
|
136
|
-
task :load => :environment do
|
|
137
|
-
ActiveRecord::Base.establish_connection(Rails.env)
|
|
138
|
-
base_dir = File.join(Rails.root, 'spec', 'fixtures')
|
|
139
|
-
fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir
|
|
140
|
-
|
|
141
|
-
require 'active_record/fixtures'
|
|
142
|
-
(ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file|
|
|
143
|
-
Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
|
|
144
|
-
end
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
namespace :server do
|
|
150
|
-
daemonized_server_pid = File.expand_path("#{blacklight_plugin_dir}/tmp/pids/spec_server.pid")
|
|
151
|
-
|
|
152
|
-
desc "start spec_server."
|
|
153
|
-
task :start do
|
|
154
|
-
if File.exist?(daemonized_server_pid)
|
|
155
|
-
$stderr.puts "spec_server is already running."
|
|
156
|
-
else
|
|
157
|
-
$stderr.puts %Q{Starting up spec_server ...}
|
|
158
|
-
FileUtils.mkdir_p('tmp/pids') unless test ?d, 'tmp/pids'
|
|
159
|
-
system("ruby", "script/spec_server", "--daemon", "--pid", daemonized_server_pid)
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
desc "stop spec_server."
|
|
164
|
-
task :stop do
|
|
165
|
-
unless File.exist?(daemonized_server_pid)
|
|
166
|
-
$stderr.puts "No server running."
|
|
167
|
-
else
|
|
168
|
-
$stderr.puts "Shutting down spec_server ..."
|
|
169
|
-
system("kill", "-s", "TERM", File.read(daemonized_server_pid).strip) &&
|
|
170
|
-
File.delete(daemonized_server_pid)
|
|
171
|
-
end
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
desc "restart spec_server."
|
|
175
|
-
task :restart => [:stop, :start]
|
|
176
|
-
|
|
177
|
-
desc "check if spec server is running"
|
|
178
|
-
task :status do
|
|
179
|
-
if File.exist?(daemonized_server_pid)
|
|
180
|
-
$stderr.puts %Q{spec_server is running (PID: #{File.read(daemonized_server_pid).gsub("\n","")})}
|
|
181
|
-
else
|
|
182
|
-
$stderr.puts "No server running."
|
|
183
|
-
end
|
|
184
|
-
end
|
|
185
|
-
end
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
end
|