Class: Sinatra::StrongParameters::Parameters

Inherits:
IndifferentHash show all
Defined in:
lib/sinatra/strong_parameters.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes = nil, raise_flag = false) ⇒ Parameters

Returns a new instance of Parameters.



47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/sinatra/strong_parameters.rb', line 47

def initialize(attributes = nil, raise_flag = false)
  @raise_unpermitted = raise_flag
  super(attributes)
  update(attributes) unless attributes.nil?

  # For nested values that need to be turned into parameters
  # in order to chain method calls.
  each_pair do |key, value|
    convert_hashes_to_parameters(key, value) if value.is_a? Hash
  end

  @permitted = false
end

Instance Attribute Details

#permittedObject Also known as: permitted?

Returns the value of attribute permitted.



43
44
45
# File 'lib/sinatra/strong_parameters.rb', line 43

def permitted
  @permitted
end

#raise_unpermittedObject

Returns the value of attribute raise_unpermitted.



44
45
46
# File 'lib/sinatra/strong_parameters.rb', line 44

def raise_unpermitted
  @raise_unpermitted
end

Instance Method Details

#[](key) ⇒ Object



78
79
80
# File 'lib/sinatra/strong_parameters.rb', line 78

def [](key)
  convert_hashes_to_parameters(key, super)
end

#permit(*filters) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/sinatra/strong_parameters.rb', line 82

def permit(*filters)
  params = self.class.new

  filters.flatten.each do |filter|
    case filter
    when Symbol, String 
      permitted_filter(params, filter)
    when Hash
      hash_filter(params, filter) 
    end
  end

  unpermitted_parameters!(params) if @raise_unpermitted

  params.permit!
end

#permit!Object



61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/sinatra/strong_parameters.rb', line 61

def permit!
  each_pair do |key, value|
    wrap(value).each do |val|
      # if this value is an instance of parameters, call permit! 
      # recursively.
      val.permit! if val.respond_to? :permit!
    end 
  end

  @permitted = true
  self
end

#require(key) ⇒ Object



74
75
76
# File 'lib/sinatra/strong_parameters.rb', line 74

def require(key)
  presence(self[key]) || raise(ParameterMissing.new(key))
end