class Gistim::Create

Attributes

alias_name[R]
url[R]

Public Class Methods

new(description: nil, alias_name: nil) click to toggle source
# File lib/gistim/create.rb, line 3
def initialize(description: nil, alias_name: nil)
  @alias_name = alias_name
  @description = description
end

Public Instance Methods

description() click to toggle source
# File lib/gistim/create.rb, line 25
def description
  @description ||= '# Hello Gist!'
end
directory() click to toggle source
# File lib/gistim/create.rb, line 29
def directory
  "#{Gistim::Command.home}/#{name}"
end
hash() click to toggle source
# File lib/gistim/create.rb, line 21
def hash
  url.nil? ? nil : url.chomp.gsub(/\A.+\//, '')
end
implement() click to toggle source
# File lib/gistim/create.rb, line 10
def implement
  File.write(initialize_file_path, description)

  @url = create_empty
  clone

  File.delete(initialize_file_path)

  self
end
name() click to toggle source
# File lib/gistim/create.rb, line 33
def name
  alias_name || hash
end

Private Instance Methods

clone() click to toggle source
# File lib/gistim/create.rb, line 39
def clone
  Clone.clone(url, clone_directory: directory)
end
create_empty() click to toggle source
# File lib/gistim/create.rb, line 43
def create_empty
  # Execute `$ gist [some_file]` command and get gist url result
  url = `gist #{initialize_file_path}`.chomp

  url
end
initialize_file_path() click to toggle source
# File lib/gistim/create.rb, line 50
def initialize_file_path
  'GIST.md'
end