Module: Adparlor::Facebook::GraphApi::Fields::FieldDecorator::ClassMethods

Defined in:
lib/adparlor/facebook/graph_api/fields/field_decorator.rb

Instance Method Summary collapse

Instance Method Details

#field_attrs(fields) ⇒ Object



36
37
38
39
# 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) ⇒ Object



13
14
15
16
17
18
19
20
21
# 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) ⇒ Object



23
24
25
26
27
# 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) ⇒ Object



29
30
31
32
33
34
# 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