umlaut 3.0.0alpha11 → 3.0.0alpha12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/app/assets/stylesheets/umlaut.css +43 -1
  2. data/app/controllers/admin/service_errors_controller.rb +57 -0
  3. data/app/controllers/store_controller.rb +6 -1
  4. data/app/helpers/umlaut/helper.rb +1 -1
  5. data/app/views/admin/service_errors/_dispatched_service.html.erb +21 -0
  6. data/app/views/admin/service_errors/index.html.erb +45 -0
  7. data/app/views/resolve/_cover_image.html.erb +17 -6
  8. data/db/migrate/01_umlaut_init.rb +4 -3
  9. data/lib/umlaut/routes.rb +10 -1
  10. data/lib/umlaut/version.rb +1 -1
  11. data/test/dummy/config/routes.rb +1 -1
  12. data/test/dummy/db/migrate/{20111228211210_umlaut_init.rb → 20120229192032_umlaut_init.umlaut.rb} +5 -3
  13. data/test/dummy/db/schema.rb +3 -1
  14. data/test/dummy/tmp/cache/assets/C2A/410/sprockets%2Fd654b74912b4773a2534616863fb6565 +0 -0
  15. data/test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26 +0 -0
  16. data/test/dummy/tmp/cache/assets/C5F/340/sprockets%2F99692920160b7a279b86a80415b79db7 +0 -0
  17. data/test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80 +0 -0
  18. data/test/dummy/tmp/cache/assets/CBD/730/sprockets%2F034c1086748b981c36672d5a56e7fed6 +0 -0
  19. data/test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f +0 -0
  20. data/test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d +0 -0
  21. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  22. data/test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46 +0 -0
  23. data/test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398 +0 -0
  24. data/test/dummy/tmp/cache/assets/D16/F90/sprockets%2F5fe3c021048c6f9a6086bed7736d87b1 +0 -0
  25. data/test/dummy/tmp/cache/assets/D24/360/sprockets%2F6987b047a96dc685ba3cf39b31477f6d +0 -0
  26. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  27. data/test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6 +0 -0
  28. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  29. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  30. data/test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b +0 -0
  31. data/test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6 +0 -0
  32. data/test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6 +0 -0
  33. data/test/dummy/tmp/cache/assets/DC0/D20/sprockets%2F1ccf7405cd252dcec4bf23af82e2563a +0 -0
  34. data/test/dummy/tmp/cache/assets/DD2/D80/sprockets%2Fc66d103807d0f971fbbcf9aa8b8b27ee +0 -0
  35. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  36. data/test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8 +0 -0
  37. data/test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b +0 -0
  38. data/test/dummy/tmp/cache/assets/DFC/040/sprockets%2F15ea81cf915c0cb1dfc9cc04c9fef364 +0 -0
  39. data/test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e +0 -0
  40. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  41. data/test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6 +0 -0
  42. metadata +32 -49
  43. data/test/dummy/config/environments/profile.rb +0 -24
  44. data/test/dummy/profile/sfx_collection_prof.rb +0 -22
  45. data/test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41 +0 -0
  46. data/test/dummy/tmp/cache/assets/CD6/300/sprockets%2F397ec39d3d883789effe506c38760368 +0 -0
  47. data/test/dummy/tmp/cache/assets/CD7/DD0/sprockets%2F4f1fe68aa2042a0970bde9b185530646 +0 -0
  48. data/test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0 +0 -0
  49. data/test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9 +0 -0
  50. data/test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1 +0 -0
  51. data/test/dummy/tmp/cache/assets/DF5/5E0/sprockets%2F8e64a37c73cdc0b37a4ccfcb42ab45d8 +0 -0
  52. data/test/dummy/tmp/cache/assets/E38/FE0/sprockets%2Fe1fc875efa817cbb94a5d8de25ea4e6b +0 -0
@@ -854,5 +854,47 @@ body.banner {
854
854
  }
855
855
 
856
856
 
