Module: IntrospectiveGrape::Helpers
- Included in:
- API
- Defined in:
- lib/introspective_grape/helpers.rb
Constant Summary collapse
- API_ACTIONS =
%i(index show create update destroy).freeze
Instance Method Summary collapse
- #all_or_none(args = []) ⇒ Object
- #authentication_method(context) ⇒ Object
- #authentication_method=(method) ⇒ Object
- #default_includes(model, *args) ⇒ Object
- #exclude_actions(model, *args) ⇒ Object
- #include_actions(model, *args) ⇒ Object
- #paginate(args = {}) ⇒ Object
- #pagination ⇒ Object
- #skip_presence_validations(fields = nil) ⇒ Object
- #whitelist(whitelist = nil) ⇒ Object
Instance Method Details
#all_or_none(args = []) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/introspective_grape/helpers.rb', line 40 def all_or_none(args=[]) args.flatten!&.compact! args = API_ACTIONS if args.include?(:all) args = [] if args.include?(:none) args end |
#authentication_method(context) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/introspective_grape/helpers.rb', line 10 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 |
#authentication_method=(method) ⇒ Object
5 6 7 8 |
# File 'lib/introspective_grape/helpers.rb', line 5 def authentication_method=(method) # IntrospectiveGrape::API.authentication_method= @authentication_method = method end |
#default_includes(model, *args) ⇒ Object
53 54 55 56 |
# File 'lib/introspective_grape/helpers.rb', line 53 def default_includes(model, *args) @default_includes ||= {} @default_includes[model.name] = args.present? ? args.flatten : @default_includes[model.name] || [] end |
#exclude_actions(model, *args) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/introspective_grape/helpers.rb', line 29 def exclude_actions(model, *args) args = all_or_none(args) @exclude_actions ||= {} @exclude_actions[model.name] ||= [] undefined_actions = args - API_ACTIONS raise "#{model.name} defines invalid actions: #{undefined_actions}" if undefined_actions.present? @exclude_actions[model.name] = args.present? ? args : @exclude_actions[model.name] end |
#include_actions(model, *args) ⇒ Object
47 48 49 50 51 |
# File 'lib/introspective_grape/helpers.rb', line 47 def include_actions(model, *args) @exclude_actions ||= {} @exclude_actions[model.name] ||= [] @exclude_actions[model.name] = API_ACTIONS - exclude_actions(model, args) end |
#paginate(args = {}) ⇒ Object
21 22 23 |
# File 'lib/introspective_grape/helpers.rb', line 21 def paginate(args={}) @pagination = args end |
#pagination ⇒ Object
25 26 27 |
# File 'lib/introspective_grape/helpers.rb', line 25 def pagination @pagination end |
#skip_presence_validations(fields = nil) ⇒ Object
64 65 66 67 68 |
# File 'lib/introspective_grape/helpers.rb', line 64 def skip_presence_validations(fields=nil) return @skip_presence_fields || [] unless fields @skip_presence_fields = [fields].flatten end |
#whitelist(whitelist = nil) ⇒ Object
58 59 60 61 62 |
# File 'lib/introspective_grape/helpers.rb', line 58 def whitelist(whitelist=nil) return @whitelist unless whitelist @whitelist = whitelist end |