Sha256: 5919aec16759250e2ebd3dcb7743a98300948a32cc79e204ff40b134fbabc23d

Contents?: true

Size: 1.69 KB

Versions: 9

Compression:

Stored size: 1.69 KB

Contents

module IntrospectiveGrape::Helpers
  API_ACTIONS = [:index,:show,:create,:update,:destroy].freeze
  def authentication_method=(method)
    # IntrospectiveGrape::API.authentication_method=
    @authentication_method = method
  end

  def authentication_method(context)
    # Default to "authenticate!" or as grape docs once suggested, "authorize!"
    if @authentication_method
      @authentication_method
    elsif context.respond_to?('authenticate!')
      'authenticate!'
    elsif context.respond_to?('authorize!')
      'authorize!'
    end
  end

  def paginate(args={})
    @pagination = args
  end

  def pagination
    @pagination
  end

  def exclude_actions(model, *args)
    @exclude_actions ||= {}; @exclude_actions[model.name] ||= []
    args.flatten!
    args = API_ACTIONS if args.include?(:all)
    args = []          if args.include?(:none)

    undefined_actions = args.compact-API_ACTIONS
    raise "#{model.name} defines invalid actions: #{undefined_actions}" if undefined_actions.present?

    @exclude_actions[model.name] = args.present? ? args.compact : @exclude_actions[model.name] || []
  end

  def include_actions(model, *args)
    @exclude_actions ||= {}; @exclude_actions[model.name] ||= []
    @exclude_actions[model.name] = API_ACTIONS-exclude_actions(model, args)
  end


  def default_includes(model, *args)
    @default_includes ||= {}
    @default_includes[model.name] = args.present? ? args.flatten : @default_includes[model.name] || []
  end

  def whitelist(whitelist=nil)
    return @whitelist if !whitelist
    @whitelist = whitelist
  end

  def skip_presence_validations(fields=nil)
    return @skip_presence_fields||[] if !fields
    @skip_presence_fields = [fields].flatten
  end


end


Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
introspective_grape-0.4.3 lib/introspective_grape/helpers.rb
introspective_grape-0.4.2 lib/introspective_grape/helpers.rb
introspective_grape-0.4.1 lib/introspective_grape/helpers.rb
introspective_grape-0.4.0 lib/introspective_grape/helpers.rb
introspective_grape-0.3.9 lib/introspective_grape/helpers.rb
introspective_grape-0.3.7 lib/introspective_grape/helpers.rb
introspective_grape-0.3.6 lib/introspective_grape/helpers.rb
introspective_grape-0.3.5 lib/introspective_grape/helpers.rb
introspective_grape-0.3.3 lib/introspective_grape/helpers.rb