Class: Kennel::Importer

Inherits:
Object
  • Object
show all
Defined in:
lib/kennel/importer.rb

Constant Summary collapse

SORT_ORDER =
[:title, :id, :description, :template_variables].freeze
IGNORED =

TODO: make model diff normalization reusable

Models::Base::READONLY_ATTRIBUTES - [:id] + [:created_by, :read_only]

Instance Method Summary collapse

Constructor Details

#initialize(api) ⇒ Importer

Returns a new instance of Importer.



10
11
12
# File 'lib/kennel/importer.rb', line 10

def initialize(api)
  @api = api
end

Instance Method Details

#import(resource, id) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/kennel/importer.rb', line 14

def import(resource, id)
  data = @api.show(resource, id)
  case resource
  when "dash"
    data = data[:dash]
    IGNORED.each { |k| data.delete(k) }
    <<~RUBY
      Kennel::Models::Dash.new(
        self,
        #{pretty_print(data).lstrip}
      )
    RUBY
  else
    raise ArgumentError, "#{resource} is not supported"
  end
end