umlaut 3.0.0alpha11 → 3.0.0alpha12

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.
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
-