def initialize(klass, view_name, options, view_parameters)
normalized_view_parameters = normalize_view_parameters view_parameters
@list_name = normalized_view_parameters.delete(:list) || options[:list]
@language = options[:language] || Config.default_language
assert_valid_view_parameters normalized_view_parameters
@klass = klass
@options = options
@view_name = compute_view_name(view_name,
options.key?(:digest_view_name) ? options[:digest_view_name] : Config.digest_view_names)
@design_document = translate_to_design_doc_name(klass.to_s, @view_name, @list_name)
@list_params = normalized_view_parameters.delete :list_params
@list_function = klass.lists(@list_name) if @list_name
@view_parameters = {}
[:group, :include_docs, :descending, :group_level, :limit].each do |key|
@view_parameters[key] = options[key] if options.include?(key)
end
@view_parameters.merge!(normalized_view_parameters)
@view_parameters.merge!(@list_params) if @list_params
end