Sha256: fd2a7713f6bea83aad606238d5c5051a3fe3dbb578e37e387210552fe01f077b
Contents?: true
Size: 1.26 KB
Versions: 3
Compression:
Stored size: 1.26 KB
Contents
module RestfulObjects class ServiceList extend Forwardable include LinkGenerator def initialize(base_url) @services = Hash.new @base_url = base_url end def register(service) raise 'service registration should be done with a class' if not service.is_a? Class @services[service.name] = service end def get_list representation = { 'links' => [ link_to(:self, '/services', :services), link_to(:up, '/', :homepage), ], 'value' => generate_values, 'extensions' => { } }.to_json end def [](key) value = @services[key] if value.is_a? Class value = value.new @services[key] = value end value end def_delegators :@services, :each, :include?, :count, :empty?, :clear private def generate_values ensure_all_created values = [] each do |name, service| element = link_to(:service, "/services/#{name}", :object, service_id: name) element['title'] = service.title values << element end values end def ensure_all_created @services.each { |name, value| @services[name] = value.new if value.is_a? Class } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
restful_objects-0.0.5 | lib/restful_objects/service_list.rb |
restful_objects-0.0.4 | lib/restful_objects/service_list.rb |
restful_objects-0.0.3 | lib/restful_objects/service_list.rb |