857
-
857
+ /***************
858
+ * ADMIN SCREENS
859
+ *
860
+ * Most of admin screen CSS is about _undoing_ general customizations
861
+ * umlaut css (or over-eager reset.css we're using, bah)
862
+ * did to all HTML elements, oops.
863
+ **************************/
864
+
865
+ .admin {
866
+ padding: 1em;
867
+ }
868
+
869
+ .admin h1 {
870
+ margin-top: .67em;
871
+ margin-bottom: .67em;
872
+ }
873
+
874
+ .admin h2 {
875
+ margin-top: 1em;
876
+ margin-bottom: .5em;
877
+ }
878
+
879
+ .admin ul {
880
+ list-style-type: disc;
881
+ padding-left: 40px;
882
+ }
883
+
884
+ .admin form {
885
+ margin-bottom: 1em;
886
+ }
887
+
888
+ .admin table {
889
+ margin-top: 2em;
890
+ border-spacing: 0;
891
+ }
892
+
893
+ .admin td {
894
+ padding: 6px 8px;
895
+ }
896
+
897
+ .admin tr.dispatch_line td {
898
+ border-top: 1px grey solid;
899
+ }
858
900
 
@@ -0,0 +1,57 @@
1
+ module Admin
2
+ class ServiceErrorsController < UmlautController
3
+ # by default, force ssl connection in production env, but can be
4
+ # config'd.
5
+ force_ssl if umlaut_config.lookup!("admin.force_ssl", Rails.env.production? )
6
+ # Cheesy way to do auth from config single or multiple. Alternately,
7
+ # you might want to protect at apache level, for instance for shib
8
+ # or SSO integration
9
+ if (admin_auth = umlaut_config.lookup!("admin.auth"))
10
+ before_filter lambda {
11
+ authenticate_or_request_with_http_basic do |login, password|
12
+ login == admin_auth[:username] && password == admin_auth[:password]
13
+ end
14
+ }
15
+ end
16
+
17
+
18
+ def index
19
+ # grab the earliest dispatch to see how far back our db goes
20
+ @earliest_dispatch = DispatchedService.select("updated_at").
21
+ order("updated_at").
22
+ limit(1).
23
+ first.
24
+ updated_at
25
+
26
+
27
+ errors_base = DispatchedService.
28
+ where(:status => [DispatchedService::FailedFatal, DispatchedService::FailedTemporary])
29
+
30
+ if params[:service_id]
31
+ errors_base = errors_base.where(:service_id => params[:service_id])
32
+ end
33
+
34
+ if params[:q]
35
+ errors_base = errors_base.where("exception_info #{" NOT " if params[:q_not]} like ?", "%#{params[:q]}%")
36
+ end
37
+
38
+ # will miraculously return a hash whose key is service_id, value
39
+ # is count of failed service dispatches.
40
+ @failed_by_service = errors_base.select("service_id").
41
+ group("service_id").
42
+ count
43
+
44
+ # And get the most recent batch of failed services
45
+ # kaminari page/per
46
+ @offset = params[:offset].to_i
47
+ @limit = params[:per_page].to_i
48
+ @limit = 10 if @limit == 0
49
+
50
+ @dispatched_services = errors_base.order("updated_at DESC").
51
+ limit(@limit).offset(@offset)
52
+ @dispatched_services_count = errors_base.count
53
+ end
54
+
55
+
56
+ end
57
+ end
@@ -19,8 +19,13 @@ class StoreController < UmlautController
19
19
  # And a referrent, no referrer for now, we'll restore it later.
20
20
  referent = Referent.create_by_context_object( stored_co, nil, :permalink => false )
21
21
  perm.referent = referent
22
- perm.save!
23
22
  end
23
+
24
+ perm.last_access = Time.now # keep track of when permalink last actually retrieved
25
+
26
+ # will catch possible new referent to be saved, as well as
27
+ # update to last_access
28
+ perm.save!
24
29
 
25
30
 
26
31
  unless ( referent )
@@ -25,7 +25,7 @@ module Umlaut::Helper
25
25
  if ( params[:params])
26
26
  link_to_arg = params[:params]
27
27
  else
28
- link_params = {:controller=>'resolve'}
28
+ link_params = {:controller=>'/resolve', :action => "index"}
29
29
  link_params.merge!( params[:extra_params] ) if params[:extra_params]
30
30
  link_to_arg = url_for_with_co( link_params, context_object )
31
31
  end
