Module: Gitlab::GithubImport::Representation::ToHash

Included in:
Gitlab::GithubGistsImport::Representation::Gist, ReplayEvent
Defined in:
lib/gitlab/github_import/representation/to_hash.rb

Instance Method Summary collapse

Instance Method Details

#convert_value_for_to_hash(value) ⇒ Object

This method allow objects to be safely passed directly to Sidekiq without errors. It returns JSON datatypes: string, integer, float, boolean, null(nil), array and hash.



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/gitlab/github_import/representation/to_hash.rb', line 21

def convert_value_for_to_hash(value)
  if value.is_a?(Array)
    value.map { |v| convert_value_for_to_hash(v) }
  elsif value.respond_to?(:to_hash)
    value.to_hash
  elsif value.respond_to?(:strftime) || value.is_a?(Symbol)
    value.to_s
  else
    value
  end
end

#to_hashObject

Converts the current representation to a Hash. The keys of this Hash will be Symbols.



9
10
11
12
13
14
15
16
17
# File 'lib/gitlab/github_import/representation/to_hash.rb', line 9

def to_hash
  hash = {}

  attributes.each do |key, value|
    hash[key] = convert_value_for_to_hash(value)
  end

  hash
end