ddr-core 1.2.0 → 1.3.0
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.
- checksums.yaml +4 -4
 - data/Rakefile +5 -0
 - data/app/models/concerns/ddr/embargoable.rb +28 -0
 - data/app/models/concerns/ddr/solr_document_behavior.rb +8 -0
 - data/app/models/ddr/component.rb +1 -0
 - data/app/models/ddr/item.rb +1 -0
 - data/app/models/ddr/resource.rb +9 -0
 - data/lib/ddr/auth.rb +1 -0
 - data/lib/ddr/auth/ability.rb +1 -0
 - data/lib/ddr/auth/ability_definitions/embargo_ability_definitions.rb +18 -0
 - data/lib/ddr/auth/roles/role_types.rb +3 -2
 - data/lib/ddr/core.rb +3 -0
 - data/lib/ddr/core/version.rb +1 -1
 - data/lib/ddr/index/fields.rb +1 -0
 - metadata +8 -14
 - data/app/models/concerns/ddr/#search_builder_behavior.rb# +0 -10
 - data/app/models/concerns/ddr/search_builder_behavior.rb~ +0 -9
 - data/app/models/ddr/#admin_set.rb# +0 -26
 - data/app/models/ddr/#auxiliary_resource_cache.rb# +0 -34
 - data/app/models/ddr/auxiliary_resource.rb~ +0 -13
 - data/app/models/ddr/cacheable_auxiliary_resource.rb~ +0 -20
 - data/lib/ddr/auth/#duke_person.rb# +0 -9
 - data/lib/ddr/auth/duke_directory.rb~ +0 -7
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 61fa03b921f6c0f3b15a68938f568c4547f324facd5f57bf753ca5b28ae756e2
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e74b196e266a1d4a21c24c90490374d2f7054fb52921623adba198bbc9948eca
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 95ab554ea0873c8b6f8db7ae981f0d6336d180731f91bfd57d19f8806682142fdc47bce3fb09a8aae485bd41e7e9389e0c4cf16fdfa992406032335350085041
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 5239037ba065ed2034951311c260d988b19cbd45f3d2c2f6f10e78e9cd311e866e9fc7ca49619fca3de2ec791dea19942b41b4b22863383b9442456ade3ff0ac
         
     | 
    
        data/Rakefile
    CHANGED
    
    
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Ddr
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Embargoable
         
     | 
| 
      
 3 
     | 
    
         
            +
                extend ActiveSupport::Concern
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def embargo
         
     | 
| 
      
 6 
     | 
    
         
            +
                  result = available.present? ? available : parent&.available
         
     | 
| 
      
 7 
     | 
    
         
            +
                  normalize(result)
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                def embargoed?
         
     | 
| 
      
 11 
     | 
    
         
            +
                  !embargo.nil? && embargo > DateTime.now
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                private
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def normalize(value)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  case value
         
     | 
| 
      
 18 
     | 
    
         
            +
                  when ::Time
         
     | 
| 
      
 19 
     | 
    
         
            +
                    value.to_datetime
         
     | 
| 
      
 20 
     | 
    
         
            +
                  when ::Array
         
     | 
| 
      
 21 
     | 
    
         
            +
                    value.first
         
     | 
| 
      
 22 
     | 
    
         
            +
                  else
         
     | 
| 
      
 23 
     | 
    
         
            +
                    value
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
    
        data/app/models/ddr/component.rb
    CHANGED
    
    
    
        data/app/models/ddr/item.rb
    CHANGED
    
    
    
        data/app/models/ddr/resource.rb
    CHANGED
    
    | 
         @@ -98,6 +98,15 @@ module Ddr 
     | 
|
| 
       98 
98 
     | 
    
         
             
                  false
         
     | 
| 
       99 
99 
     | 
    
         
             
                end
         
     | 
| 
       100 
100 
     | 
    
         | 
| 
      
 101 
     | 
    
         
            +
                # Embargoes are enforced by the `Embargoable` concern, which overrides the `embargo` and `embargoed?` methods
         
     | 
| 
      
 102 
     | 
    
         
            +
                def embargo
         
     | 
| 
      
 103 
     | 
    
         
            +
                  nil
         
     | 