@@ -0,0 +1,21 @@
1
+ <tr class="dispatch_line">
2
+ <td><%= dispatched_service.updated_at.to_s(:short) %></td>
3
+ <td><%= dispatched_service.service_id %></td>
4
+ <td><%= dispatched_service.status %></td>
5
+ <td><%= link_to "[Re-request live]", url_for_with_co({:controller => "/resolve", :action => :index}, dispatched_service.request.to_context_object) %></td>
6
+ <td><%= link_to "[View cached request]", url_for(:controller => "/resolve", :action => :index, "umlaut.request_id" => dispatched_service.request_id ) %></td>
7
+ </tr>
8
+ <tr>
9
+ <% if dispatched_service.exception_info %>
10
+ <td colspan="5">
11
+ <%= dispatched_service.exception_info[:class_name] %>: <%= dispatched_service.exception_info[:message] %>
12
+ <% if dispatched_service.exception_info[:backtrace] %>
13
+ <ul>
14
+ <% dispatched_service.exception_info[:backtrace].each do |line| %>
15
+ <%= simple_format line %>
16
+ <% end %>
17
+ </ul>
18
+ <% end %>
19
+ </td>
20
+ </tr>
21
+ <% end %>
@@ -0,0 +1,45 @@
1
+ <div class="admin">
2
+
3
+ <h1>Admin: Service Errors Report</h1>
4
+
5
+ <p>Reports on rows in dispatched_services table that have failed status.</p>
6
+
7
+ <ul>
8
+ <li>Can be caused by uncaught exception in service.</li>
9
+ <li>Can be caused by service intentionally reporting failure</li>
10
+ <li>Other kinds of unexpected failure conditions may occur in your app that are not caught here, check logs</li>
11
+ <li>Only can report on dispatched_services rows that haven't been purged yet. <b>Current oldest record: <%= @earliest_dispatch.to_s(:short) %></b>
12
+ </ul>
13
+
14
+ <% if params[:service_id] %>
15
+ <h2>Service: <%= params[:service_id] %></h2>
16
+ <%= link_to "[View All]", params.merge(:service_id => nil) %>
17
+ <% else %>
18
+ <h2>By service</h2>
19
+
20
+ <table>
21
+ <% @failed_by_service.each_pair do |service_id, count| %>
22
+ <tr><td><%= link_to service_id, params.merge(:service_id => service_id) %></td><td><%= count %></td></tr>
23
+ <% end %>
24
+ </table>
25
+ <% end %>
26
+
27
+
28
+ <h2>Latest</h2>
29
+
30
+ <form>
31
+ <%= label_tag "q", "Filter on exception_info" %>
32
+ <%= text_field_tag "q", params[:q] %>
33
+ <%= check_box_tag 'q_not',"1", params[:q_not] %>
34
+ <%= label_tag "q_not", "NOT having query term" %>
35
+ <%= submit_tag "Filter" %>
36
+ </form>
37
+
38
+ <p>
39
+ <%= @offset + 1 %> - <%= [@offset + @limit, @dispatched_services_count].min %> of <%= @dispatched_services_count %>. <%= link_to "[Next]", params.merge("offset" => @offset + @limit ) %>
40
+
41
+ <table>
42
+ <%= render :partial => "dispatched_service", :collection => @dispatched_services %>
43
+ </table>
44
+
45
+ </div>
@@ -5,11 +5,22 @@
5
5
 
6
6
  # small med and x-large correspond roughly to amazon sm, med and lg.
7
7
  # large corresponds roughly to google medium. Just one dimension to
8
- # prevent disproportionate scaling.
9
- dimensions = { "small" => { "height" => 80 },
10
- "medium" => { "height" => 160},
11
- "large" => { "height" => 200 },
12
- "extra-large" => { "height" => 475}}
8
+ # prevent disproportionate scaling. We use CSS so we can set maximums
9
+ # in BOTH dimensions but let aspect ratio remain the same. We put it
10
+ # inline so HTML Snippet API clients get images constrained to reasonable
11
+ # sizes without extra CSS. IE6 won't do max-height/max-width, sorry IE6, no
12
+ # way to accomodate you (trying to put a width and a max-width triggers
13
+ # weird IE8 bugs!). Best we can do.
14
+ #
15
+ # generally the 'max-height' is our operative maximum for ordinary ratios,
16
+ # but we let the width be more than the height for weird ratio'd covers
17
+ # that are wider than square.
18
+ dimensions_style = {
19
+ "small" => "max-height: 80px; max-width: 100px;",
20
+ "medium" => "max-height: 160px; max-width: 200px;",
21
+ "large" => "max-height: 200px; max-width: 240px;",
22
+ "extra-large" => "max-height: 475px; max-width: 570px;"
23
+ }
13
24
 
