lhs 1.3.0 → 1.3.1
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/lib/lhs/concerns/service/request.rb +15 -4
 - data/lib/lhs/version.rb +1 -1
 - data/spec/service/includes_spec.rb +23 -0
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: bd943de16b65c840dc1b4b5c05ff7a8909dcf2d7
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: ef07ef221571d7de7c2a426983b1fe060b2868c9
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c1e7a9dec8966d5fcef164e81ab77b8e39e8d07d2991ccd94794c606b1615f80f1a312c0799a7d0e516cee408a2171ea312ea68013ce6148cfbd74e7f0ac9004
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 45ac1316587e3b26fe8c21bee179fe0a021cb7616eac8ec9cebf2c2869d646db007864cfa2cb8d2200c261c079d2ba5f86b370d327b06df8347e8d769883d995
         
     | 
| 
         @@ -60,14 +60,25 @@ class LHS::Service 
     | 
|
| 
       60 
60 
     | 
    
         
             
                  else
         
     | 
| 
       61 
61 
     | 
    
         
             
                    url_option_for(data, key)
         
     | 
| 
       62 
62 
     | 
    
         
             
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                  addition = load_includes(includes, options, key, data)
         
     | 
| 
      
 64 
     | 
    
         
            +
                  extend(data, addition, key)
         
     | 
| 
      
 65 
     | 
    
         
            +
                end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                # Load additional resources that are requested with include
         
     | 
| 
      
 68 
     | 
    
         
            +
                def load_includes(includes, options, key, data)
         
     | 
| 
       63 
69 
     | 
    
         
             
                  service = service_for_options(options) || self
         
     | 
| 
       64 
70 
     | 
    
         
             
                  options = convert_options_to_endpoints(options) if service_for_options(options)
         
     | 
| 
       65 
     | 
    
         
            -
                   
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
      
 71 
     | 
    
         
            +
                  further_keys = includes.fetch(key, nil) if includes.is_a? Hash
         
     | 
| 
      
 72 
     | 
    
         
            +
                  service_class = if further_keys
         
     | 
| 
      
 73 
     | 
    
         
            +
                    service.class.includes(further_keys)
         
     | 
| 
       67 
74 
     | 
    
         
             
                  else
         
     | 
| 
       68 
     | 
    
         
            -
                    service.class.includes(nil) 
     | 
| 
      
 75 
     | 
    
         
            +
                    service.class.includes(nil)
         
     | 
| 
      
 76 
     | 
    
         
            +
                  end
         
     | 
| 
      
 77 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 78 
     | 
    
         
            +
                    service_class.instance.request(options)
         
     | 
| 
      
 79 
     | 
    
         
            +
                  rescue LHC::NotFound
         
     | 
| 
      
 80 
     | 
    
         
            +
                    LHS::Data.new({}, data, service)
         
     | 
| 
       69 
81 
     | 
    
         
             
                  end
         
     | 
| 
       70 
     | 
    
         
            -
                  extend(data, addition, key)
         
     | 
| 
       71 
82 
     | 
    
         
             
                end
         
     | 
| 
       72 
83 
     | 
    
         | 
| 
       73 
84 
     | 
    
         
             
                # Merge explicit params nested in 'params' namespace with original hash.
         
     | 
    
        data/lib/lhs/version.rb
    CHANGED
    
    
| 
         @@ -115,4 +115,27 @@ describe LHS::Service do 
     | 
|
| 
       115 
115 
     | 
    
         
             
                  end
         
     | 
| 
       116 
116 
     | 
    
         
             
                end
         
     | 
| 
       117 
117 
     | 
    
         
             
              end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
              context 'links pointing to nowhere' do
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                it 'sets nil for links that cannot be included' do
         
     | 
| 
      
 122 
     | 
    
         
            +
                  class Feedback < LHS::Service
         
     | 
| 
      
 123 
     | 
    
         
            +
                    endpoint ':datastore/feedbacks'
         
     | 
| 
      
 124 
     | 
    
         
            +
                    endpoint ':datastore/feedbacks/:id'
         
     | 
| 
      
 125 
     | 
    
         
            +
                  end
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
                  stub_request(:get, "#{datastore}/feedbacks/123")
         
     | 
| 
      
 128 
     | 
    
         
            +
                    .to_return(status: 200, body: {
         
     | 
| 
      
 129 
     | 
    
         
            +
                      'href' => "#{datastore}/feedbacks/-Sc4_pYNpqfsudzhtivfkA",
         
     | 
| 
      
 130 
     | 
    
         
            +
                      'campaign' => { 'href' => "#{datastore}/content-ads/51dfc5690cf271c375c5a12d" }
         
     | 
| 
      
 131 
     | 
    
         
            +
                    }.to_json)
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
                  stub_request(:get, "#{datastore}/content-ads/51dfc5690cf271c375c5a12d")
         
     | 
| 
      
 134 
     | 
    
         
            +
                    .to_return(status: 404)
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
                  feedback = Feedback.includes(campaign: :entry).find(123)
         
     | 
| 
      
 137 
     | 
    
         
            +
                  expect(feedback.campaign._raw.keys.count).to eq 1
         
     | 
| 
      
 138 
     | 
    
         
            +
                  expect(feedback.campaign.href).to be
         
     | 
| 
      
 139 
     | 
    
         
            +
                end
         
     | 
| 
      
 140 
     | 
    
         
            +
              end
         
     | 
| 
       118 
141 
     | 
    
         
             
            end
         
     |