Module: HALPresenter::ClassMethods
- Defined in:
- lib/hal_presenter/links.rb,
 lib/hal_presenter/model.rb,
 lib/hal_presenter/pagination.rb,
 lib/hal_presenter/serializer.rb,
 lib/hal_presenter/deserializer.rb
Instance Attribute Summary collapse
- 
  
    
      #paginate  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute paginate. 
Instance Method Summary collapse
- #base_href=(base) ⇒ Object
- #from_hal(presenter, payload, resource = nil) ⇒ Object
- #href(href) ⇒ Object
- #lookup_model(presenter) ⇒ Object
- #lookup_presenter(model) ⇒ Object
- #lookup_presenters(model) ⇒ Object
- #register(model:, presenter:) ⇒ Object
- #to_collection(resources, **options) ⇒ Object
- #to_hal(resource, **options) ⇒ Object
- #unregister(presenter) ⇒ Object
Instance Attribute Details
#paginate ⇒ Object
Returns the value of attribute paginate.
| 3 4 5 | # File 'lib/hal_presenter/pagination.rb', line 3 def paginate @paginate end | 
Instance Method Details
#base_href=(base) ⇒ Object
| 7 8 9 | # File 'lib/hal_presenter/links.rb', line 7 def base_href=(base) @base_href = base&.sub(%r(/*$), '') end | 
#from_hal(presenter, payload, resource = nil) ⇒ Object
| 5 6 7 | # File 'lib/hal_presenter/deserializer.rb', line 5 def from_hal(presenter, payload, resource = nil) presenter.from_hal(payload, resource) end | 
#href(href) ⇒ Object
| 11 12 13 14 15 | # File 'lib/hal_presenter/links.rb', line 11 def href(href) return href if (@base_href ||= '').empty? return href if href =~ %r(\A(\w+://)?[^/]) @base_href + href end | 
#lookup_model(presenter) ⇒ Object
| 14 15 16 | # File 'lib/hal_presenter/model.rb', line 14 def lookup_model(presenter) @presenters[presenter] end | 
#lookup_presenter(model) ⇒ Object
| 18 19 20 21 22 | # File 'lib/hal_presenter/model.rb', line 18 def lookup_presenter(model) presenters = lookup_presenters(model) return presenters.last unless presenters.empty? lookup_presenters(model.first).last if model.respond_to? :first end | 
#lookup_presenters(model) ⇒ Object
| 24 25 26 27 28 29 30 | # File 'lib/hal_presenter/model.rb', line 24 def lookup_presenters(model) clazz = model.is_a?(Class) ? model : model.class presenters = @presenters.select { |_d, m| m == clazz }.keys return presenters unless presenters.empty? return [] unless clazz < BasicObject lookup_presenters(clazz.superclass) end | 
#register(model:, presenter:) ⇒ Object
| 5 6 7 8 | # File 'lib/hal_presenter/model.rb', line 5 def register(model:, presenter:) return unless presenter && model @presenters[presenter] = model end | 
#to_collection(resources, **options) ⇒ Object
| 13 14 15 16 | # File 'lib/hal_presenter/serializer.rb', line 13 def to_collection(resources, **) = .dup presenter!(resources, ).to_collection(resources, ) end | 
#to_hal(resource, **options) ⇒ Object
| 8 9 10 11 | # File 'lib/hal_presenter/serializer.rb', line 8 def to_hal(resource, **) = .dup presenter!(resource, ).to_hal(resource, ) end | 
#unregister(presenter) ⇒ Object
| 10 11 12 | # File 'lib/hal_presenter/model.rb', line 10 def unregister(presenter) @presenters.delete_if { |d,_| d == presenter } end |