Sha256: 69053fec8234302e30ae8e7cc0cbef9f17f0faa3c0a2e86d340869a31b58a500

Contents?: true

Size: 1.03 KB

Versions: 26

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

require 'dato/dump/format'

module Dato
  module Dump
    module Operation
      class AddToDataFile
        attr_reader :context, :path, :format, :value

        def initialize(context, path, format, value)
          @context = context
          @path = path
          @format = format
          @value = value
        end

        def perform
          complete_path = File.join(context.path, path)
          FileUtils.mkdir_p(File.dirname(complete_path))

          content_to_add = Format.dump(format, value)

          old_content = if File.exist? complete_path
                          ::File.read(complete_path)
                        else
                          ''
                        end

          new_content = old_content.sub(
            /\n*(#\s*datocms:start.*#\s*datocms:end|\Z)/m,
            "\n\n# datocms:start\n#{content_to_add}\n# datocms:end"
          )

          File.open(complete_path, 'w') do |f|
            f.write new_content
          end
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
dato-0.8.0 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.18 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.17 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.16 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.15 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.14 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.13 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.10 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.9 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.8 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.7 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.6 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.5 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.4 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.3 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.2 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.1 lib/dato/dump/operation/add_to_data_file.rb
dato-0.7.0 lib/dato/dump/operation/add_to_data_file.rb
dato-0.6.18 lib/dato/dump/operation/add_to_data_file.rb
dato-0.6.17 lib/dato/dump/operation/add_to_data_file.rb