class LinkedRails::ParamsParser
Attributes
params[R]
user_context[R]
Public Class Methods
new(params)
click to toggle source
# File lib/linked_rails/params_parser.rb, line 7 def initialize(params) @user_context = params[:user_context] @params = params.is_a?(Hash) ? ActionController::Parameters.new(params) : params end
Public Instance Methods
before_params()
click to toggle source
# File lib/linked_rails/params_parser.rb, line 12 def before_params return @before_params if instance_variable_defined?(:@before_params) values = permit_params(before: [])[:before] return @before_params = nil if values.blank? @before_params = values.map do |f| key, value = f.split('=') {key: RDF::URI(CGI.unescape(key)), value: value} end end
collection_params()
click to toggle source
# File lib/linked_rails/params_parser.rb, line 24 def collection_params return @collection_params if instance_variable_defined?(:@collection_params) values = permit_params(:display, :page_size, :title, :type) filter = filter_params values[:filter] = filter if filter sort = sorting_params values[:sort] = sort if sort values[:user_context] = user_context if user_context @collection_params = values end
collection_view_params()
click to toggle source
# File lib/linked_rails/params_parser.rb, line 40 def collection_view_params return @collection_view_params if instance_variable_defined?(:@collection_view_params) values = permit_params(:page) before = before_params values[:before] = before if before @collection_view_params = values end
filter_params()
click to toggle source
# File lib/linked_rails/params_parser.rb, line 51 def filter_params # rubocop:disable Metrics/AbcSize return @filter_params if instance_variable_defined?(:@filter_params) values = permit_params(filter: [])[:filter] || permit_params(filter: {})[:filter] return @filter_params = values if values.is_a?(Hash) return @filter_params = {} if values.blank? @filter_params = values.each_with_object({}) do |f, hash| values = f.split('=') key = RDF::URI(CGI.unescape(values.first)) hash[key] ||= [] hash[key] << CGI.unescape(values.second) end end
sorting_params()
click to toggle source
# File lib/linked_rails/params_parser.rb, line 66 def sorting_params return @sorting_params if instance_variable_defined?(:@sorting_params) values = permit_params(sort: [])[:sort] return @sorting_params = nil if values.blank? @sorting_params = values.map do |f| parse_filter_value(f) end end
Private Instance Methods
parse_filter_value(value)
click to toggle source
# File lib/linked_rails/params_parser.rb, line 79 def parse_filter_value(value) return value if value.is_a?(Hash) key, value = value.split('=') {key: RDF::URI(CGI.unescape(key)), direction: value} end
permit_params(*keys)
click to toggle source
# File lib/linked_rails/params_parser.rb, line 86 def permit_params(*keys) params .permit(*keys) .to_h .with_indifferent_access end