class GistUpdater::Updater

Updates according to user configuration

Attributes

access_token[R]
config[R]
user[R]

Public Class Methods

new(options, config_class = Config) click to toggle source

@param options [Hash] options generated by Thor @param config_class [Class] A Class which has configuration duty

# File lib/gist_updater/updater.rb, line 8
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

Public Instance Methods

update(content_class = Content) click to toggle source

Update your Gist

@param content_class [Class] A Class which has content duty @return [Array<Sawyer::Resource>] Updated resource(s)

# File lib/gist_updater/updater.rb, line 19
def update(content_class = Content)
  updated = []

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

  updated.compact
end

Private Instance Methods

update_by_gist(id, file_path, content_class) click to toggle source

Update a Gist file

@param id [String] A gist id @param file_path [String] A relative file path @param content_class [Class] A Class which has content duty @return (see GistUpdater::Content#update_if_need)

# File lib/gist_updater/updater.rb, line 41
def update_by_gist(id, file_path, content_class)
  content_class.new(
    user: user,
    access_token: access_token,
    gist_id: id,
    file_path: file_path
  ).update_if_need
end