Sha256: 9572f401e8d984e60a1182c656e8f737934e0edeba400f30a1fae19796991667

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module GistUpdater
  # Updates according to user configuration
  class Updater
    # @param options [Hash] options generated by Thor
    # @param config_class [Class] a Class which has configuration duty
    def initialize(options, config_class = Config)
      @user             = options[:user] || ENV['GISTUPDATER_USER']
      @access_token     = options[:token] || ENV['GISTUPDATER_ACCESS_TOKEN']
      @config           = config_class.new(options[:yaml])
      GistUpdater.debug = options[:debug]
    end

    # Update your Gist
    #
    # @return [Array<Sawyer::Resource>] Updated resource(s)
    def update
      updated = []

      config.each do |gist_id:, file_paths:|
        file_paths.each do |file_path|
          updated << update_by_gist(gist_id, file_path)
        end
      end

      updated.compact
    end

    private

    attr_reader :user, :access_token, :config

    # Update a Gist file
    #
    # @return (see GistUpdater::Content#update_if_need)
    def update_by_gist(id, file_path)
      Content.new(
        user: user,
        access_token: access_token,
        gist_id: id,
        file_path: file_path
      ).update_if_need
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gist_updater-0.4.2 lib/gist_updater/updater.rb