Sha256: 1d18644d27360149206dcf14d87c789c1d9416f147174ba49d629d794f1f6102

Contents?: true

Size: 1.48 KB

Versions: 1

Compression:

Stored size: 1.48 KB

Contents

# encoding: utf-8

module Github
  class GitData::Blobs < API
    # Since blobs can be any arbitrary binary data, the input and responses for
    # the blob api takes an encoding parameter that can be either utf-8 or base64.
    # If your data cannot be losslessly sent as a UTF-8 string, you can base64 encode it.

    VALID_BLOB_PARAM_NAMES = %w[ content encoding ].freeze

    # Get a blob
    #
    # = Examples
    #  github = Github.new
    #  github.git_data.blobs.get 'user-name', 'repo-name', 'sha'
    #
    def get(user_name, repo_name, sha, params={})
      set :user => user_name, :repo => repo_name
      assert_presence_of user, repo, sha
      normalize! params

      get_request("/repos/#{user}/#{repo}/git/blobs/#{sha}", params)
    end
    alias :find :get

    # Create a blob
    #
    # = Inputs
    # * <tt>:content</tt> - String of content
    # * <tt>:encoding</tt> - String containing encoding<tt>utf-8</tt> or <tt>base64</tt>
    # = Examples
    #  github = Github.new
    #  github.git_data.blobs.create 'user-name', 'repo-name',
    #    "content" => "Content of the blob",
    #    "encoding" => "utf-8"
    #
    def create(user_name, repo_name, params={})
      set :user => user_name, :repo => repo_name
      assert_presence_of user, repo

      normalize! params
      filter! VALID_BLOB_PARAM_NAMES, params
      assert_required_keys(VALID_BLOB_PARAM_NAMES, params)

      post_request("/repos/#{user}/#{repo}/git/blobs", params)
    end

  end # GitData::Blobs
end # Github

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
github_api-0.9.0 lib/github_api/git_data/blobs.rb