14
25
 
15
26
 
@@ -27,7 +38,7 @@
27
38
  img_params['src'] = url_for(:controller => "resource", :action => "proxy", :id => img_st.id )
28
39
  end
29
40
 
30
- img_params.merge!( dimensions[size]) if fix_size
41
+ img_params.merge!( "style" => dimensions_style[size]) if fix_size
31
42
 
32
43
  tag('img', img_params )
33
44
 
@@ -22,10 +22,11 @@ class UmlautInit < ActiveRecord::Migration
22
22
  add_index "dispatched_services", ["request_id", "service_id"], :name => "dptch_request_id"
23
23
 
24
24
  create_table "permalinks" do |t|
25
- t.integer "referent_id", :default => 0
26
- t.date "created_on", :null => false
25
+ t.integer "referent_id", :default => 0
26
+ t.date "created_on", :null => false
27
27
  t.text "context_obj_serialized"
28
- t.string "orig_rfr_id", :limit => 256
28
+ t.string "orig_rfr_id", :limit => 256
29
+ t.date "last_access"
29
30
  end
30
31
 
31
32
  add_index "permalinks", ["referent_id"], :name => "plink_referent_idx"
data/lib/umlaut/routes.rb CHANGED
@@ -26,7 +26,8 @@ module Umlaut
26
26
  end
27
27
 
28
28
  def route_sets
29
- (@options[:only] || default_route_sets) - (@options[:except] || [])
29
+ # :admin is not included by default, needs to be turned on.
30
+ (@options[:only] || default_route_sets) - (@options[:except] || []) + (@options[:admin] == true ? [:admin] : [])
30
31
  end
31
32
 
32
33
  def default_route_sets
@@ -142,6 +143,14 @@ module Umlaut
142
143
  match 'images/spinner.gif' => redirect("/assets/spinner.gif")
143
144
  end
144
145
  end
146
+
147
+ def admin
148
+ add_routes do |options|
149
+ namespace "admin" do
150
+ match 'service_errors(/:service_id)' => "service_errors#index"
151
+ end
152
+ end
153
+ end
145
154
 
146
155
  end
147
156
  include RouteSets
@@ -1,3 +1,3 @@
1
1
  module Umlaut
2
- VERSION = "3.0.0alpha11"
2
+ VERSION = "3.0.0alpha12"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  Dummy::Application.routes.draw do
2
2
 
3
- Umlaut::Routes.new(self).draw
3
+ Umlaut::Routes.new(self, :admin => true).draw
4
4
 
5
5
  # The priority is based upon order of creation:
6
6
  # first created -> highest priority.
@@ -1,3 +1,4 @@
1
+ # This migration comes from umlaut (originally 1)
1
2
  class UmlautInit < ActiveRecord::Migration
2
3
  def change
3
4
  create_table "clickthroughs" do |t|
@@ -22,10 +23,11 @@ class UmlautInit < ActiveRecord::Migration
22
23
  add_index "dispatched_services", ["request_id", "service_id"], :name => "dptch_request_id"
23
24
 
24
25
  create_table "permalinks" do |t|
25
- t.integer "referent_id", :default => 0
26
- t.date "created_on", :null => false
26
+ t.integer "referent_id", :default => 0
27
+ t.date "created_on", :null => false
27
28
  t.text "context_obj_serialized"
28
- t.string "orig_rfr_id", :limit => 256
29
+ t.string "orig_rfr_id", :limit => 256
30
+ t.date "last_access"
29
31
  end
30
32
 
31
33
  add_index "permalinks", ["referent_id"], :name => "plink_referent_idx"
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  # This file is auto-generated from the current state of the database. Instead
2
3
  # of editing this file, please use the migrations feature of Active Record to
3
4
  # incrementally modify your database, and then regenerate this schema definition.
@@ -10,7 +11,7 @@
10
11
  #
11
12
  # It's strongly recommended to check this file into your version control system.
12
13
 
13
- ActiveRecord::Schema.define(:version => 20111228211210) do
14
+ ActiveRecord::Schema.define(:version => 20120229192032) do
14
15
 
15
16
  create_table "clickthroughs", :force => true do |t|
16
17
  t.integer "request_id", :default => 0, :null => false
@@ -38,6 +39,7 @@ ActiveRecord::Schema.define(:version => 20111228211210) do
38
39
  t.date "created_on", :null => false
