Sha256: f5bbcbd3c04e19b4cee6c1d1c1df41f5396c4569e010feee7d70e98b704a77e8

Contents?: true

Size: 929 Bytes

Versions: 1

Compression:

Stored size: 929 Bytes

Contents

module ForemanTemplates::TemplateImport
  extend ActiveSupport::Concern

  module ClassMethods
    def import_snippet!(name, text)
      # Data
      snippet = self.where(:name => name).first_or_initialize
      data = {
        :template => text,
        :snippet  => true
      }

      # Printout helpers
      c_or_u = snippet.new_record? ? 'Created' : 'Updated'
      id_string = ('id' + snippet.id) rescue ''

      if data[:template] != snippet.template
        diff = Diffy::Diff.new(
          snippet.template,
          data[:template],
          :include_diff_info => true
        ).to_s(:color)
        status  = snippet.update_attributes(data)
        result  = "  #{c_or_u} Snippet #{id_string}:#{name}"
      else
        diff    = nil
        status  = true
        result  = "  No change to Snippet #{id_string}:#{name}"
      end
      { :diff => diff, :status => status, :result => result }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
foreman_templates-3.0.0 app/models/concerns/foreman_templates/template_import.rb