contentful 0.3.4 → 0.3.5
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 +7 -0
- data/.travis.yml +1 -1
- data/CHANGELOG.md +43 -24
- data/README.md +22 -0
- data/RELEASE.md +8 -0
- data/Rakefile +4 -6
- data/contentful.gemspec +7 -9
- data/examples/custom_classes.rb +1 -2
- data/examples/dynamic_entries.rb +2 -4
- data/examples/example_queries.rb +2 -3
- data/examples/raise_errors.rb +3 -5
- data/examples/raw_mode.rb +2 -3
- data/examples/resource_mapping.rb +3 -4
- data/lib/contentful/array.rb +0 -1
- data/lib/contentful/asset.rb +1 -1
- data/lib/contentful/client.rb +47 -38
- data/lib/contentful/deleted_entry.rb +1 -1
- data/lib/contentful/request.rb +1 -2
- data/lib/contentful/resource.rb +1 -1
- data/lib/contentful/resource/array_like.rb +2 -3
- data/lib/contentful/resource/asset_fields.rb +1 -1
- data/lib/contentful/resource/fields.rb +2 -3
- data/lib/contentful/resource/system_properties.rb +1 -1
- data/lib/contentful/resource_builder.rb +14 -23
- data/lib/contentful/response.rb +40 -35
- data/lib/contentful/sync.rb +1 -3
- data/lib/contentful/sync_page.rb +2 -3
- data/lib/contentful/version.rb +1 -1
- data/spec/array_spec.rb +20 -20
- data/spec/asset_spec.rb +14 -14
- data/spec/auto_includes_spec.rb +4 -4
- data/spec/client_class_spec.rb +22 -24
- data/spec/client_configuration_spec.rb +48 -49
- data/spec/coercions_spec.rb +4 -4
- data/spec/content_type_spec.rb +12 -12
- data/spec/deleted_asset_spec.rb +10 -11
- data/spec/deleted_entry_spec.rb +9 -10
- data/spec/dynamic_entry_spec.rb +11 -11
- data/spec/entry_spec.rb +14 -14
- data/spec/error_class_spec.rb +15 -18
- data/spec/error_requests_spec.rb +6 -7
- data/spec/field_spec.rb +9 -9
- data/spec/file_spec.rb +7 -7
- data/spec/link_spec.rb +14 -14
- data/spec/locale_spec.rb +6 -6
- data/spec/location_spec.rb +10 -10
- data/spec/request_spec.rb +13 -13
- data/spec/resource_building_spec.rb +7 -8
- data/spec/resource_spec.rb +14 -14
- data/spec/response_spec.rb +25 -24
- data/spec/space_spec.rb +10 -10
- data/spec/spec_helper.rb +1 -2
- data/spec/support/json_responses.rb +2 -2
- data/spec/support/vcr.rb +3 -3
- data/spec/sync_page_spec.rb +26 -27
- data/spec/sync_spec.rb +22 -24
- metadata +41 -66
    
        data/lib/contentful/request.rb
    CHANGED
    
    | @@ -11,7 +11,7 @@ module Contentful | |
| 11 11 | 
             
                  @absolute = true if @endpoint.start_with?('http')
         | 
| 12 12 |  | 
| 13 13 | 
             
                  @query = if query && !query.empty?
         | 
| 14 | 
            -
             | 
| 14 | 
            +
                             normalize_query(query)
         | 
| 15 15 | 
             
                  end
         | 
| 16 16 |  | 
| 17 17 | 
             
                  if id
         | 
| @@ -43,7 +43,6 @@ module Contentful | |
| 43 43 | 
             
                  Marshal.load(Marshal.dump(self))
         | 
| 44 44 | 
             
                end
         | 
| 45 45 |  | 
| 46 | 
            -
             | 
| 47 46 | 
             
                private
         | 
| 48 47 |  | 
| 49 48 | 
             
                def normalize_query(query)
         | 
    
        data/lib/contentful/resource.rb
    CHANGED
    
    | @@ -21,7 +21,7 @@ module Contentful | |
| 21 21 |  | 
| 22 22 | 
             
                attr_reader :properties, :request, :client, :default_locale
         | 
