Class: Hanami::Action::Cache::Directives Private

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/hanami/action/cache/directives.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Collection of value and non value directives

Since:

  • 0.3.0

Instance Method Summary collapse

Constructor Details

#initialize(*values) ⇒ Directives

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Directives.

Since:

  • 0.3.0


85
86
87
88
89
90
91
92
93
94
# File 'lib/hanami/action/cache/directives.rb', line 85

def initialize(*values)
  @directives = []
  values.each do |directive_key|
    if directive_key.kind_of? Hash
      directive_key.each { |name, value| self.<< ValueDirective.new(name, value) }
    else
      self.<< NonValueDirective.new(directive_key)
    end
  end
end

Instance Method Details

#<<(directive) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.3.0


104
105
106
# File 'lib/hanami/action/cache/directives.rb', line 104

def <<(directive)
  @directives << directive if directive.valid?
end

#eachObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.3.0


98
99
100
# File 'lib/hanami/action/cache/directives.rb', line 98

def each
  @directives.each { |d| yield d }
end

#join(separator) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.3.0


118
119
120
# File 'lib/hanami/action/cache/directives.rb', line 118

def join(separator)
  values.join(separator)
end

#valuesObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.3.0


110
111
112
113
114
# File 'lib/hanami/action/cache/directives.rb', line 110

def values
  @directives.delete_if do |directive|
    directive.name == :public && @directives.map(&:name).include?(:private)
  end
end