Class: ActionSpec::Doc::Location

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/action_spec/doc/endpoint.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Location

Returns a new instance of Location.



135
136
137
138
# File 'lib/action_spec/doc/endpoint.rb', line 135

def initialize(name)
  @name = name
  @fields = ActiveSupport::OrderedHash.new
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



133
134
135
# File 'lib/action_spec/doc/endpoint.rb', line 133

def name
  @name
end

Instance Method Details

#[](name) ⇒ Object



149
150
151
# File 'lib/action_spec/doc/endpoint.rb', line 149

def [](name)
  field(name)
end

#add(field) ⇒ Object



140
141
142
143
# File 'lib/action_spec/doc/endpoint.rb', line 140

def add(field)
  @fields[field.name] = field
  clear_custom_validation_cache!
end

#copyObject



161
162
163
164
165
# File 'lib/action_spec/doc/endpoint.rb', line 161

def copy
  self.class.new(name).tap do |location|
    fields.each { |field| location.add(field.copy) }
  end
end

#custom_validation?Boolean

Returns:

  • (Boolean)


167
168
169
# File 'lib/action_spec/doc/endpoint.rb', line 167

def custom_validation?
  custom_validation_fields.any?
end

#custom_validation_fieldsObject



171
172
173
# File 'lib/action_spec/doc/endpoint.rb', line 171

def custom_validation_fields
  @custom_validation_fields ||= fields.select(&:custom_validation?).freeze
end

#each(&block) ⇒ Object



157
158
159
# File 'lib/action_spec/doc/endpoint.rb', line 157

def each(&block)
  fields.each(&block)
end

#field(name) ⇒ Object



145
146
147
# File 'lib/action_spec/doc/endpoint.rb', line 145

def field(name)
  @fields[name.to_sym]
end

#fieldsObject



153
154
155
# File 'lib/action_spec/doc/endpoint.rb', line 153

def fields
  @fields.values
end