umlaut 3.0.0beta3 → 3.0.0beta4
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/app/controllers/store_controller.rb +1 -2
- data/app/controllers/umlaut_controller.rb +5 -0
- data/app/helpers/resolve_helper.rb +14 -2
- data/app/helpers/umlaut/footer_helper.rb +4 -0
- data/app/models/service_response.rb +7 -1
- data/app/views/resolve/_standard_response_item.html.erb +2 -2
- data/db/migrate/01_umlaut_init.rb +1 -10
- data/lib/service_adaptors/amazon.rb +5 -5
- data/lib/tasks/umlaut.rake +62 -43
- data/lib/umlaut/version.rb +1 -1
- data/lib/umlaut_configurable.rb +10 -17
- data/test/dummy/db/migrate/{20120229192032_umlaut_init.umlaut.rb → 20120402191628_umlaut_init.umlaut.rb} +1 -10
- data/test/dummy/db/schema.rb +1 -10
- data/test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26 +0 -0
- data/test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80 +0 -0
- data/test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41 +0 -0
- data/test/dummy/tmp/cache/assets/CBD/730/sprockets%2F034c1086748b981c36672d5a56e7fed6 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f +0 -0
- data/test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d +0 -0
- data/test/dummy/tmp/cache/assets/CD1/F20/sprockets%2F385e5fb31cf27e262480d1174be1d500 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46 +0 -0
- data/test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398 +0 -0
- data/test/dummy/tmp/cache/assets/D16/F90/sprockets%2F5fe3c021048c6f9a6086bed7736d87b1 +0 -0
- data/test/dummy/tmp/cache/assets/D24/360/sprockets%2F6987b047a96dc685ba3cf39b31477f6d +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6 +0 -0
- data/test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b +0 -0
- data/test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6 +0 -0
- data/test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6 +0 -0
- data/test/dummy/tmp/cache/assets/DC0/D20/sprockets%2F1ccf7405cd252dcec4bf23af82e2563a +0 -0
- data/test/dummy/tmp/cache/assets/DCF/7B0/sprockets%2Ffaa6a4d1af3261fca7b6ddc987386b90 +0 -0
- data/test/dummy/tmp/cache/assets/DD2/D80/sprockets%2Fc66d103807d0f971fbbcf9aa8b8b27ee +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8 +0 -0
- data/test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b +0 -0
- data/test/dummy/tmp/cache/assets/DFC/040/sprockets%2F15ea81cf915c0cb1dfc9cc04c9fef364 +0 -0
- data/test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6 +0 -0
- metadata +95 -35
@@ -16,9 +16,8 @@ class StoreController < UmlautController
|
|
16
16
|
referent = perm.referent
|
17
17
|
elsif (perm && perm.context_obj_serialized)
|
18
18
|
stored_co = perm.restore_context_object
|
19
|
-
|
20
19
|
# And a referrent, no referrer for now, we'll restore it later.
|
21
|
-
referent = Referent.create_by_context_object( stored_co,
|
20
|
+
referent = Referent.create_by_context_object( stored_co, :permalink => false )
|
22
21
|
perm.referent = referent
|
23
22
|
end
|
24
23
|
|
@@ -30,6 +30,11 @@ class UmlautController < ApplicationController
|
|
30
30
|
# OR name of image asset in local app.
|
31
31
|
#link_img_url "http//something"
|
32
32
|
|
33
|
+
# string used in standard layout footer to identify your app.
|
34
|
+
# mark it html_safe if it includes html
|
35
|
+
# footer_credit "Find It service provided by <a href='http://www.university.edu/'>My University</a>".html_safe
|
36
|
+
|
37
|
+
|
33
38
|
# Sometimes Umlaut sends out email, what email addr should it be from?
|
34
39
|
# from_email_addr 'no_reply@umlaut.example.com'
|
35
40
|
|
@@ -118,6 +118,19 @@ module ResolveHelper
|
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
121
|
+
# If response has a :content key returns it -- and marks it html_safe
|
122
|
+
# if response has a :content_html_safe == true key.
|
123
|
+
# returns false if no :content.
|
124
|
+
def response_content(service_response)
|
125
|
+
content = service_response[:content]
|
126
|
+
return false unless content
|
127
|
+
|
128
|
+
content = content.html_safe if service_response[:content_html_safe] == true
|
129
|
+
|
130
|
+
return content
|
131
|
+
end
|
132
|
+
|
133
|
+
|
121
134
|
|
122
135
|
|
123
136
|
# Code-generating helper to add a "More" link to a list, with a maximum
|
@@ -157,9 +170,8 @@ module ResolveHelper
|
|
157
170
|
|
158
171
|
|
159
172
|
content = "".html_safe
|
160
|
-
|
161
173
|
content <<
|
162
|
-
content_tag(:ul, :class =>
|
174
|
+
content_tag(:ul, :class => options[:ul_class]) do
|
163
175
|
list.enum_for(:each_with_index).collect do |item, index|
|
164
176
|
capture(item, index, &block) unless list.length > options[:limit] && index >= options[:limit]-2
|
165
177
|
end.join(" \n ").html_safe
|
@@ -11,6 +11,10 @@ module Umlaut::FooterHelper
|
|
11
11
|
if @collection
|
12
12
|
content = "".html_safe
|
13
13
|
|
14
|
+
if umlaut_config.footer_credit
|
15
|
+
content << umlaut_config.footer_credit + " | "
|
16
|
+
end
|
17
|
+
|
14
18
|
content << "Powered by ".html_safe + link_to("Umlaut", "http://github.com/team_umlaut/umlaut") + ". ".html_safe
|
15
19
|
|
16
20
|
credit_segments = []
|
@@ -70,7 +70,13 @@ These are applicable only when the incoming OpenURL is an article-level citation
|
|
70
70
|
== Abstracts/Tocs:
|
71
71
|
Can be a link to, or actual content. Either way, should be set
|
72
72
|
up to link to source of content if possible. Basic set, plus:
|
73
|
-
[:content] actual content, if available.
|
73
|
+
[:content] actual content, if available.
|
74
|
+
[:content_html_safe] Set to true if content includes html which should be
|
75
|
+
passed through un-escaped. Service is responsible
|
76
|
+
for making sure the HTML is safe from injection
|
77
|
+
attacks (injection attacks from vendor API's? Why not?).
|
78
|
+
ActionView::Helpers::SanitizeHelper's #sanitize
|
79
|
+
method can convenient.
|
74
80
|
|
75
81
|
=end
|
76
82
|
class ServiceResponse < ActiveRecord::Base
|
@@ -26,12 +26,12 @@
|
|
26
26
|
{:id => "svctype_link_#{service_response.id}",
|
27
27
|
:target => "_blank",
|
28
28
|
:class => "ajax_window"}) %>
|
29
|
-
<% elsif (
|
29
|
+
<% elsif (content = response_content(view_data ))
|
30
30
|
#collapsible content on page
|
31
31
|
%>
|
32
32
|
<%= expand_contract_section(view_data[:display_text], "svc_id_#{service_response.id}") do %>
|
33
33
|
<div class="section_content_indent">
|
34
|
-
<%=
|
34
|
+
<%= content %>
|
35
35
|
</div>
|
36
36
|
<% end %>
|
37
37
|
|
@@ -94,16 +94,7 @@ class UmlautInit < ActiveRecord::Migration
|
|
94
94
|
end
|
95
95
|
|
96
96
|
add_index "service_responses", ["service_id", "response_key", "value_string", "value_alt_string"], :name => "svc_resp_service_id"
|
97
|
-
|
98
|
-
create_table "sessions" do |t|
|
99
|
-
t.string "session_id"
|
100
|
-
t.text "data"
|
101
|
-
t.datetime "updated_at"
|
102
|
-
end
|
103
|
-
|
104
|
-
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
|
105
|
-
add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
|
106
|
-
|
97
|
+
|
107
98
|
create_table "sfx_urls" do |t|
|
108
99
|
t.string "url"
|
109
100
|
end
|
@@ -39,6 +39,7 @@ class Amazon < Service
|
|
39
39
|
|
40
40
|
|
41
41
|
include MetadataHelper
|
42
|
+
include ActionView::Helpers::SanitizeHelper
|
42
43
|
|
43
44
|
required_config_params :url, :api_key, :associate_tag
|
44
45
|
attr_reader :url
|
@@ -181,7 +182,6 @@ class Amazon < Service
|
|
181
182
|
err = (aws.at("ItemLookupResponse/Items/Request/Errors/Error"))
|
182
183
|
err = (aws.at("ItemLookupErrorResponse")) if err.blank?
|
183
184
|
|
184
|
-
debugger
|
185
185
|
unless (err.blank?)
|
186
186
|
if (err.at('Code').text == 'AWS.InvalidParameterValue')
|
187
187
|
# Indicates an ISBN that Amazon doesn't know about, or that
|
@@ -227,9 +227,8 @@ class Amazon < Service
|
|
227
227
|
if ( @service_types.include?("abstract") &&
|
228
228
|
desc =
|
229
229
|
(aws.at("ItemLookupResponse/Items/Item/EditorialReviews/EditorialReview/Content")))
|
230
|
-
|
231
|
-
|
232
|
-
desc_text = CGI.unescapeHTML( desc.inner_text )
|
230
|
+
|
231
|
+
desc_text = desc.inner_text
|
233
232
|
|
234
233
|
unless ( desc_text.blank? )
|
235
234
|
request.add_service_response(
|
@@ -238,7 +237,8 @@ class Amazon < Service
|
|
238
237
|
:url => item_url,
|
239
238
|
:key=>'abstract',
|
240
239
|
:value_string=>asin,
|
241
|
-
:content=>desc_text ,
|
240
|
+
:content=> sanitize(desc_text) ,
|
241
|
+
:content_html_safe => true,
|
242
242
|
:service_type_value => 'abstract')
|
243
243
|
end
|
244
244
|
end
|
data/lib/tasks/umlaut.rake
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
namespace :umlaut do
|
2
2
|
desc "Perform nightly maintenance. Set up in cron."
|
3
|
-
task :nightly_maintenance => [:load_sfx_urls, :
|
3
|
+
task :nightly_maintenance => [:load_sfx_urls, :expire_old_data]
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -47,44 +47,38 @@ namespace :umlaut do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
desc "Expire sessions older than config.app_config.session_expire_seconds"
|
51
|
-
task :expire_sessions => :environment do
|
52
|
-
# Assume sessions are in db.
|
53
|
-
# Don't know good way to get the connection associated with sessions,
|
54
|
-
# since there is no model. Assume Request is in the same db.
|
55
|
-
expire_seconds = UmlautController.umlaut_config.lookup!("session_expire_seconds", 1.day)
|
56
|
-
puts "Expiring sessions older than #{expire_seconds} seconds (set with config session_expire_seconds)."
|
57
|
-
Request.connection.execute("delete from sessions where now() - updated_at > #{expire_seconds}")
|
58
|
-
end
|
59
50
|
|
60
51
|
|
61
52
|
desc "Cleanup of database for old data associated with expired sessions etc."
|
62
53
|
task :expire_old_data => :environment do
|
63
54
|
# There are requests, responses, and dispatched_service entries
|
64
55
|
# hanging around for things that may be way old and no longer
|
65
|
-
# need to hang around.
|
66
|
-
# If they are no longer associated with any session, mainly.
|
56
|
+
# need to hang around.
|
67
57
|
|
68
58
|
# Deleting things as aggressively as we're doing here doesn't leave
|
69
59
|
# us much for statistics, but we aren't currently gathering any
|
70
60
|
# statistics anyway. If statistics are needed, more exploration
|
71
61
|
# is needed of performance vs. leaving things around for statistics.
|
72
62
|
|
73
|
-
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
77
|
-
|
78
|
-
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
63
|
+
# Current Umlaut never re-uses a request different between sessions,
|
64
|
+
# and never uses Referents between requests.
|
65
|
+
# Permalink architecture has been fixed to not rely on requests or
|
66
|
+
# referents, permalinks (post new architecture) store their own context
|
67
|
+
# object.
|
68
|
+
|
69
|
+
# To make efficient SQL queries to delete 'orphaned' records whose
|
70
|
+
# foreign keys are neccesary... is tricky, with or without AR, and
|
71
|
+
# may vary in different dbs -- this works for MySQL, it's possible
|
72
|
+
# it will have a problem with Postgres, hasn't been tested.
|
82
73
|
|
83
|
-
puts "Deleting Requests no longer associated with a session."
|
84
74
|
begin_time = Time.now
|
85
|
-
|
86
|
-
|
87
|
-
|
75
|
+
|
76
|
+
rdelete_time = Time.now - UmlautController.umlaut_config.lookup!("nightly_maintenance.request_expire_seconds", 1.day)
|
77
|
+
puts "Deleting Requests older than #{rdelete_time}"
|
78
|
+
rdelete = Request.where("created_at < ?", rdelete_time)
|
79
|
+
|
80
|
+
count = rdelete.count
|
81
|
+
rdelete.delete_all
|
88
82
|
puts " Deleted #{count} Requests in #{Time.now - begin_time}"
|
89
83
|
|
90
84
|
|
@@ -96,38 +90,63 @@ namespace :umlaut do
|
|
96
90
|
|
97
91
|
puts "Deleting orphaned ServiceResponses...."
|
98
92
|
begin_time = Time.now
|
99
|
-
|
100
|
-
|
101
|
-
|
93
|
+
# DELETE FROM `service_responses` WHERE (NOT (EXISTS (SELECT `requests`.* FROM `requests` WHERE (service_responses.request_id = requests.id))))
|
94
|
+
sr_delete = ServiceResponse.where(
|
95
|
+
Request.where("#{ServiceResponse.arel_table.name}.request_id = requests.id").exists.not
|
96
|
+
)
|
97
|
+
|
98
|
+
count = sr_delete.count
|
99
|
+
sr_delete.delete_all
|
102
100
|
puts " Deleted #{count} ServiceResponses in #{Time.now - begin_time}"
|
103
101
|
|
104
102
|
|
105
103
|
# And get rid of DispatchedServices for 'dead' requests too. Don't
|
106
104
|
# need em.
|
107
105
|
puts "Deleting DispatchedServices for dead Requests..."
|
106
|
+
keep_failed = UmlautController.umlaut_config.lookup!("nightly_maintenance.failed_dispatch_expire_seconds", 4.weeks)
|
108
107
|
begin_time = Time.now
|
109
|
-
#
|
110
|
-
|
111
|
-
|
112
|
-
|
108
|
+
# DELETE FROM `dispatched_services` WHERE (NOT (EXISTS (SELECT `requests`.* FROM `requests` WHERE (dispatched_services.request_id = requests.id))))
|
109
|
+
ds_delete = DispatchedService.where("status NOT IN (?) OR updated_at < ?",
|
110
|
+
[DispatchedService::FailedFatal, DispatchedService::FailedTemporary], Time.now - keep_failed
|
111
|
+
).where(
|
112
|
+
Request.where("dispatched_services.request_id = requests.id").exists.not
|
113
|
+
)
|
114
|
+
count = ds_delete.count
|
115
|
+
ds_delete.delete_all
|
113
116
|
puts " Deleted #{count} DispatchedServices in #{Time.now - begin_time}"
|
114
117
|
|
115
118
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
referent_expire = Time.now - UmlautController.umlaut_config.lookup!("referent_expire_seconds", 20.days)
|
120
|
-
puts "Deleting Referents/ReferentValues older than #{referent_expire.inspect}"
|
119
|
+
|
120
|
+
|
121
|
+
puts "Deleting orphaned Referents"
|
121
122
|
begin_time = Time.now
|
122
|
-
#
|
123
|
-
|
124
|
-
|
123
|
+
# DELETE FROM `referents` WHERE (NOT (EXISTS (SELECT `requests`.* FROM `requests` WHERE (referents.id = requests.referent_id))))
|
124
|
+
ref_delete = Referent.where(
|
125
|
+
Request.where("referents.id = requests.referent_id").exists.not
|
126
|
+
)
|
127
|
+
count = ref_delete.count
|
128
|
+
ref_delete.delete_all
|
129
|
+
puts " Deleted #{count} Referents in #{Time.now - begin_time}"
|
130
|
+
|
131
|
+
|
132
|
+
puts "Deleting orphaned ReferentValues"
|
133
|
+
begin_time = Time.now
|
134
|
+
# DELETE FROM `referent_values` WHERE (NOT (EXISTS (SELECT `referents`.* FROM `referents` WHERE (referents.id = referent_values.referent_id))))
|
135
|
+
rv_delete = ReferentValue.where(
|
136
|
+
Referent.where("referents.id = referent_values.referent_id").exists.not
|
137
|
+
)
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
count = rv_delete.count
|
142
|
+
rv_delete.delete_all
|
143
|
+
puts " Deleted #{count} ReferentValues in #{Time.now - begin_time}"
|
144
|
+
|
125
145
|
|
126
146
|
# And turns out we have all Clickthroughs being stored for no apparent
|
127
147
|
# reason, let's just delete any older than 3 months ago.
|
128
|
-
Clickthrough.
|
129
|
-
puts "Deleted Clickthroughs older than 3 months"
|
130
|
-
|
148
|
+
Clickthrough.delete_all(['created_at < ?', 3.months.ago])
|
149
|
+
puts "Deleted Clickthroughs older than 3 months"
|
131
150
|
end
|
132
151
|
|
133
152
|
end
|
data/lib/umlaut/version.rb
CHANGED
data/lib/umlaut_configurable.rb
CHANGED
@@ -29,6 +29,10 @@ module UmlautConfigurable
|
|
29
29
|
# URL to image to use for link resolver, OR name of image asset in local app.
|
30
30
|
#link_img_url "http//something"
|
31
31
|
|
32
|
+
# string used in standard layout footer to identify your app.
|
33
|
+
# mark it html_safe if it includes html
|
34
|
+
# footer_credit "Find It service provided by <a href='http://www.university.edu/'>My University</a>".html_safe
|
35
|
+
|
32
36
|
# Sometimes Umlaut sends out email, what email addr should it be from?
|
33
37
|
from_email_addr 'no_reply@umlaut.example.com'
|
34
38
|
|
@@ -134,24 +138,13 @@ module UmlautConfigurable
|
|
134
138
|
entry_not_in_kb_warning true
|
135
139
|
|
136
140
|
nightly_maintenance do
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
referent_expire_seconds deferred! {|c| c.session_expire_seconds }
|
142
|
-
|
141
|
+
# How old does a request have to be to be deleted by nightly_maintenance?
|
142
|
+
# requests are only re-used within a session. Probably no reason to
|
143
|
+
# change this.
|
144
|
+
request_expire_seconds 1.day
|
143
145
|
|
144
|
-
#
|
145
|
-
|
146
|
-
# want to expire them eventually, say every 24 hours.
|
147
|
-
# You can do this in two ways.
|
148
|
-
#
|
149
|
-
# A Number of seconds in an interval, eg:
|
150
|
-
response_expire_interval 1.day
|
151
|
-
#
|
152
|
-
# Or, sometimes it's convenient to synchronize this with some other
|
153
|
-
# process that runs on crontab. Say, expire at midnight every night:
|
154
|
-
# response_expire_crontab_format "00 00 * * *"
|
146
|
+
# How long to keep FAILED DispatchServices, for viewing problems/troubleshooting
|
147
|
+
failed_dispatch_expire_seconds 4.weeks
|
155
148
|
|
156
149
|
end
|
157
150
|
|
@@ -95,16 +95,7 @@ class UmlautInit < ActiveRecord::Migration
|
|
95
95
|
end
|
96
96
|
|
97
97
|
add_index "service_responses", ["service_id", "response_key", "value_string", "value_alt_string"], :name => "svc_resp_service_id"
|
98
|
-
|
99
|
-
create_table "sessions" do |t|
|
100
|
-
t.string "session_id"
|
101
|
-
t.text "data"
|
102
|
-
t.datetime "updated_at"
|
103
|
-
end
|
104
|
-
|
105
|
-
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
|
106
|
-
add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
|
107
|
-
|
98
|
+
|
108
99
|
create_table "sfx_urls" do |t|
|
109
100
|
t.string "url"
|
110
101
|
end
|
data/test/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
14
|
+
ActiveRecord::Schema.define(:version => 20120402191628) do
|
15
15
|
|
16
16
|
create_table "clickthroughs", :force => true do |t|
|
17
17
|
t.integer "request_id", :default => 0, :null => false
|
@@ -108,15 +108,6 @@ ActiveRecord::Schema.define(:version => 20120229192032) do
|
|
108
108
|
|
109
109
|
add_index "service_responses", ["service_id", "response_key", "value_string", "value_alt_string"], :name => "svc_resp_service_id"
|
110
110
|
|
111
|
-
create_table "sessions", :force => true do |t|
|
112
|
-
t.string "session_id"
|
113
|
-
t.text "data"
|
114
|
-
t.datetime "updated_at"
|
115
|
-
end
|
116
|
-
|
117
|
-
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
|
118
|
-
add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
|
119
|
-
|
120
111
|
create_table "sfx_urls", :force => true do |t|
|
121
112
|
t.string "url"
|
122
113
|
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: umlaut
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.0beta4
|
5
5
|
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &223216140 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.2.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *223216140
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jquery-rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &223215720 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *223215720
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: nokogiri
|
38
|
-
requirement: &
|
38
|
+
requirement: &224032220 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - =
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.5.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *224032220
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: openurl
|
49
|
-
requirement: &
|
49
|
+
requirement: &224031720 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.3.0
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *224031720
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: marc
|
60
|
-
requirement: &
|
60
|
+
requirement: &224031240 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.4.3
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *224031240
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: isbn
|
71
|
-
requirement: &
|
71
|
+
requirement: &224030800 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *224030800
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: htmlentities
|
82
|
-
requirement: &
|
82
|
+
requirement: &224030200 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *224030200
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: multi_json
|
93
|
-
requirement: &
|
93
|
+
requirement: &224029580 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *224029580
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: confstruct
|
104
|
-
requirement: &
|
104
|
+
requirement: &224028780 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
@@ -109,21 +109,21 @@ dependencies:
|
|
109
109
|
version: '0.2'
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *224028780
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: exlibris-primo
|
115
|
-
requirement: &
|
115
|
+
requirement: &224028280 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
|
-
- -
|
118
|
+
- - ~>
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
120
|
+
version: 0.1.0
|
121
121
|
type: :runtime
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *224028280
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: single_test
|
126
|
-
requirement: &
|
126
|
+
requirement: &224027780 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ~>
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: 0.5.1
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *224027780
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: uglifier
|
137
|
-
requirement: &
|
137
|
+
requirement: &224027200 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '0'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *224027200
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: therubyracer
|
148
|
-
requirement: &
|
148
|
+
requirement: &224026480 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,10 +153,10 @@ dependencies:
|
|
153
153
|
version: '0'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *224026480
|
157
157
|
- !ruby/object:Gem::Dependency
|
158
158
|
name: ruby-prof
|
159
|
-
requirement: &
|
159
|
+
requirement: &224025900 !ruby/object:Gem::Requirement
|
160
160
|
none: false
|
161
161
|
requirements:
|
162
162
|
- - ! '>='
|
@@ -164,7 +164,7 @@ dependencies:
|
|
164
164
|
version: '0'
|
165
165
|
type: :development
|
166
166
|
prerelease: false
|
167
|
-
version_requirements: *
|
167
|
+
version_requirements: *224025900
|
168
168
|
description:
|
169
169
|
email:
|
170
170
|
- umlaut-general@rubyforge.org
|
@@ -375,6 +375,36 @@ files:
|
|
375
375
|
- ./test/integration/request_test.rb
|
376
376
|
- ./test/integration/request_reuse_test.rb
|
377
377
|
- ./test/integration/permalinks_test.rb
|
378
|
+
- ./test/dummy/tmp/cache/assets/D16/F90/sprockets%2F5fe3c021048c6f9a6086bed7736d87b1
|
379
|
+
- ./test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8
|
380
|
+
- ./test/dummy/tmp/cache/assets/CD1/F20/sprockets%2F385e5fb31cf27e262480d1174be1d500
|
381
|
+
- ./test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
|
382
|
+
- ./test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6
|
383
|
+
- ./test/dummy/tmp/cache/assets/CBD/730/sprockets%2F034c1086748b981c36672d5a56e7fed6
|
384
|
+
- ./test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
|
385
|
+
- ./test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6
|
386
|
+
- ./test/dummy/tmp/cache/assets/D24/360/sprockets%2F6987b047a96dc685ba3cf39b31477f6d
|
387
|
+
- ./test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
|
388
|
+
- ./test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398
|
389
|
+
- ./test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e
|
390
|
+
- ./test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46
|
391
|
+
- ./test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0
|
392
|
+
- ./test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41
|
393
|
+
- ./test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
|
394
|
+
- ./test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b
|
395
|
+
- ./test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6
|
396
|
+
- ./test/dummy/tmp/cache/assets/DFC/040/sprockets%2F15ea81cf915c0cb1dfc9cc04c9fef364
|
397
|
+
- ./test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b
|
398
|
+
- ./test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f
|
399
|
+
- ./test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6
|
400
|
+
- ./test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d
|
401
|
+
- ./test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80
|
402
|
+
- ./test/dummy/tmp/cache/assets/DCF/7B0/sprockets%2Ffaa6a4d1af3261fca7b6ddc987386b90
|
403
|
+
- ./test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
|
404
|
+
- ./test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26
|
405
|
+
- ./test/dummy/tmp/cache/assets/DC0/D20/sprockets%2F1ccf7405cd252dcec4bf23af82e2563a
|
406
|
+
- ./test/dummy/tmp/cache/assets/DD2/D80/sprockets%2Fc66d103807d0f971fbbcf9aa8b8b27ee
|
407
|
+
- ./test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
|
378
408
|
- ./test/dummy/tmp/performance/ProfilerTest#test_puts_foo_process_time_graph.html
|
379
409
|
- ./test/dummy/tmp/performance/BenchmarkerTest#test_puts_foo_gc_time.csv
|
380
410
|
- ./test/dummy/tmp/performance/minus.png
|
@@ -419,7 +449,7 @@ files:
|
|
419
449
|
- ./test/dummy/script/rails
|
420
450
|
- ./test/dummy/config.ru
|
421
451
|
- ./test/dummy/db/schema.rb
|
422
|
-
- ./test/dummy/db/migrate/
|
452
|
+
- ./test/dummy/db/migrate/20120402191628_umlaut_init.umlaut.rb
|
423
453
|
- ./test/performance/browsing_test.rb
|
424
454
|
- ./test/unit/aws_product_sign_test.rb
|
425
455
|
- ./test/unit/service_test.rb
|
@@ -451,7 +481,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
451
481
|
version: '0'
|
452
482
|
segments:
|
453
483
|
- 0
|
454
|
-
hash:
|
484
|
+
hash: -556718949677620916
|
455
485
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
456
486
|
none: false
|
457
487
|
requirements:
|
@@ -469,6 +499,36 @@ test_files:
|
|
469
499
|
- ./test/integration/request_test.rb
|
470
500
|
- ./test/integration/request_reuse_test.rb
|
471
501
|
- ./test/integration/permalinks_test.rb
|
502
|
+
- ./test/dummy/tmp/cache/assets/D16/F90/sprockets%2F5fe3c021048c6f9a6086bed7736d87b1
|
503
|
+
- ./test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8
|
504
|
+
- ./test/dummy/tmp/cache/assets/CD1/F20/sprockets%2F385e5fb31cf27e262480d1174be1d500
|
505
|
+
- ./test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
|
506
|
+
- ./test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6
|
507
|
+
- ./test/dummy/tmp/cache/assets/CBD/730/sprockets%2F034c1086748b981c36672d5a56e7fed6
|
508
|
+
- ./test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
|
509
|
+
- ./test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6
|
510
|
+
- ./test/dummy/tmp/cache/assets/D24/360/sprockets%2F6987b047a96dc685ba3cf39b31477f6d
|
511
|
+
- ./test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
|
512
|
+
- ./test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398
|
513
|
+
- ./test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e
|
514
|
+
- ./test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46
|
515
|
+
- ./test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0
|
516
|
+
- ./test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41
|
517
|
+
- ./test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
|
518
|
+
- ./test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b
|
519
|
+
- ./test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6
|
520
|
+
- ./test/dummy/tmp/cache/assets/DFC/040/sprockets%2F15ea81cf915c0cb1dfc9cc04c9fef364
|
521
|
+
- ./test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b
|
522
|
+
- ./test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f
|
523
|
+
- ./test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6
|
524
|
+
- ./test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d
|
525
|
+
- ./test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80
|
526
|
+
- ./test/dummy/tmp/cache/assets/DCF/7B0/sprockets%2Ffaa6a4d1af3261fca7b6ddc987386b90
|
527
|
+
- ./test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
|
528
|
+
- ./test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26
|
529
|
+
- ./test/dummy/tmp/cache/assets/DC0/D20/sprockets%2F1ccf7405cd252dcec4bf23af82e2563a
|
530
|
+
- ./test/dummy/tmp/cache/assets/DD2/D80/sprockets%2Fc66d103807d0f971fbbcf9aa8b8b27ee
|
531
|
+
- ./test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
|
472
532
|
- ./test/dummy/tmp/performance/ProfilerTest#test_puts_foo_process_time_graph.html
|
473
533
|
- ./test/dummy/tmp/performance/BenchmarkerTest#test_puts_foo_gc_time.csv
|
474
534
|
- ./test/dummy/tmp/performance/minus.png
|
@@ -513,7 +573,7 @@ test_files:
|
|
513
573
|
- ./test/dummy/script/rails
|
514
574
|
- ./test/dummy/config.ru
|
515
575
|
- ./test/dummy/db/schema.rb
|
516
|
-
- ./test/dummy/db/migrate/
|
576
|
+
- ./test/dummy/db/migrate/20120402191628_umlaut_init.umlaut.rb
|
517
577
|
- ./test/performance/browsing_test.rb
|
518
578
|
- ./test/unit/aws_product_sign_test.rb
|
519
579
|
- ./test/unit/service_test.rb
|