class Github::Gists

Constants

REQUIRED_GIST_INPUTS

Public Instance Methods

all(*args)
Alias for: list
comments(options={}, &block) click to toggle source

Access to Gists::Comments API

# File lib/github_api/gists.rb, line 17
def comments(options={}, &block)
  @comments ||= ApiFactory.new('Gists::Comments', current_options.merge(options), &block)
end
create(*args) click to toggle source

Create a gist

Inputs

<tt>:description</tt> - Optional string
<tt>:public</tt>  - Required boolean
<tt>:files</tt> - Required hash - Files that make up this gist.
   The key of which should be a required string filename and 
   the value another required hash with parameters:
      <tt>:content</tt> - Required string - File contents.

Examples

github = Github.new
github.gists.create
  'description' => 'the description for this gist',
  'public' => true,
  'files' => {
    'file1.txt' => {
       'content' => 'String file contents'
     }
  }
# File lib/github_api/gists.rb, line 101
def create(*args)
  arguments(args) do
    assert_required REQUIRED_GIST_INPUTS
  end

  post_request("/gists", arguments.params)
end
delete(*args) click to toggle source

Delete a gist

Examples

github = Github.new
github.gists.delete 'gist-id'
# File lib/github_api/gists.rb, line 199
def delete(*args)
  arguments(args, :required => [:gist_id])

  delete_request("/gists/#{gist_id}", arguments.params)
end
edit(*args) click to toggle source

Edit a gist

Inputs

<tt>:description</tt> - Optional string
<tt>:files</tt> - Optional hash - Files that make up this gist.
   The key of which should be a optional string filename and 
   the value another optional hash with parameters:
      <tt>:content</tt> - Updated string - Update file contents.
      <tt>:filename</tt> - Optional string - New name for this file.

Examples

github = Github.new :oauth_token => '...'
github.gists.edit 'gist-id',
  'description' => 'the description for this gist',
  'files' => {
    'file1.txt' => {
       'content' => 'Updated file contents'
     },
    'old_name.txt' => {
       'filename' => 'new_name.txt',
       'content' => 'modified contents'
     },
    'new_file.txt' => {
       'content' => 'a new file contents'
     },
     'delete_the_file.txt' => nil
  }
# File lib/github_api/gists.rb, line 137
def edit(*args)
  arguments(args, :required => [:gist_id])

  patch_request("/gists/#{gist_id}", arguments.params)
end
find(*args)
Alias for: get
fork(*args) click to toggle source

Fork a gist

Examples

github = Github.new
github.gists.fork 'gist-id'
# File lib/github_api/gists.rb, line 187
def fork(*args)
  arguments(args, :required => [:gist_id])

  post_request("/gists/#{gist_id}/fork", arguments.params)
end
get(*args) click to toggle source

Get a single gist

Examples

github = Github.new
github.gists.get 'gist-id'
# File lib/github_api/gists.rb, line 73
def get(*args)
  arguments(args, :required => [:gist_id])

  get_request("/gists/#{gist_id}", arguments.params)
end
Also aliased as: find
list(*args) { |el| ... } click to toggle source

List a user's gists.

Examples

github = Github.new
github.gists.list user: 'user-name'

List the authenticated user’s gists or if called anonymously, this will returns all public gists

Examples

github = Github.new :oauth_token => '...'
github.gists.list

List all public gists

github = Github.new
github.gists.list :public
# File lib/github_api/gists.rb, line 39
def list(*args)
  params = arguments(args).params

  response = if (user = params.delete('user'))
    get_request("/users/#{user}/gists", params)
  elsif args.map(&:to_s).include?('public')
    get_request("/gists/public", params)
  else
    get_request("/gists", params)
  end
  return response unless block_given?
  response.each { |el| yield el }
end
Also aliased as: all
star(*args) click to toggle source

Star a gist

Examples

github = Github.new
github.gists.star 'gist-id'
# File lib/github_api/gists.rb, line 149
def star(*args)
  arguments(args, :required => [:gist_id])

  put_request("/gists/#{gist_id}/star", arguments.params)
end
starred(*args) { |el| ... } click to toggle source

List the authenticated user's starred gists

Examples

github = Github.new :oauth_token => '...'
github.gists.starred
# File lib/github_api/gists.rb, line 60
def starred(*args)
  arguments(args)
  response = get_request("/gists/starred", arguments.params)
  return response unless block_given?
  response.each { |el| yield el }
end
starred?(*args) click to toggle source

Check if a gist is starred

Examples

github = Github.new
github.gists.starred? 'gist-id'
# File lib/github_api/gists.rb, line 173
def starred?(*args)
  arguments(args, :required => [:gist_id])
  get_request("/gists/#{gist_id}/star", arguments.params)
  true
rescue Github::Error::NotFound
  false
end
unstar(*args) click to toggle source

Unstar a gist

Examples

github = Github.new
github.gists.unstar 'gist-id'
# File lib/github_api/gists.rb, line 161
def unstar(*args)
  arguments(args, :required => [:gist_id])

  delete_request("/gists/#{gist_id}/star", arguments.params)
end