| 
      
 104 
     | 
    
         
            +
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
                def embargoed?
         
     | 
| 
      
 107 
     | 
    
         
            +
                  false
         
     | 
| 
      
 108 
     | 
    
         
            +
                end
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
       101 
110 
     | 
    
         
             
                def has_admin_policy?
         
     | 
| 
       102 
111 
     | 
    
         
             
                  governable? && admin_policy_id.present?
         
     | 
| 
       103 
112 
     | 
    
         
             
                end
         
     | 
    
        data/lib/ddr/auth.rb
    CHANGED
    
    | 
         @@ -35,6 +35,7 @@ module Ddr 
     | 
|
| 
       35 
35 
     | 
    
         
             
                  autoload :CollectionAbilityDefinitions
         
     | 
| 
       36 
36 
     | 
    
         
             
                  autoload :ComponentAbilityDefinitions
         
     | 
| 
       37 
37 
     | 
    
         
             
                  autoload :ItemAbilityDefinitions
         
     | 
| 
      
 38 
     | 
    
         
            +
                  autoload :EmbargoAbilityDefinitions
         
     | 
| 
       38 
39 
     | 
    
         
             
                  autoload :PublicationAbilityDefinitions
         
     | 
| 
       39 
40 
     | 
    
         
             
                  autoload :LockAbilityDefinitions
         
     | 
| 
       40 
41 
     | 
    
         
             
                  autoload :RoleBasedAbilityDefinitions
         
     | 
    
        data/lib/ddr/auth/ability.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Ddr
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Auth
         
     | 
| 
      
 3 
     | 
    
         
            +
                class EmbargoAbilityDefinitions < AbilityDefinitions
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                  def call
         
     | 
| 
      
 6 
     | 
    
         
            +
                    cannot :read, [::SolrDocument, Ddr::Resource] do |obj|
         
     | 
| 
      
 7 
     | 
    
         
            +
                      obj.embargoed? && cannot?(:update, obj)
         
     | 
| 
      
 8 
     | 
    
         
            +
                    end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                    cannot :download, [::SolrDocument, Ddr::Resource] do |obj|
         
     | 
| 
      
 11 
     | 
    
         
            +
                      obj.embargoed? && cannot?(:update, obj)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -23,7 +23,8 @@ module Ddr 
     | 
|
| 
       23 
23 
     | 
    
         
             
                      "MetadataEditor",
         
     | 
| 
       24 
24 
     | 
    
         
             
                      "The Metadata Editor role conveys responsibility for " \
         
     | 
| 
       25 
25 
     | 
    
         
             
                      "managing the description of a resource.",
         
     | 
| 
       26 
     | 
    
         
            -
                      [ Permissions::DISCOVER, Permissions::READ, Permissions::DOWNLOAD,  
     | 
| 
      
 26 
     | 
    
         
            +
                      [ Permissions::DISCOVER, Permissions::READ, Permissions::DOWNLOAD, 
         
     | 
| 
      
 27 
     | 
    
         
            +
                        Permissions::UPDATE ]
         
     | 
| 
       27 
28 
     | 
    
         
             
                    )
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
       29 
