module Adparlor::Facebook::GraphApi::Fields::FieldDecorator::ClassMethods

Public Instance Methods

field_attrs(fields) click to toggle source
# File lib/adparlor/facebook/graph_api/fields/field_decorator.rb, line 36
def field_attrs(fields)
  @fields = fields
  @fields.each { |field| attr_accessor field }
end
fields(*args) click to toggle source
# File lib/adparlor/facebook/graph_api/fields/field_decorator.rb, line 13
def fields(*args)
  if args.first == :all
    @fields.map(&:to_s).join(',')
  else
    invalid_fields = args.map(&:to_s) - @fields.map(&:to_s)
    invalid_fields_error(invalid_fields) if invalid_fields.any?
    (@fields & args).map(&:to_s).join(',')
  end
end
validate_initialize_fields(*args) click to toggle source
# File lib/adparlor/facebook/graph_api/fields/field_decorator.rb, line 23
def validate_initialize_fields(*args)
  create_fields = self.const_defined?('CREATE_FIELDS') ? const_get('CREATE_FIELDS') : []
  invalid_fields = args.map(&:to_s) - ((@fields || []) + GLOBAL_FIELDS + create_fields).map(&:to_s)
  invalid_fields_error(invalid_fields) if invalid_fields.any?
end
validate_post_fields(*args, method) click to toggle source
# File lib/adparlor/facebook/graph_api/fields/field_decorator.rb, line 29
def validate_post_fields(*args, method)
  valid_fields = self.const_defined?('CREATE_FIELDS') ? const_get('CREATE_FIELDS') : [] if method == 'CREATE'
  valid_fields = self.const_defined?('UPDATE_FIELDS') ? const_get('UPDATE_FIELDS') : [] if method == 'UPDATE' || method == 'DELETE'
  invalid_fields = args.map(&:to_s) - (@fields + GLOBAL_FIELDS + valid_fields).map(&:to_s)
  invalid_fields_error(invalid_fields) if invalid_fields.any?
end

Private Instance Methods

invalid_fields_error(invalid_fields) click to toggle source
# File lib/adparlor/facebook/graph_api/fields/field_decorator.rb, line 43
def invalid_fields_error(invalid_fields)
  raise Adparlor::Facebook::Error.new("Invalid field#{invalid_fields.length > 1 ? 's' : ''} #{invalid_fields.join(', ')} passed", 500)
end