Class: Contentful::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/contentful/client.rb

Overview

The client object is initialized with a space and a key and then used for querying resources from this space. See README for details

Constant Summary collapse

DEFAULT_CONFIGURATION =

Default configuration for Contentful::Client

{
  secure: true,
  raise_errors: true,
  dynamic_entries: :manual,
  api_url: 'cdn.contentful.com',
  api_version: 1,
  authentication_mechanism: :header,
  resource_builder: ResourceBuilder,
  resource_mapping: {},
  entry_mapping: {},
  default_locale: 'en-US',
  raw_mode: false,
  gzip_encoded: true,
  logger: false,
  log_level: Logger::INFO,
  proxy_host: nil,
  proxy_username: nil,
  proxy_password: nil,
  proxy_port: nil
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(given_configuration = {}) ⇒ Client

Returns a new instance of Client.

Parameters:

  • given_configuration (Hash) (defaults to: {})

Options Hash (given_configuration):

  • :space (String)

    Required

  • :access_token (String)

    Required

  • :api_url (String)

    Modifying this to ‘preview.contentful.com’ gives you access to our Preview API

  • :api_version (String)
  • :default_locale (String)
  • :proxy_host (String)
  • :proxy_username (String)
  • :proxy_password (String)
  • :proxy_port (Number)
  • :gzip_encoded (Boolean)
  • :raw_mode (Boolean)
  • :logger (false, ::Logger)
  • :log_level (::Logger::DEBUG, ::Logger::INFO, ::Logger::WARN, ::Logger::ERROR)
  • :raise_errors (Boolean)
  • :dynamic_entries (::Array<String>)
  • :resource_mapping (::Hash<String, Contentful::Resource>)
  • :entry_mapping (::Hash<String, Contentful::Resource>)

See Also:

  • https://github.com/contentful/contentful.rb#client-configuration-options


67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/contentful/client.rb', line 67

def initialize(given_configuration = {})
  @configuration = default_configuration.merge(given_configuration)
  normalize_configuration!
  validate_configuration!
  setup_logger

  if configuration[:dynamic_entries] == :auto
    update_dynamic_entry_cache!
  else
    @dynamic_entry_cache = {}
  end
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



36
37
38
# File 'lib/contentful/client.rb', line 36

def configuration
  @configuration
end

#dynamic_entry_cacheObject (readonly)

Returns the value of attribute dynamic_entry_cache.



36
37
38
# File 'lib/contentful/client.rb', line 36

def dynamic_entry_cache
  @dynamic_entry_cache
end

#loggerObject (readonly)

Returns the value of attribute logger.



36
37
38
# File 'lib/contentful/client.rb', line 36

def logger
  @logger
end

#proxyObject (readonly)

Returns the value of attribute proxy.



36
37
38
# File 'lib/contentful/client.rb', line 36

def proxy
  @proxy
end

Instance Method Details

#asset(id, query = {}) ⇒ Contentful::Asset

Gets a specific asset

Parameters:

  • id (String)
  • query (Hash) (defaults to: {})

Returns:



155
156
157
# File 'lib/contentful/client.rb', line 155

def asset(id, query = {})
  Request.new(self, '/assets', query, id).get
end

#assets(query = {}) ⇒ Contentful::Array<Contentful::Asset>

Gets a collection of assets

Parameters:

  • query (Hash) (defaults to: {})

Returns:



164
165
166
# File 'lib/contentful/client.rb', line 164

def assets(query = {})
  Request.new(self, '/assets', query).get
end

#content_type(id, query = {}) ⇒ Contentful::ContentType

Gets a specific content type

Parameters:

  • id (String)
  • query (Hash) (defaults to: {})

Returns:



117
118
119
# File 'lib/contentful/client.rb', line 117

def content_type(id, query = {})
  Request.new(self, '/content_types', query, id).get
end

#content_types(query = {}) ⇒ Contentful::Array<Contentful::ContentType>

Gets a collection of content types

Parameters:

  • query (Hash) (defaults to: {})

Returns:



126
127
128
# File 'lib/contentful/client.rb', line 126

def content_types(query = {})
  Request.new(self, '/content_types', query).get
end

#entries(query = {}) ⇒ Contentful::Array<Contentful::Entry>

Gets a collection of entries

Parameters:

  • query (Hash) (defaults to: {})

Returns:



145
146
147
# File 'lib/contentful/client.rb', line 145

def entries(query = {})
  Request.new(self, '/entries', query).get
end

#entry(id, query = {}) ⇒ Contentful::Entry

Gets a specific entry

Parameters:

  • id (String)
  • query (Hash) (defaults to: {})

Returns:



136
137
138
# File 'lib/contentful/client.rb', line 136

def entry(id, query = {})
  Request.new(self, '/entries', query, id).get
end

#space(query = {}) ⇒ Contentful::Space

Gets the client’s space

Parameters:

  • query (Hash) (defaults to: {})

Returns:



107
108
109
# File 'lib/contentful/client.rb', line 107

def space(query = {})
  Request.new(self, '', query).get
end

#sync(options = { initial: true }) ⇒ Contentful::Sync

Note:

You will need to call #each_page or #first_page on it

Create a new synchronisation object

Parameters:

  • options (Hash, String) (defaults to: { initial: true })

    Options or Sync URL

Returns:



252
253
254
# File 'lib/contentful/client.rb', line 252

def sync(options = { initial: true })
  Sync.new(self, options)
end