30 
     | 
    
         
             
                    CONTRIBUTOR = RoleType.new(
         
     | 
| 
         @@ -49,7 +50,7 @@ module Ddr 
     | 
|
| 
       49 
50 
     | 
    
         | 
| 
       50 
51 
     | 
    
         
             
                    METADATA_VIEWER = RoleType.new(
         
     | 
| 
       51 
52 
     | 
    
         
             
                      "MetadataViewer",
         
     | 
| 
       52 
     | 
    
         
            -
                      "The MetadataViewer role  
     | 
| 
      
 53 
     | 
    
         
            +
                      "The MetadataViewer role conveys access to the description of a resource.",
         
     | 
| 
       53 
54 
     | 
    
         
             
                      [ Permissions::DISCOVER ]
         
     | 
| 
       54 
55 
     | 
    
         
             
                    )
         
     | 
| 
       55 
56 
     | 
    
         | 
    
        data/lib/ddr/core.rb
    CHANGED
    
    | 
         @@ -84,10 +84,13 @@ module Ddr 
     | 
|
| 
       84 
84 
     | 
    
         
             
                    '.aac'  => 'audio/mp4',
         
     | 
| 
       85 
85 
     | 
    
         
             
                    '.f4a'  => 'audio/mp4',
         
     | 
| 
       86 
86 
     | 
    
         
             
                    '.flv'  => 'video/flv',
         
     | 
| 
      
 87 
     | 
    
         
            +
                    '.m2t'  => 'video/vnd.dlna.mpeg-tts',
         
     | 
| 
      
 88 
     | 
    
         
            +
                    '.m2ts' => 'video/m2ts',
         
     | 
| 
       87 
89 
     | 
    
         
             
                    '.m4a'  => 'audio/mp4',
         
     | 
| 
       88 
90 
     | 
    
         
             
                    '.mov'  => 'video/quicktime',
         
     | 
| 
       89 
91 
     | 
    
         
             
                    '.mp3'  => 'audio/mpeg',
         
     | 
| 
       90 
92 
     | 
    
         
             
                    '.mp4'  => 'video/mp4',
         
     | 
| 
      
 93 
     | 
    
         
            +
                    '.mts'  => 'video/vnd.dlna.mpeg-tts',
         
     | 
| 
       91 
94 
     | 
    
         
             
                    '.oga'  => 'audio/ogg',
         
     | 
| 
       92 
95 
     | 
    
         
             
                    '.ogg'  => 'audio/ogg',
         
     | 
| 
       93 
96 
     | 
    
         
             
                    '.srt'  => 'text/plain',
         
     | 
    
        data/lib/ddr/core/version.rb
    CHANGED
    
    
    
        data/lib/ddr/index/fields.rb
    CHANGED
    
    | 
         @@ -16,6 +16,7 @@ module Ddr::Index 
     | 
|
| 
       16 
16 
     | 
    
         
             
                ASPACE_ID                     = Field.new :aspace_id, :stored_sortable
         
     | 
| 
       17 
17 
     | 
    
         
             
                ATTACHED_FILES_HAVING_CONTENT = Field.new :attached_files_having_content, :symbol
         
     | 
| 
       18 
18 
     | 
    
         
             
                ATTACHED_TO_ID                = Field.new :attached_to_id, :symbol
         
     | 
| 
      
 19 
     | 
    
         
            +
                AVAILABLE                     = Field.new :available, :symbol
         
     | 
| 
       19 
20 
     | 
    
         
             
                BIBLICAL_BOOK_FACET           = Field.new :biblical_book_facet, :facetable
         
     | 
| 
       20 
21 
     | 
    
         
             
                BOX_NUMBER_FACET              = Field.new :box_number_facet, :facetable
         
     | 
| 
       21 
22 
     | 
    
         
             
                CATEGORY_FACET                = Field.new :category_facet, :facetable
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,17 +1,17 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ddr-core
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.3.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Jim Coble
         
     | 
| 
       8 
8 
     | 
    
         
             
            - David Chandek-Stark
         
     | 
| 
       9 
9 
     | 
    
         
             
            - Ayse Durmaz
         
     | 
| 
       10 
10 
     | 
    
         
             
            - Hugh Cayless
         
     | 
| 
       11 
     | 
    
         
            -
            autorequire: 
     | 
| 
      
 11 
     | 
    
         
            +
            autorequire:
         
     | 
| 
       12 
12 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       13 
13 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       14 
     | 
    
         
            -
            date: 2020- 
     | 
| 
      
 14 
     | 
    
         
            +
            date: 2020-10-27 00:00:00.000000000 Z
         
     | 
| 
       15 
15 
     | 
    
         
             
            dependencies:
         
     | 
| 
       16 
16 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       17 
17 
     | 
    
         
             
              name: activeresource
         
     | 
| 
         @@ -306,9 +306,9 @@ files: 
     | 
|
| 
       306 
306 
     | 
    
         
             
            - app/assets/config/ddr_core_manifest.js
         
     | 
| 
       307 
307 
     | 
    
         
             
            - app/controllers/users/omniauth_callbacks_controller.rb
         
     | 
| 
       308 
308 
     | 
    
         
             
            - app/controllers/users/sessions_controller.rb
         
     | 
| 
       309 
     | 
    
         
            -
            - app/models/concerns/ddr/#search_builder_behavior.rb#
         
     | 
| 
       310 
309 
     | 
    
         
             
            - app/models/concerns/ddr/captionable.rb
         
     | 
| 
       311 
310 
     | 
    
         
             
            - app/models/concerns/ddr/describable.rb
         
     | 
| 
      
 311 
     | 
    
         
            +
            - app/models/concerns/ddr/embargoable.rb
         
     | 
| 
       312 
312 
     | 
    
         
             
            - app/models/concerns/ddr/governable.rb
         
     | 
| 
       313 
313 
     | 
    
         
             
            - app/models/concerns/ddr/has_admin_metadata.rb
         
     | 
| 
       314 
314 
     | 
    
         
             
            - app/models/concerns/ddr/has_attachments.rb
         
     | 
| 
         @@ -320,17 +320,12 @@ files: 
     | 
|
| 
       320 
320 
     | 
    
         
             
            - app/models/concerns/ddr/has_parent.rb
         
     | 
| 
       321 
321 
     | 
    
         
             
            - app/models/concerns/ddr/has_struct_metadata.rb
         
     | 
| 
       322 
322 
     | 
    
         
             
            - app/models/concerns/ddr/has_thumbnail.rb
         
     | 
| 
       323 
     | 
    
         
            -
            - app/models/concerns/ddr/search_builder_behavior.rb~
         
     | 
| 
       324 
323 
     | 
    
         
             
            - app/models/concerns/ddr/solr_document_behavior.rb
         
     | 
| 
       325 
324 
     | 
    
         
             
            - app/models/concerns/ddr/streamable.rb
         
     | 
| 
       326 
     | 
    
         
            -
            - app/models/ddr/#admin_set.rb#
         
     | 
| 
       327 
     | 
    
         
            -
            - app/models/ddr/#auxiliary_resource_cache.rb#
         
     | 
| 
       328 
325 
     | 
    
         
             
            - app/models/ddr/admin_set.rb
         
     | 
| 
       329 
326 
     | 
    
         
             
            - app/models/ddr/alert.rb
         
     | 
| 
       330 
327 
     | 
    
         
             
            - app/models/ddr/attachment.rb
         
     | 
| 
       331 
328 
     | 
    
         
             
            - app/models/ddr/auxiliary_resource.rb
         
     | 
| 
       332 
     | 
    
         
            -
            - app/models/ddr/auxiliary_resource.rb~
         
     | 
| 
       333 
     | 
    
         
            -
            - app/models/ddr/cacheable_auxiliary_resource.rb~
         
     | 
| 
       334 
329 
     | 
    
         
             
            - app/models/ddr/collection.rb
         
     | 
| 
       335 
330 
     | 
    
         
             
            - app/models/ddr/component.rb
         
     | 
| 
       336 
331 
     | 
    
         
             
            - app/models/ddr/contact.rb
         
     | 
| 
         @@ -351,7 +346,6 @@ files: 
     | 
|
| 
       351 
346 
     | 
    
         
             
            - db/migrate/20200207194453_add_default_to_lock_version.rb
         
     | 
| 
       352 
347 
     | 
    
         
             
            - lib/ddr-core.rb
         
     | 
| 
       353 
348 
     | 
    
         
             
            - lib/ddr/auth.rb
         
     | 
| 
       354 
     | 
    
         
            -
            - lib/ddr/auth/#duke_person.rb#
         
     | 
| 
       355 
349 
     | 
    
         
             
            - lib/ddr/auth/ability.rb
         
     | 
| 
       356 
350 
     | 
    
         
             
            - lib/ddr/auth/ability_definitions.rb
         
     | 
| 
       357 
351 
     | 
    
         
             
            - lib/ddr/auth/ability_definitions/admin_set_ability_definitions.rb
         
     | 
| 
         @@ -359,6 +353,7 @@ files: 
     | 
|
| 
       359 
353 
     | 
    
         
             
            - lib/ddr/auth/ability_definitions/attachment_ability_definitions.rb
         
     | 
| 
       360 
354 
     | 
    
         
             
            - lib/ddr/auth/ability_definitions/collection_ability_definitions.rb
         
     | 
| 
       361 
355 
     | 
    
         
             
            - lib/ddr/auth/ability_definitions/component_ability_definitions.rb
         
     | 
| 
      
 356 
     | 
    
         
            +
            - lib/ddr/auth/ability_definitions/embargo_ability_definitions.rb
         
     | 
| 
       362 
357 
     | 
    
         
             
            - lib/ddr/auth/ability_definitions/item_ability_definitions.rb
         
     | 
| 
       363 
358 
     | 
    
         
             
            - lib/ddr/auth/ability_definitions/lock_ability_definitions.rb
         
     | 
| 
       364 
359 
     | 
    
         
             
            - lib/ddr/auth/ability_definitions/publication_ability_definitions.rb
         
     | 
| 
         @@ -372,7 +367,6 @@ files: 
     | 
|
| 
       372 
367 
     | 
    
         
             
            - lib/ddr/auth/auth_context.rb
         
     | 
| 
       373 
368 
     | 
    
         
             
            - lib/ddr/auth/auth_context_factory.rb
         
     | 
| 
       374 
369 
     | 
    
         
             
            - lib/ddr/auth/detached_auth_context.rb
         
     | 
| 
       375 
     | 
    
         
            -
            - lib/ddr/auth/duke_directory.rb~
         
     | 
| 
       376 
370 
     | 
    
         
             
            - lib/ddr/auth/dynamic_groups.rb
         
     | 
| 
       377 
371 
     | 
    
         
             
            - lib/ddr/auth/effective_permissions.rb
         
     | 
| 
       378 
372 
     | 
    
         
             
            - lib/ddr/auth/effective_roles.rb
         
     | 
| 
         @@ -447,7 +441,7 @@ licenses: 
     | 
|
| 
       447 
441 
     | 
    
         
             
            - BSD-3-Clause
         
     | 
| 
       448 
442 
     | 
    
         
             
            metadata:
         
     | 
| 
       449 
443 
     | 
    
         
             
              allowed_push_host: https://rubygems.org
         
     | 
| 
       450 
     | 
    
         
            -
            post_install_message: 
     | 
| 
      
 444 
     | 
    
         
            +
            post_install_message:
         
     | 
| 
       451 
445 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       452 
446 
     | 
    
         
             
            require_paths:
         
     | 
| 
       453 
447 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -462,8 +456,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       462 
456 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       463 
457 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       464 
458 
     | 
    
         
             
            requirements: []
         
     | 
| 
       465 
     | 
    
         
            -
            rubygems_version: 3.0. 
     | 
| 
       466 
     | 
    
         
            -
            signing_key: 
     | 
| 
      
 459 
     | 
    
         
            +
            rubygems_version: 3.0.6
         
     | 
| 
      
 460 
     | 
    
         
            +
            signing_key:
         
     | 
| 
       467 
461 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       468 
462 
     | 
    
         
             
            summary: Models used in the Duke Digital Repository
         
     | 
| 
       469 
463 
     | 
    
         
             
            test_files: []
         
     | 
| 
         @@ -1,10 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Ddr
         
     | 
| 
       2 
     | 
    
         
            -
              module SearchBuilderBehavior
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
                def effective_role_filter(agents)
         
     | 
| 
       5 
     | 
    
         
            -
                  # https://lucene.apache.org/solr/guide/7_7/other-parsers.html#term-query-parser
         
     | 
| 
       6 
     | 
    
         
            -
                  "{!terms f=#{Ddr::Index::Fields::EFFECTIVE_ROLE} method=booleanQuery}#{agents.join(',')}"
         
     | 
| 
       7 
     | 
    
         
            -
                end
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              end
         
     | 
| 
       10 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,26 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Ddr
         
     | 
| 
       2 
     | 
    
         
            -
              class AdminSet < AuxiliaryResource
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
                def self.call(obj)
         
     | 
| 
       5 
     | 
    
         
            -
                  find_by_code(obj.admin_set)
         
     | 
| 
       6 
     | 
    
         
            -
                rescue ActiveResource::ResourceNotFound => e
         
     | 
| 
       7 
     | 
    
         
            -
                  raise Ddr::NotFoundError, e
         
     | 
| 
       8 
     | 
    
         
            -
                end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                def self.find_by_code(code)
         
     | 
| 
       11 
     | 
    
         
            -
                  return unless code
         
     | 
| 
       12 
     | 
    
         
            -
                  new get(:find, code: code)
         
     | 
| 
       13 
     | 
    
         
            -
                end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                def self.keys
         
     | 
| 
       16 
     | 
    
         
            -
                  with_cache("keys") do
         
     | 
| 
       17 
     | 
    
         
            -
                    all.map(&:code)
         
     | 
| 
       18 
     | 
    
         
            -
                  end
         
     | 
| 
       19 
     | 
    
         
            -
                end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                def to_s
         
     | 
| 
       22 
     | 
    
         
            -
                  title
         
     | 
| 
       23 
     | 
    
         
            -
                end
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
       26 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,34 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'active_resource'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Ddr
         
     | 
| 
       4 
     | 
    
         
            -
              class AuxiliaryResourceCache < ActiveSupport::Cache::MemoryStore
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
                def initialize
         
     | 
| 
       7 
     | 
    
         
            -
                  @_cache = 
         
     | 
| 
       8 
     | 
    
         
            -
                end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                def with(key, &block)
         
     | 
| 
       11 
     | 
    
         
            -
                  begin
         
     | 
| 
       12 
     | 
    
         
            -
                    cache.set(key, block.call)
         
     | 
| 
       13 
     | 
    
         
            -
                  rescue ActiveResource::ServerError => e
         
     | 
| 
       14 
     | 
    
         
            -
                    if cache.key?(key)
         
     | 
| 
       15 
     | 
    
         
            -
                      Rails.logger.error(e)
         
     | 
| 
       16 
     | 
    
         
            -
                      cache.get(key)
         
     | 
| 
       17 
     | 
    
         
            -
                    else
         
     | 
| 
       18 
     | 
    
         
            -
                      raise
         
     | 
| 
       19 
     | 
    
         
            -
                    end
         
     | 
| 
       20 
     | 
    
         
            -
                  end
         
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                private
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                def get(key)
         
     | 
| 
       26 
     | 
    
         
            -
                  @_cache[key]
         
     | 
| 
       27 
     | 
    
         
            -
                end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                def set(key, value)
         
     | 
| 
       30 
     | 
    
         
            -
                  @_cache[key] = value
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
              end
         
     | 
| 
       34 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,13 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'active_resource'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Ddr
         
     | 
| 
       4 
     | 
    
         
            -
              #
         
     | 
| 
       5 
     | 
    
         
            -
              # Abstract superclass for resources bound to ddr-aux API data
         
     | 
| 
       6 
     | 
    
         
            -
              #
         
     | 
| 
       7 
     | 
    
         
            -
              class AuxiliaryResource < ActiveResource::Base
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                # ActiveResource freezes `site` in subclasses
         
     | 
| 
       10 
     | 
    
         
            -
                self.site = Ddr.ddr_aux_api_url
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
              end
         
     | 
| 
       13 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,20 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Ddr
         
     | 
| 
       2 
     | 
    
         
            -
              module CacheableAuxiliaryResource
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
                def with_cache(key, &block)
         
     | 
| 
       5 
     | 
    
         
            -
                  block.call.tap { |value| cache.write(key, value) }
         
     | 
| 
       6 
     | 
    
         
            -
                rescue ActiveResource::ServerError => e
         
     | 
| 
       7 
     | 
    
         
            -
                  if value = cache.fetch(key)
         
     | 
| 
       8 
     | 
    
         
            -
                    logger.error(e) if logger
         
     | 
| 
       9 
     | 
    
         
            -
                    value
         
     | 
| 
       10 
     | 
    
         
            -
                  else
         
     | 
| 
       11 
     | 
    
         
            -
                    raise
         
     | 
| 
       12 
     | 
    
         
            -
                  end
         
     | 
| 
       13 
     | 
    
         
            -
                end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                def cache
         
     | 
| 
       16 
     | 
    
         
            -
                  @cache ||= ActiveSupport::Cache::MemoryStore.new
         
     | 
| 
       17 
     | 
    
         
            -
                end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
            end
         
     |