39
40
  t.text "context_obj_serialized"
40
41
  t.string "orig_rfr_id", :limit => 256
42
+ t.date "last_access"
41
43
  end
42
44
 
43
45
  add_index "permalinks", ["referent_id"], :name => "plink_referent_idx"
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.0alpha11
4
+ version: 3.0.0alpha12
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-02-28 00:00:00.000000000 Z
12
+ date: 2012-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &240729180 !ruby/object:Gem::Requirement
16
+ requirement: &77416980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *240729180
24
+ version_requirements: *77416980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: jquery-rails
27
- requirement: &240728040 !ruby/object:Gem::Requirement
27
+ requirement: &77416420 !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: *240728040
35
+ version_requirements: *77416420
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: nokogiri
38
- requirement: &240726520 !ruby/object:Gem::Requirement
38
+ requirement: &77415440 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *240726520
46
+ version_requirements: *77415440
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: openurl
49
- requirement: &240741860 !ruby/object:Gem::Requirement
49
+ requirement: &77414420 !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: *240741860
57
+ version_requirements: *77414420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: marc
60
- requirement: &240735720 !ruby/object:Gem::Requirement
60
+ requirement: &77413900 !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: *240735720
68
+ version_requirements: *77413900
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: isbn
71
- requirement: &240765740 !ruby/object:Gem::Requirement
71
+ requirement: &77413440 !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: *240765740
79
+ version_requirements: *77413440
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: htmlentities
82
- requirement: &240763540 !ruby/object:Gem::Requirement
82
+ requirement: &77412600 !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: *240763540
90
+ version_requirements: *77412600
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: multi_json
93
- requirement: &240773780 !ruby/object:Gem::Requirement
93
+ requirement: &77412040 !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: *240773780
101
+ version_requirements: *77412040
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: confstruct
104
- requirement: &240770680 !ruby/object:Gem::Requirement
104
+ requirement: &77411220 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0.2'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *240770680
112
+ version_requirements: *77411220
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: soap4r-ruby1.9
115
- requirement: &240815460 !ruby/object:Gem::Requirement
115
+ requirement: &77410200 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *240815460
123
+ version_requirements: *77410200
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: httparty
126
- requirement: &240834480 !ruby/object:Gem::Requirement
126
+ requirement: &77425780 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *240834480
134
+ version_requirements: *77425780
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: ruby-prof
137
- requirement: &240831480 !ruby/object:Gem::Requirement
137
+ requirement: &77425140 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: '0'
143
143
  type: :runtime
144
144
  prerelease: false
145
- version_requirements: *240831480
145
+ version_requirements: *77425140
146
146
  description:
147
147
  email:
148
148
  - umlaut-general@rubyforge.org
@@ -164,6 +164,7 @@ files:
164
164
  - app/controllers/umlaut/controller_behavior.rb
165
165
  - app/controllers/resource_controller.rb
166
166
  - app/controllers/resolve_controller.rb
167
+ - app/controllers/admin/service_errors_controller.rb
167
168
  - app/controllers/umlaut_controller.rb
168
169
  - app/controllers/search_controller.rb
169
170
  - app/assets/images/jhu_findit.gif
@@ -265,6 +266,8 @@ files:
265
266
  - app/views/umlaut/error.html.erb
266
267
  - app/views/umlaut/README
267
268
  - app/views/layouts/umlaut.html.erb
269
+ - app/views/admin/service_errors/index.html.erb
270
+ - app/views/admin/service_errors/_dispatched_service.html.erb
268
271
  - app/helpers/emailer_helper.rb
269
272
  - app/helpers/export_email_helper.rb
270
273
  - app/helpers/umlaut/html_head_helper.rb
@@ -356,34 +359,26 @@ files:
356
359
  - LICENSE
357
360
  - Rakefile
358
361
  - README.md
359
- - ./test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1
360
362
  - ./test/dummy/tmp/cache/assets/D16/F90/sprockets%2F5fe3c021048c6f9a6086bed7736d87b1
361
363
  - ./test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8
362
364
  - ./test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
363
365
  - ./test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6
364
366
  - ./test/dummy/tmp/cache/assets/CBD/730/sprockets%2F034c1086748b981c36672d5a56e7fed6
365
- - ./test/dummy/tmp/cache/assets/DF5/5E0/sprockets%2F8e64a37c73cdc0b37a4ccfcb42ab45d8
366
367
  - ./test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