| 23 23 |  | 
| 24 | 
            -
                def initialize(object, request = nil, client = nil, nested_locale_fields = false, default_locale = Contentful::Client::DEFAULT_CONFIGURATION[:default_locale] | 
| 24 | 
            +
                def initialize(object, request = nil, client = nil, nested_locale_fields = false, default_locale = Contentful::Client::DEFAULT_CONFIGURATION[:default_locale])
         | 
| 25 25 | 
             
                  self.class.update_coercions!
         | 
| 26 26 | 
             
                  @nested_locale_fields = nested_locale_fields
         | 
| 27 27 | 
             
                  @default_locale = default_locale
         | 
| @@ -14,7 +14,7 @@ module Contentful | |
| 14 14 | 
             
                  def each_item(&block)
         | 
| 15 15 | 
             
                    items.each(&block)
         | 
| 16 16 | 
             
                  end
         | 
| 17 | 
            -
                   | 
| 17 | 
            +
                  alias_method :each, :each_item
         | 
| 18 18 |  | 
| 19 19 | 
             
                  # Delegates to items#empty?
         | 
| 20 20 | 
             
                  def empty?
         | 
| @@ -25,8 +25,7 @@ module Contentful | |
| 25 25 | 
             
                  def size
         | 
| 26 26 | 
             
                    items.size
         | 
| 27 27 | 
             
                  end
         | 
| 28 | 
            -
                   | 
| 29 | 
            -
             | 
| 28 | 
            +
                  alias_method :length, :size
         | 
| 30 29 | 
             
                end
         | 
| 31 30 | 
             
              end
         | 
| 32 31 | 
             
            end
         | 
| @@ -23,14 +23,13 @@ module Contentful | |
| 23 23 | 
             
                    end
         | 
| 24 24 | 
             
                  end
         | 
| 25 25 |  | 
| 26 | 
            -
             | 
| 27 26 | 
             
                  private
         | 
| 28 27 |  | 
| 29 28 | 
             
                  def extract_fields_from_object!(object)
         | 
| 30 29 | 
             
                    @fields = {}
         | 
| 31 30 |  | 
| 32 31 | 
             
                    if nested_locale_fields?
         | 
| 33 | 
            -
                      object[ | 
| 32 | 
            +
                      object['fields'].each do |field_name, nested_child_object|
         | 
| 34 33 | 
             
                        nested_child_object.each do |object_locale, real_child_object|
         | 
| 35 34 | 
             
                          @fields[object_locale] ||= {}
         | 
| 36 35 | 
             
                          @fields[object_locale].merge! extract_from_object(
         | 
| @@ -39,7 +38,7 @@ module Contentful | |
| 39 38 | 
             
                        end
         | 
| 40 39 | 
             
                      end
         | 
| 41 40 | 
             
                    else
         | 
| 42 | 
            -
                      @fields[locale] = extract_from_object object[ | 
| 41 | 
            +
                      @fields[locale] = extract_from_object object['fields'], :fields
         | 
| 43 42 | 
             
                    end
         | 
| 44 43 | 
             
                  end
         | 
| 45 44 |  | 
| @@ -28,12 +28,11 @@ module Contentful | |
| 28 28 |  | 
| 29 29 | 
             
                attr_reader :client, :response, :resource_mapping, :entry_mapping, :resource
         | 
| 30 30 |  | 
| 31 | 
            -
             | 
| 32 31 | 
             
                def initialize(client, response, resource_mapping = {}, entry_mapping = {}, default_locale = Contentful::Client::DEFAULT_CONFIGURATION[:default_locale])
         | 
| 33 32 | 
             
                  @response = response
         | 
| 34 33 | 
             
                  @client = client
         | 
| 35 34 | 
             
                  @included_resources = {}
         | 
| 36 | 
            -
                  @known_resources = Hash.new{ |h,k| h[k] = {} }
         | 
| 35 | 
            +
                  @known_resources = Hash.new { |h, k| h[k] = {} }
         | 
| 37 36 | 
             
                  @nested_locales = false
         | 
| 38 37 | 
             
                  @default_locale = default_locale
         | 
| 39 38 | 
             
                  @resource_mapping = default_resource_mapping.merge(resource_mapping)
         | 
| @@ -43,19 +42,10 @@ module Contentful | |
| 43 42 | 
             
                # Starts the parsing process.
         | 
| 44 43 | 
             
                # Either returns an Error, or the parsed Resource
         | 
| 45 44 | 
             
                def run
         | 
| 46 | 
            -
                   | 
| 47 | 
            -
             | 
| 48 | 
            -
                    Error[response.raw.status].new(response)
         | 
| 49 | 
            -
                  when :unparsable_json
         | 
| 50 | 
            -
                    UnparsableJson.new(response)
         | 
| 51 | 
            -
                  when :not_contentful
         | 
| 52 | 
            -
                    Error.new(response)
         | 
| 45 | 
            +
                  if response.status == :ok
         | 
| 46 | 
            +
                    create_all_resources!
         | 
| 53 47 | 
             
                  else
         | 
| 54 | 
            -
                     | 
| 55 | 
            -
                      create_all_resources!
         | 
| 56 | 
            -
                    rescue UnparsableResource => error
         | 
| 57 | 
            -
                      error
         | 
| 58 | 
            -
                    end
         | 
| 48 | 
            +
                    response.object
         | 
| 59 49 | 
             
                  end
         | 
| 60 50 | 
             
                end
         | 
| 61 51 |  | 
| @@ -76,6 +66,8 @@ module Contentful | |
| 76 66 | 
             
                  end
         | 
| 77 67 |  | 
| 78 68 | 
             
                  @resource
         | 
| 69 | 
            +
                rescue UnparsableResource => error
         | 
| 70 | 
            +
                  error
         | 
| 79 71 | 
             
                end
         | 
| 80 72 |  | 
| 81 73 | 
             
                # Creates a single resource from the response object
         | 
| @@ -110,15 +102,15 @@ module Contentful | |
| 110 102 |  | 
| 111 103 | 
             
                # Returns the id of the related ContentType, if there is one
         | 
| 112 104 | 
             
                def content_type_id_for_entry(object)
         | 
| 113 | 
            -
                  object[ | 
| 114 | 
            -
                  object[ | 
| 115 | 
            -
                  object[ | 
| 116 | 
            -
                  object[ | 
| 105 | 
            +
                  object['sys'] &&
         | 
| 106 | 
            +
                  object['sys']['contentType'] &&
         | 
| 107 | 
            +
                  object['sys']['contentType']['sys'] &&
         | 
| 108 | 
            +
                  object['sys']['contentType']['sys']['id']
         | 
| 117 109 | 
             
                end
         | 
| 118 110 |  | 
| 119 111 | 
             
                # Detects if a resource is an Contentful::Array or a SyncPage
         | 
| 120 112 | 
             
                def array_or_sync_page(object)
         | 
| 121 | 
            -
                  if object[ | 
| 113 | 
            +
                  if object['nextPageUrl'] || object['nextSyncUrl']
         | 
| 122 114 | 
             
                    SyncPage
         | 
| 123 115 | 
             
                  else
         | 
| 124 116 | 
             
                    Array
         | 
| @@ -133,7 +125,7 @@ module Contentful | |
| 133 125 | 
             
                # - Proc: Will be called, expected to return the proper Class
         | 
| 134 126 | 
             
                # - Symbol: Will be called as method of the ResourceBuilder itself
         | 
| 135 127 | 
             
                def detect_resource_class(object)
         | 
| 136 | 
            -
                  type = object[ | 
| 128 | 
            +
                  type = object['sys'] && object['sys']['type']
         | 
| 137 129 |  | 
| 138 130 | 
             
                  case res_class = resource_mapping[type]
         | 
| 139 131 | 
             
                  when Symbol
         | 
| @@ -141,7 +133,7 @@ module Contentful | |
| 141 133 | 
             
                  when Proc
         | 
| 142 134 | 
             
                    res_class[object]
         | 
| 143 135 | 
             
                  when nil
         | 
| 144 | 
            -
                     | 
| 136 | 
            +
                    fail UnparsableResource.new(response)
         | 
| 145 137 | 
             
                  else
         | 
| 146 138 | 
             
                    res_class
         | 
| 147 139 | 
             
                  end
         | 
| @@ -157,7 +149,6 @@ module Contentful | |
| 157 149 | 
             
                  DEFAULT_ENTRY_MAPPING.dup
         | 
| 158 150 | 
             
                end
         | 
| 159 151 |  | 
| 160 | 
            -
             | 
| 161 152 | 
             
                private
         | 
| 162 153 |  | 
| 163 154 | 
             
                def detect_child_objects(object)
         | 
| @@ -191,7 +182,7 @@ module Contentful | |
| 191 182 | 
             
                      res.public_send(name)[child_name.to_sym] = create_resource(child_object)
         | 
| 192 183 | 
             
                    end
         | 
| 193 184 | 
             
                    next if name == 'includes'
         | 
| 194 | 
            -
                    detect_child_arrays(potential_objects).each do |child_name,  | 
| 185 | 
            +
                    detect_child_arrays(potential_objects).each do |child_name, _child_array|
         | 
| 195 186 | 
             
                      replace_child_array res.public_send(name)[child_name.to_sym]
         | 
| 196 187 | 
             
                    end
         | 
| 197 188 | 
             
                  end
         | 
    
        data/lib/contentful/response.rb
    CHANGED
    
    | @@ -27,62 +27,67 @@ module Contentful | |
| 27 27 | 
             
                  @request = request
         | 
| 28 28 | 
             
                  @status = :ok
         | 
| 29 29 |  | 
| 30 | 
            -
                  if  | 
| 31 | 
            -
                     | 
| 32 | 
            -
                    @error_message = 'Service Unavailable, contenful.com API seems to be down'
         | 
| 30 | 
            +
                  if valid_http_response?
         | 
| 31 | 
            +
                    parse_json!
         | 
| 33 32 | 
             
                  elsif no_content_response?
         | 
| 34 33 | 
             
                    @status = :no_content
         | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 34 | 
            +
                  elsif no_resource_or_bad_request?
         | 
| 35 | 
            +
                    parse_contentful_error
         | 
| 36 | 
            +
                  else
         | 
| 37 | 
            +
                    parse_http_error
         | 
| 38 38 | 
             
                  end
         | 
| 39 39 | 
             
                end
         | 
| 40 40 |  | 
| 41 41 | 
             
                private
         | 
| 42 42 |  | 
| 43 | 
            -
                def  | 
| 44 | 
            -
                   | 
| 43 | 
            +
                def error_object?
         | 
| 44 | 
            +
                  object['sys']['type'] == 'Error'
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                def parse_contentful_error
         | 
| 48 | 
            +
                  @object = load_json
         | 
| 49 | 
            +
                  @error_message = object['message'] if error_object?
         | 
| 50 | 
            +
                  parse_http_error
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                def valid_http_response?
         | 
| 54 | 
            +
                  [200, 201].include?(raw.status)
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                def parse_http_error
         | 
| 58 | 
            +
                  @status = :error
         | 
| 59 | 
            +
                  @object = Error[raw.status].new(self)
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                def no_resource_or_bad_request?
         | 
| 63 | 
            +
                  [400, 404].include?(raw.status)
         | 
| 45 64 | 
             
                end
         | 
| 46 65 |  | 
| 47 66 | 
             
                def no_content_response?
         | 
| 48 | 
            -
                   | 
| 67 | 
            +
                  raw.to_s == '' && raw.status == 204
         | 
| 49 68 | 
             
                end
         | 
| 50 69 |  | 
| 51 70 | 
             
                def parse_json!
         | 
| 52 | 
            -
                   | 
| 53 | 
            -
             | 
| 54 | 
            -
                   | 
| 55 | 
            -
             | 
| 56 | 
            -
                   | 
| 57 | 
            -
                  @error_message = e.message
         | 
| 58 | 
            -
                  @object = e
         | 
| 59 | 
            -
                  false
         | 
| 71 | 
            +
                  @object = load_json
         | 
| 72 | 
            +
                rescue MultiJson::LoadError => error
         | 
| 73 | 
            +
                  @error_message = error.message
         | 
| 74 | 
            +
                  @status = :error
         | 
| 75 | 
            +
                  UnparsableJson.new(self)
         | 
| 60 76 | 
             
                end
         | 
| 61 77 |  | 
| 62 | 
            -
                def  | 
| 63 | 
            -
                   | 
| 64 | 
            -
                    if @object["sys"]["type"] == 'Error'
         | 
| 65 | 
            -
                      @status = :contentful_error
         | 
| 66 | 
            -
                      @error_message = object['message']
         | 
| 67 | 
            -
                      true
         | 
| 68 | 
            -
                    else
         | 
| 69 | 
            -
                      false
         | 
| 70 | 
            -
                    end
         | 
| 71 | 
            -
                  else
         | 
| 72 | 
            -
                    @status = :not_contentful
         | 
| 73 | 
            -
                    @error_message = "No contentful system properties found in object"
         | 
| 74 | 
            -
                  end
         | 
| 78 | 
            +
                def load_json
         | 
| 79 | 
            +
                  MultiJson.load(unzip_response(raw))
         | 
| 75 80 | 
             
                end
         | 
| 76 81 |  | 
| 77 82 | 
             
                def unzip_response(response)
         | 
| 78 | 
            -
                   | 
| 79 | 
            -
             | 
| 83 | 
            +
                  parsed_response = response.to_s
         | 
| 84 | 
            +
                  if response.headers['Content-Encoding'].eql?('gzip')
         | 
| 85 | 
            +
                    sio = StringIO.new(parsed_response)
         | 
| 80 86 | 
             
                    gz = Zlib::GzipReader.new(sio)
         | 
| 81 | 
            -
                    gz.read | 
| 87 | 
            +
                    gz.read
         | 
| 82 88 | 
             
                  else
         | 
| 83 | 
            -
                     | 
| 89 | 
            +
                    parsed_response
         | 
| 84 90 | 
             
                  end
         | 
| 85 91 | 
             
                end
         | 
| 86 | 
            -
             | 
| 87 92 | 
             
              end
         | 
| 88 93 | 
             
            end
         | 
    
        data/lib/contentful/sync.rb
    CHANGED
    
    | @@ -32,7 +32,7 @@ module Contentful | |
| 32 32 |  | 
| 33 33 | 
             
                # Returns false as long as last sync page has not been reached
         | 
| 34 34 | 
             
                def completed?
         | 
| 35 | 
            -
                  !! | 
| 35 | 
            +
                  !!next_sync_url
         | 
| 36 36 | 
             
                end
         | 
| 37 37 |  | 
| 38 38 | 
             
                # Directly iterates over all resources that have changed
         | 
| @@ -57,7 +57,6 @@ module Contentful | |
| 57 57 | 
             
                  page
         | 
| 58 58 | 
             
                end
         | 
| 59 59 |  | 
| 60 | 
            -
             | 
| 61 60 | 
             
                private
         | 
| 62 61 |  | 
| 63 62 | 
             
                def link_page_to_sync!(page)
         | 
| @@ -67,6 +66,5 @@ module Contentful | |
| 67 66 | 
             
                def update_sync_state_from!(page)
         | 
| 68 67 | 
             
                  @next_sync_url = page.next_sync_url
         | 
| 69 68 | 
             
                end
         | 
| 70 | 
            -
             | 
| 71 69 | 
             
              end
         | 
| 72 70 | 
             
            end
         | 
    
        data/lib/contentful/sync_page.rb
    CHANGED
    
    
    
        data/lib/contentful/version.rb
    CHANGED
    
    
    
        data/spec/array_spec.rb
    CHANGED
    
    | @@ -1,69 +1,69 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe Contentful::Array do
         | 
| 4 | 
            -
              let(:array){ vcr('array'){ create_client.content_types } }
         | 
| 4 | 
            +
              let(:array) { vcr('array') { create_client.content_types } }
         | 
| 5 5 |  | 
| 6 6 | 
             
              describe 'SystemProperties' do
         | 
| 7 7 | 
             
                it 'has a #sys getter returning a hash with symbol keys' do
         | 
| 8 | 
            -
                  expect( | 
| 9 | 
            -
                  expect( | 
| 8 | 
            +
                  expect(array.sys).to be_a Hash
         | 
| 9 | 
            +
                  expect(array.sys.keys.sample).to be_a Symbol
         | 
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 12 | 
             
                it 'has #type' do
         | 
| 13 | 
            -
                  expect( | 
| 13 | 
            +
                  expect(array.type).to eq 'Array'
         | 
| 14 14 | 
             
                end
         | 
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| 17 17 | 
             
              describe 'Properties' do
         | 
| 18 18 | 
             
                it 'has a #properties getter returning a hash with symbol keys' do
         | 
| 19 | 
            -
                  expect( | 
| 20 | 
            -
                  expect( | 
| 19 | 
            +
                  expect(array.properties).to be_a Hash
         | 
| 20 | 
            +
                  expect(array.properties.keys.sample).to be_a Symbol
         | 
| 21 21 | 
             
                end
         | 
| 22 22 |  | 
| 23 23 | 
             
                it 'has #total' do
         | 
| 24 | 
            -
                  expect( | 
| 24 | 
            +
                  expect(array.total).to eq 4
         | 
| 25 25 | 
             
                end
         | 
| 26 26 |  | 
| 27 27 | 
             
                it 'has #skip' do
         | 
| 28 | 
            -
                  expect( | 
| 28 | 
            +
                  expect(array.skip).to eq 0
         | 
| 29 29 | 
             
                end
         | 
| 30 30 |  | 
| 31 31 | 
             
                it 'has #limit' do
         | 
| 32 | 
            -
                  expect( | 
| 32 | 
            +
                  expect(array.limit).to eq 100
         | 
| 33 33 | 
             
                end
         | 
| 34 34 |  | 
| 35 35 | 
             
                it 'has #items which contain resources' do
         | 
| 36 | 
            -
                  expect( | 
| 37 | 
            -
                  expect( | 
| 36 | 
            +
                  expect(array.items).to be_a Array
         | 
| 37 | 
            +
                  expect(array.items.sample).to be_a Contentful::Resource
         | 
| 38 38 | 
             
                end
         | 
| 39 39 | 
             
              end
         | 
| 40 40 |  | 
| 41 41 | 
             
              describe '#each' do
         | 
| 42 42 | 
             
                it 'is an Enumerator' do
         | 
| 43 | 
            -
                  expect( | 
| 43 | 
            +
                  expect(array.each).to be_a Enumerator
         | 
| 44 44 | 
             
                end
         | 
| 45 45 |  | 
| 46 46 | 
             
                it 'iterates over items' do
         | 
| 47 | 
            -
                  expect( | 
| 47 | 
            +
                  expect(array.each.to_a).to eq array.items
         | 
| 48 48 | 
             
                end
         | 
| 49 49 |  | 
| 50 50 | 
             
                it 'includes Enumerable' do
         | 
| 51 | 
            -
                  expect( | 
| 51 | 
            +
                  expect(array.map { |r| r.type }).to eq array.items.map { |r| r.type }
         | 
| 52 52 | 
             
                end
         | 
| 53 53 | 
             
              end
         | 
| 54 54 |  | 
| 55 55 | 
             
              describe '#next_page' do
         | 
| 56 56 | 
             
                it 'requests more of the same content from the server, using its limit and skip values' do
         | 
| 57 | 
            -
                  array_page_1 = vcr('array_page_1'){ create_client.content_types(skip: 3, limit: 2) }
         | 
| 58 | 
            -
                  array_page_2 = vcr('array_page_2'){ array_page_1.next_page }
         | 
| 57 | 
            +
                  array_page_1 = vcr('array_page_1') { create_client.content_types(skip: 3, limit: 2) }
         | 
| 58 | 
            +
                  array_page_2 = vcr('array_page_2') { array_page_1.next_page }
         | 
| 59 59 |  | 
| 60 | 
            -
                  expect( | 
| 61 | 
            -
                  expect( | 
| 62 | 
            -
                  expect( | 
| 60 | 
            +
                  expect(array_page_2).to be_a Contentful::Array
         | 
| 61 | 
            +
                  expect(array_page_2.limit).to eq 2
         | 
| 62 | 
            +
                  expect(array_page_2.skip).to eq 5
         | 
| 63 63 | 
             
                end
         | 
| 64 64 |  | 
| 65 65 | 
             
                it 'will return false if #request not available' do
         | 
| 66 | 
            -
                  expect( | 
| 66 | 
            +
                  expect(Contentful::Array.new({}).reload).to be_false
         | 
| 67 67 | 
             
                end
         | 
| 68 68 | 
             
              end
         | 
| 69 69 | 
             
            end
         | 
    
        data/spec/asset_spec.rb
    CHANGED
    
    | @@ -1,62 +1,62 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe Contentful::Asset do
         | 
| 4 | 
            -
              let(:asset){ vcr('asset'){ create_client.asset('nyancat') } }
         | 
| 4 | 
            +
              let(:asset) { vcr('asset') { create_client.asset('nyancat') } }
         | 
| 5 5 |  | 
| 6 6 | 
             
              describe 'SystemProperties' do
         | 
| 7 7 | 
             
                it 'has a #sys getter returning a hash with symbol keys' do
         | 
| 8 | 
            -
                  expect( | 
| 9 | 
            -
                  expect( | 
| 8 | 
            +
                  expect(asset.sys).to be_a Hash
         | 
| 9 | 
            +
                  expect(asset.sys.keys.sample).to be_a Symbol
         | 
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 12 | 
             
                it 'has #id' do
         | 
| 13 | 
            -
                  expect( | 
| 13 | 
            +
                  expect(asset.id).to eq 'nyancat'
         | 
| 14 14 | 
             
                end
         | 
| 15 15 |  | 
| 16 16 | 
             
                it 'has #type' do
         | 
| 17 | 
            -
                  expect( | 
| 17 | 
            +
                  expect(asset.type).to eq 'Asset'
         | 
| 18 18 | 
             
                end
         | 
| 19 19 |  | 
| 20 20 | 
             
                it 'has #space' do
         | 
| 21 | 
            -
                  expect( | 
| 21 | 
            +
                  expect(asset.space).to be_a Contentful::Link
         | 
| 22 22 | 
             
                end
         | 
| 23 23 |  | 
| 24 24 | 
             
                it 'has #created_at' do
         | 
| 25 | 
            -
                  expect( | 
| 25 | 
            +
                  expect(asset.created_at).to be_a DateTime
         | 
| 26 26 | 
             
                end
         | 
| 27 27 |  | 
| 28 28 | 
             
                it 'has #updated_at' do
         | 
| 29 | 
            -
                  expect( | 
| 29 | 
            +
                  expect(asset.updated_at).to be_a DateTime
         | 
| 30 30 | 
             
                end
         | 
| 31 31 |  | 
| 32 32 | 
             
                it 'has #revision' do
         | 
| 33 | 
            -
                  expect( | 
| 33 | 
            +
                  expect(asset.revision).to eq 1
         | 
| 34 34 | 
             
                end
         | 
| 35 35 | 
             
              end
         | 
| 36 36 |  | 
| 37 37 | 
             
              describe 'Fields' do
         | 
| 38 38 | 
             
                it 'has #title' do
         | 
| 39 | 
            -
                  expect( | 
| 39 | 
            +
                  expect(asset.title).to eq 'Nyan Cat'
         | 
| 40 40 | 
             
                end
         | 
| 41 41 |  | 
| 42 42 | 
             
                it 'could have #description' do
         | 
| 43 | 
            -
                  expect( | 
| 43 | 
            +
                  expect(asset).to respond_to :description
         | 
| 44 44 | 
             
                end
         | 
| 45 45 |  | 
| 46 46 | 
             
                it 'has #file' do
         | 
| 47 | 
            -
                  expect( | 
| 47 | 
            +
                  expect(asset.file).to be_a Contentful::File
         | 
| 48 48 | 
             
                end
         | 
| 49 49 | 
             
              end
         | 
| 50 50 |  | 
| 51 51 | 
             
              describe '#image_url' do
         | 
| 52 52 | 
             
                it 'returns #url of #file without parameter' do
         | 
| 53 | 
            -
                  expect( | 
| 53 | 
            +
                  expect(asset.image_url).to eq asset.file.url
         | 
| 54 54 | 
             
                end
         | 
| 55 55 |  | 
| 56 56 | 
             
                it 'adds image options if given' do
         | 
| 57 57 | 
             
                  url = asset.image_url(width: 100, format: 'jpg', quality: 50)
         | 
| 58 58 | 
             
                  expect(url).to include asset.file.url
         | 
| 59 | 
            -
                  expect(url).to include  | 
| 59 | 
            +
                  expect(url).to include '?w=100&fm=jpg&q=50'
         | 
| 60 60 | 
             
                end
         | 
| 61 61 | 
             
              end
         | 
| 62 62 | 
             
            end
         |