class Fitting::Storage::WhiteList
Public Class Methods
new(prefix, white_list, resource_white_list, include_resources, include_actions, resources)
click to toggle source
# File lib/fitting/storage/white_list.rb, line 6 def initialize(prefix, white_list, resource_white_list, include_resources, include_actions, resources) @prefix = prefix @white_list = white_list @resource_white_list = resource_white_list @include_resources = include_resources @include_actions = include_actions @resources = resources @warnings = [] end
Public Instance Methods
find_warnings(resource)
click to toggle source
# File lib/fitting/storage/white_list.rb, line 44 def find_warnings(resource) return nil if @resources[resource] @warnings.push( "FITTING WARNING: In the documentation there isn't resource from the resource_white_list #{resource}" ) end
new_find_warnings(resource)
click to toggle source
# File lib/fitting/storage/white_list.rb, line 121 def new_find_warnings(resource) return nil if @new_resources[resource] @warnings.push( "FITTING WARNING: In the documentation there isn't resource from the resource_white_list #{resource}" ) end
new_requests(resource, all_requests)
click to toggle source
# File lib/fitting/storage/white_list.rb, line 112 def new_requests(resource, all_requests) return all_requests unless resource resource.map do |request| all_requests.push(request_hash(request)) end all_requests end
new_resource_selection(resource, all_requests)
click to toggle source
# File lib/fitting/storage/white_list.rb, line 107 def new_resource_selection(resource, all_requests) new_find_warnings(resource) new_requests(@new_resources[resource], all_requests) end
new_transformation()
click to toggle source
# File lib/fitting/storage/white_list.rb, line 82 def new_transformation @new_resources = {} @resources.map do |key, value| @new_resources.merge!(Tomograph::Path.new(key).to_s => value) end result = new_without_group.group_by { |action| action[:path] } result.inject({}) do |res, group| methods = group.last.map { |gr| gr[:method] } res.merge(group.first => methods) end end
new_without_group()
click to toggle source
# File lib/fitting/storage/white_list.rb, line 94 def new_without_group return @newwithout_group_list if @newwithout_group_list @newwithout_group_list = @include_resources.inject([]) do |all_requests, resource| if resource[0] == '/' new_resource_selection(resource, all_requests) else new_resource_selection("/#{resource}", all_requests) end end.flatten.uniq puts_warnings @newwithout_group_list end
postnew_transformation()
click to toggle source
# File lib/fitting/storage/white_list.rb, line 128 def postnew_transformation result = postnew_without_group.group_by { |action| action[:path] } result.inject({}) do |res, group| methods = group.last.map { |gr| gr[:method] } res.merge(group.first => methods) end end
postnew_without_group()
click to toggle source
# File lib/fitting/storage/white_list.rb, line 136 def postnew_without_group return @postnewwithout_group_list if @postnewwithout_group_list @postnewwithout_group_list = @include_actions.inject([]) do |all_requests, resource| method, path = resource.split(' ') if path[0] == '/' new_requests(["#{method} #{@prefix}#{path}"], all_requests) else new_requests(["#{method} #{@prefix}/#{path}"], all_requests) end end.flatten.uniq puts_warnings @postnewwithout_group_list end
puts_warnings()
click to toggle source
# File lib/fitting/storage/white_list.rb, line 51 def puts_warnings return nil if @warnings == [] warnings_string = @warnings.join("\n") puts "\n#{warnings_string}" end
request_hash(request)
click to toggle source
# File lib/fitting/storage/white_list.rb, line 74 def request_hash(request) array = request.split(' ') { method: array[0], path: Tomograph::Path.new(array[1]).to_s } end
requests(resource, all_requests)
click to toggle source
# File lib/fitting/storage/white_list.rb, line 57 def requests(resource, all_requests) return all_requests unless resource resource.map do |request| all_requests.push(request_hash(request)) end all_requests end
resource_selection(resource, all_requests)
click to toggle source
# File lib/fitting/storage/white_list.rb, line 35 def resource_selection(resource, all_requests) if resource[1] == [] find_warnings(resource[0]) requests(@resources[resource[0]], all_requests) else requests(resource[1], all_requests) end end
to_a()
click to toggle source
# File lib/fitting/storage/white_list.rb, line 16 def to_a return nil if @white_list == nil && @resource_white_list == nil && @include_resources == nil && @include_actions == nil return @white_list if @white_list return @white_list = transformation if @resource_white_list @white_list = {} @white_list.merge!(new_transformation) if @include_resources @white_list.merge!(postnew_transformation) if @include_actions @white_list end
transformation()
click to toggle source
# File lib/fitting/storage/white_list.rb, line 66 def transformation result = without_group.group_by { |action| action[:path] } result.inject({}) do |res, group| methods = group.last.map { |gr| gr[:method] } res.merge(group.first => methods) end end
without_group()
click to toggle source
# File lib/fitting/storage/white_list.rb, line 26 def without_group return @without_group_list if @without_group_list @without_group_list = @resource_white_list.inject([]) do |all_requests, resource| resource_selection(resource, all_requests) end.flatten.uniq puts_warnings @without_group_list end