class Locomotive::Coal::Client
Attributes
credentials[R]
options[R]
uri[R]
Public Class Methods
new(uri, credentials, options = {})
click to toggle source
# File lib/locomotive/coal/client.rb, line 7 def initialize(uri, credentials, options = {}) if uri.blank? || credentials.blank? raise MissingURIOrCredentialsError.new('URI and/or credentials are missing') else @options = { path_prefix: 'locomotive' }.merge(options).with_indifferent_access @uri, @credentials = prepare_uri(uri), credentials.with_indifferent_access end end
Public Instance Methods
accounts()
click to toggle source
# File lib/locomotive/coal/client.rb, line 24 def accounts @accounts ||= Resources::Accounts.new(uri, connection) end
content_assets()
click to toggle source
# File lib/locomotive/coal/client.rb, line 55 def content_assets @content_assets ||= Resources::ContentAssets.new(uri, connection) end
content_entries(content_type)
click to toggle source
# File lib/locomotive/coal/client.rb, line 50 def content_entries(content_type) @content_entries ||= {} @content_entries[content_type.slug] ||= Resources::ContentEntries.new(uri, connection, content_type) end
content_types()
click to toggle source
# File lib/locomotive/coal/client.rb, line 44 def content_types @content_types ||= Resources::ContentTypes.new(uri, connection) end
Also aliased as: contents
current_site()
click to toggle source
# File lib/locomotive/coal/client.rb, line 36 def current_site @current_site ||= Resources::CurrentSite.new(uri, connection) end
engine_version()
click to toggle source
# File lib/locomotive/coal/client.rb, line 75 def engine_version @engine_version ||= Resources::EngineVersion.new(uri, connection).version end
Also aliased as: version
memberships()
click to toggle source
# File lib/locomotive/coal/client.rb, line 32 def memberships @memberships ||= Resources::Memberships.new(uri, connection) end
my_account()
click to toggle source
# File lib/locomotive/coal/client.rb, line 20 def my_account @my_account ||= Resources::MyAccount.new(uri, connection) end
pages()
click to toggle source
# File lib/locomotive/coal/client.rb, line 40 def pages @pages ||= Resources::Pages.new(uri, connection) end
reset()
click to toggle source
# File lib/locomotive/coal/client.rb, line 89 def reset @token = @my_account = @sites = @current_site = @pages = @content_types = @theme_assets = @content_assets = @translations = nil end
scope_by(site_or_handle)
click to toggle source
# File lib/locomotive/coal/client.rb, line 81 def scope_by(site_or_handle) if site_or_handle.respond_to?(:handle) @current_site, site_or_handle = site_or_handle, site_or_handle.handle end options[:handle] = site_or_handle self end
sections()
click to toggle source
# File lib/locomotive/coal/client.rb, line 67 def sections @sections ||= Resources::Sections.new(uri, connection) end
sites()
click to toggle source
# File lib/locomotive/coal/client.rb, line 28 def sites @sites ||= Resources::Sites.new(uri, connection) end
snippets()
click to toggle source
# File lib/locomotive/coal/client.rb, line 63 def snippets @snippets ||= Resources::Snippets.new(uri, connection) end
ssl?()
click to toggle source
# File lib/locomotive/coal/client.rb, line 93 def ssl? !!self.options[:ssl] end
theme_assets()
click to toggle source
# File lib/locomotive/coal/client.rb, line 59 def theme_assets @theme_assets ||= Resources::ThemeAssets.new(uri, connection) end
token()
click to toggle source
# File lib/locomotive/coal/client.rb, line 16 def token @token ||= Resources::Token.new(uri, credentials).get end
translations()
click to toggle source
# File lib/locomotive/coal/client.rb, line 71 def translations @translations ||= Resources::Translations.new(uri, connection) end
Private Instance Methods
connection()
click to toggle source
# File lib/locomotive/coal/client.rb, line 99 def connection _token = credentials[:token] || -> { token } credentials.merge(token: _token, handle: options[:handle]) end
prepare_uri(str)
click to toggle source
# File lib/locomotive/coal/client.rb, line 108 def prepare_uri(str) str = "http://#{str.to_s}" unless str.to_s =~ /^https?:\/\// URI(str).tap do |uri| if ssl? uri.scheme = 'https' uri.port = 443 if uri.port = 80 end if uri.path == '/' || uri.path.blank? uri.merge!(uri_path) end end end
uri_path()
click to toggle source
# File lib/locomotive/coal/client.rb, line 104 def uri_path [self.options[:path_prefix], 'api', 'v3'].join('/') end