Class: ShopifyTransporter::Shopify::Record

Inherits:
Object
  • Object
show all
Defined in:
lib/shopify_transporter/shopify/record.rb

Direct Known Subclasses

Customer, Order, Product

Constant Summary collapse

METAFIELD_PREFIX =
'metafield_'
METAFIELD_ATTRIBUTES =
%w(namespace key value value_type).freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash = {}) ⇒ Record

Returns a new instance of Record.



9
10
11
# File 'lib/shopify_transporter/shopify/record.rb', line 9

def initialize(hash = {})
  @record_hash = hash
end

Class Method Details

.columnsObject

Raises:

  • (NotImplementedError)


37
38
39
# File 'lib/shopify_transporter/shopify/record.rb', line 37

def columns
  raise NotImplementedError
end

.has_values?(hash) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/shopify_transporter/shopify/record.rb', line 45

def has_values?(hash)
  hash.except(*keys).any? { |_, v| v }
end

.headerObject

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/shopify_transporter/shopify/record.rb', line 23

def header
  raise NotImplementedError
end

.keysObject

Raises:

  • (NotImplementedError)


41
42
43
# File 'lib/shopify_transporter/shopify/record.rb', line 41

def keys
  raise NotImplementedError
end

Instance Method Details

#metafield_row_valuesObject



13
14
15
16
17
18
19
20
# File 'lib/shopify_transporter/shopify/record.rb', line 13

def metafield_row_values
  return [] if @record_hash['metafields'].blank?
  @record_hash['metafields'].map do |metafield_hash|
    metafield = metafield_hash.slice(*METAFIELD_ATTRIBUTES)
    metafield.transform_keys! { |k| "#{METAFIELD_PREFIX}#{k}" }
    row_values_from(metafield) if self.class.has_values?(metafield)
  end.compact
end

#to_csvObject

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/shopify_transporter/shopify/record.rb', line 28

def to_csv
  raise NotImplementedError
end