class Podium::Client
Attributes
name_to_url[R]
podlet_mapping[R]
resources[R]
Public Class Methods
new(name_to_url: nil)
click to toggle source
# File lib/podium/client.rb, line 5 def initialize(name_to_url: nil) @name_to_url = name_to_url @podlet_mapping = {} @resources = {} end
Public Instance Methods
load_content_for_podlets(podlet_names, context)
click to toggle source
# File lib/podium/client.rb, line 16 def load_content_for_podlets(podlet_names, context) podlet_resources(podlet_names).reduce({}) do |acc, resource| acc[resource.name] = resource.fetch(context) acc end end
podlet_resources(names)
click to toggle source
# File lib/podium/client.rb, line 23 def podlet_resources(names) names.map { |name| resources[name] ||= Resource.new(podlet_uri(name), name) } end
register(name, uri = nil)
click to toggle source
# File lib/podium/client.rb, line 11 def register(name, uri = nil) uri ||= determine_uri(name) podlet_mapping[name] = uri end
Private Instance Methods
determine_uri(name)
click to toggle source
# File lib/podium/client.rb, line 31 def determine_uri(name) raise "name_to_url not specified, podlet must be registered with uri" unless name_to_url str = name_to_url.call(name) raise "name_to_url returned nil, must return a string" unless str URI(str) end
podlet_uri(name)
click to toggle source
# File lib/podium/client.rb, line 38 def podlet_uri(name) podlet_mapping.fetch(name) end