367
368
  - ./test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6
368
369
  - ./test/dummy/tmp/cache/assets/D24/360/sprockets%2F6987b047a96dc685ba3cf39b31477f6d
369
- - ./test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9
370
370
  - ./test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
371
371
  - ./test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398
372
372
  - ./test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e
373
- - ./test/dummy/tmp/cache/assets/CD7/DD0/sprockets%2F4f1fe68aa2042a0970bde9b185530646
374
373
  - ./test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46
375
- - ./test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0
376
- - ./test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41
377
374
  - ./test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
378
375
  - ./test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b
379
376
  - ./test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6
380
- - ./test/dummy/tmp/cache/assets/CD6/300/sprockets%2F397ec39d3d883789effe506c38760368
381
377
  - ./test/dummy/tmp/cache/assets/DFC/040/sprockets%2F15ea81cf915c0cb1dfc9cc04c9fef364
382
378
  - ./test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b
383
379
  - ./test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f
384
380
  - ./test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6
385
381
  - ./test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d
386
- - ./test/dummy/tmp/cache/assets/E38/FE0/sprockets%2Fe1fc875efa817cbb94a5d8de25ea4e6b
387
382
  - ./test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80
388
383
  - ./test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
389
384
  - ./test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26
@@ -414,7 +409,6 @@ files:
414
409
  - ./test/dummy/public/422.html
415
410
  - ./test/dummy/public/favicon.ico
416
411
  - ./test/dummy/public/500.html
417
- - ./test/dummy/config/environments/profile.rb
418
412
  - ./test/dummy/config/environments/development.rb
419
413
  - ./test/dummy/config/environments/production.rb
420
414
  - ./test/dummy/config/environments/test.rb
@@ -434,10 +428,9 @@ files:
434
428
  - ./test/dummy/config/primo.yml
435
429
  - ./test/dummy/Rakefile
436
430
  - ./test/dummy/script/rails
437
- - ./test/dummy/profile/sfx_collection_prof.rb
438
431
  - ./test/dummy/config.ru
439
432
  - ./test/dummy/db/schema.rb
440
- - ./test/dummy/db/migrate/20111228211210_umlaut_init.rb
433
+ - ./test/dummy/db/migrate/20120229192032_umlaut_init.umlaut.rb
441
434
  - ./test/performance/browsing_test.rb
442
435
  - ./test/unit/aleph_record_benchmarks.rb
443
436
  - ./test/unit/aws_product_sign_test.rb
@@ -473,7 +466,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
473
466
  version: '0'
474
467
  segments:
475
468
  - 0
476
- hash: -3714515668251157287
469
+ hash: 2247708829572197569
477
470
  required_rubygems_version: !ruby/object:Gem::Requirement
478
471
  none: false
479
472
  requirements:
@@ -488,34 +481,26 @@ specification_version: 3
488
481
  summary: For Libraries, a just-in-time last-mile service aggregator, taking OpenURL
489
482
  input
490
483
  test_files:
491
- - ./test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1
492
484
  - ./test/dummy/tmp/cache/assets/D16/F90/sprockets%2F5fe3c021048c6f9a6086bed7736d87b1
493
485
  - ./test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8
494
486
  - ./test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
495
487
  - ./test/dummy/tmp/cache/assets/D94/FF0/sprockets%2F3b56a1aa77de0d570c38a4a9d5f4b1d6
496
488
  - ./test/dummy/tmp/cache/assets/CBD/730/sprockets%2F034c1086748b981c36672d5a56e7fed6
497
- - ./test/dummy/tmp/cache/assets/DF5/5E0/sprockets%2F8e64a37c73cdc0b37a4ccfcb42ab45d8
498
489
  - ./test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
499
490
  - ./test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6
500
491
  - ./test/dummy/tmp/cache/assets/D24/360/sprockets%2F6987b047a96dc685ba3cf39b31477f6d
501
- - ./test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9
502
492
  - ./test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
503
493
  - ./test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398
504
494
  - ./test/dummy/tmp/cache/assets/DFD/300/sprockets%2Fabac9489cf7f1db8ef00d72a1571ee1e
505
- - ./test/dummy/tmp/cache/assets/CD7/DD0/sprockets%2F4f1fe68aa2042a0970bde9b185530646
506
495
  - ./test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46
507
- - ./test/dummy/tmp/cache/assets/D43/0D0/sprockets%2F682843a8d0795a5fbcfeb2f0c81727d0
508
- - ./test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41
509
496
  - ./test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
510
497
  - ./test/dummy/tmp/cache/assets/D6C/7D0/sprockets%2F8a05d6981ec0d38c51739bef0b3a9c2b
511
498
  - ./test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F40834fb07d7318c1fddd5003bd9e04f6
512
- - ./test/dummy/tmp/cache/assets/CD6/300/sprockets%2F397ec39d3d883789effe506c38760368
513
499
  - ./test/dummy/tmp/cache/assets/DFC/040/sprockets%2F15ea81cf915c0cb1dfc9cc04c9fef364
514
500
  - ./test/dummy/tmp/cache/assets/DF7/960/sprockets%2F99ac6db10b44a64fbba4ee847b35ba8b
515
501
  - ./test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f
516
502
  - ./test/dummy/tmp/cache/assets/D97/6B0/sprockets%2Fb070e8c799d1a4ad5e62e0a1ae3b83e6
517
503
  - ./test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d
518
- - ./test/dummy/tmp/cache/assets/E38/FE0/sprockets%2Fe1fc875efa817cbb94a5d8de25ea4e6b
519
504
  - ./test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80
520
505
  - ./test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
521
506
  - ./test/dummy/tmp/cache/assets/C45/A30/sprockets%2F39494895e462697b478d3d0c79298a26
@@ -546,7 +531,6 @@ test_files:
546
531
  - ./test/dummy/public/422.html
547
532
  - ./test/dummy/public/favicon.ico
548
533
  - ./test/dummy/public/500.html
549
- - ./test/dummy/config/environments/profile.rb
550
534
  - ./test/dummy/config/environments/development.rb
551
535
  - ./test/dummy/config/environments/production.rb
552
536
  - ./test/dummy/config/environments/test.rb
@@ -566,10 +550,9 @@ test_files:
566
550
  - ./test/dummy/config/primo.yml
567
551
  - ./test/dummy/Rakefile
568
552
  - ./test/dummy/script/rails
569
- - ./test/dummy/profile/sfx_collection_prof.rb
570
553
  - ./test/dummy/config.ru
571
554
  - ./test/dummy/db/schema.rb
572
- - ./test/dummy/db/migrate/20111228211210_umlaut_init.rb
555
+ - ./test/dummy/db/migrate/20120229192032_umlaut_init.umlaut.rb
573
556
  - ./test/performance/browsing_test.rb
574
557
  - ./test/unit/aleph_record_benchmarks.rb
575
558
  - ./test/unit/aws_product_sign_test.rb
@@ -1,24 +0,0 @@
1
- # Settings specified here will take precedence over those in config/environment.rb
2
- # The profile environment should match the same settings
3
- # as the production environment to give a reasonalbe
4
- # approximation of performance. However, it should
5
- # definitely not use the production databse!
6
-
7
-
8
- # Cache classes - otherwise your code
9
- # will run approximately 5 times slower and the
10
- # profiling results will be overwhelmed by Rails
11
- # dependency loading mechanism
12
- config.cache_classes = true
13
-
14
- # Don't check template timestamps - once again this
15
- # is to avoid IO times overwhelming profile results
16
- config.action_view.cache_template_loading = true
17
-
18
- # This is debatable, but turn off action controller
19
- # caching to see how long it really takes to run
20
- # queries and render templates
21
- config.action_controller.perform_caching = false
22
-
23
- # Turn off most logging
24
- config.log_level = :info
@@ -1,22 +0,0 @@
1
- # Just a hacky script I'm using for trying to examine performance,
2
- # run with 'rails runner script_name'
3
- # Couldn't get it working within test env, sorry.
4
-
5
- params = {"genre" => "article",
6
- "issn" => "09237534",
7
- "title" => "Annals of Oncology",
8
- "volume" => "23",
9
- "issue" => "1",
10
- "date" => "20120101",
11
- "atitle" => "Risk for incident and fatal prostate cancer in men with a family history of any incident and fatal cancer.",
12
- "aulast" => "Brandt, A.",
13
- "spage" => "251",
14
- "sid" => "EBSCO:Academic Search Complete"
15
- }
16
- session = {}
17
- umlaut_request = Request.create_new_request!(:params => params, :session => session)
18
-
19
-
20
- collection = Collection.new(umlaut_request, services)
21
-
22
-