git_hub 0.2.0 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,11 +1,11 @@
1
1
  = git_hub
2
- by:: Arvicco
3
- url:: http://github.com/arvicco/git_hub
2
+ by: Arvicco
3
+ url: http://github.com/arvicco/git_hub
4
4
 
5
5
  == DESCRIPTION:
6
6
 
7
7
  git_hub is a library that wraps github API and exposes simple interface for
8
- finding, creating and managing github repositories and other resources...
8
+ finding, creating and managing github repositories and other resources.
9
9
 
10
10
  == FEATURES/PROBLEMS:
11
11
 
@@ -15,31 +15,32 @@ Contributors always welcome!
15
15
 
16
16
  == SYNOPSIS:
17
17
 
18
- require 'git_hub'
19
- include GitHub
20
-
21
- # Find existing repos:
22
- repo = Repo.find(:user=>user_name, :repo=>repo_name)
23
- repos = Repo.find(:user=>user_name)
24
- search_repos = Repo.find(:query=>['search','terms'])
25
-
26
- # Retrieve tags, branches and commits for a repo:
27
- puts repo.tags['v0.1.0']
28
- puts repo.branches['master']
29
- repo.commits.each {|commit| p commit.author}
30
-
31
- # Retrieve info for a specific commit:
32
- commits = Commit.find(:user=>user_name, :repo=>repo_name, :branch=>'master')
33
- commits = Commit.find(:user=>user_name, :repo=>repo_name, :branch=>'master', :path=>'README.rdoc')
34
- commit = Commit.find(:user=>user_name, :repo=>repo_name, :sha=>'commit_sha')
35
- # or, if repo is already retrieved:
36
- commit = repo.commits.last
37
- commit = repo.tags['v0.1.0'] #TODO - now returns only sha, not Commit
38
-
39
- # Create new repo or delete existing repo (need to authenticate with your github credentials first)
40
- Api.auth = {:user=>user_name, :token=>token}
41
- new_repo = Repo.create(:name=>repo_name, :desc=>'Description', :homepage=>'http://your_page.org', :private=> false)
42
- new_repo.delete
18
+ require 'git_hub'
19
+ include GitHub
20
+
21
+ Find existing repos:
22
+ repo = Repo.find(:user=>user_name, :repo=>repo_name)
23
+ repos = Repo.find(:user=>user_name)
24
+ search_repos = Repo.find(:query=>['search','terms'])
25
+
26
+ Retrieve tags, branches and commits for a repo:
27
+ puts repo.tags['v0.1.0'].committer
28
+ puts repo.branches['master'].committed_date
29
+ repo.commits.each {|commit| p commit.author}
30
+
31
+ Retrieve info for a specific commit:
32
+ commits = Commit.find(:user=>user_name, :repo=>repo_name, :branch=>'master')
33
+ commits = Commit.find(:user=>user_name, :repo=>repo_name, :branch=>'master', :path=>'README.rdoc')
34
+ commit = Commit.find(:user=>user_name, :repo=>repo_name, :sha=>'commit_sha')
35
+ # or, if repo is already retrieved:
36
+ commit = repo.commits.last
37
+ commit = repo.tags['v0.1.0']
38
+ commit = repo.branches['master'] # returns most recent commit for a branch
39
+
40
+ Create new repo or delete existing repo (need to authenticate with your github credentials first)
41
+ Api.auth = {:user=>user_name, :token=>token}
42
+ new_repo = Repo.create(:name=>repo_name, :desc=>'Description', :homepage=>'http://your_page.org', :private=> false)
43
+ new_repo.delete
43
44
 
44
45
  == REQUIREMENTS:
45
46
 
@@ -47,7 +48,7 @@ new_repo.delete
47
48
 
48
49
  == INSTALL:
49
50
 
50
- $ sudo gem install git_hub
51
+ $ sudo gem install git_hub
51
52
 
52
53
  == LICENSE:
53
54
 
data/Rakefile CHANGED
@@ -51,7 +51,7 @@ Rake::RDocTask.new do |rdoc|
51
51
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
52
52
 
53
53
  rdoc.rdoc_dir = 'rdoc'
54
- rdoc.title = "zemax #{version}"
54
+ rdoc.title = "git_hub #{version}"
55
55
  rdoc.rdoc_files.include('README*')
56
56
  rdoc.rdoc_files.include('lib/**/*.rb')
57
57
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.7
File without changes
@@ -1,4 +1,4 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
2
- require 'zemax'
2
+ require 'git_hub'
3
3
 
4
4
  require 'spec/expectations'
data/git_hub.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{git_hub}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["arvicco"]
12
- s.date = %q{2010-01-11}
12
+ s.date = %q{2010-01-12}
13
13
  s.default_executable = %q{git_hub}
14
14
  s.description = %q{Simple interface to github API}
15
15
  s.email = %q{arvitallian@gmail.com}
@@ -24,9 +24,9 @@ Gem::Specification.new do |s|
24
24
  "Rakefile",
25
25
  "VERSION",
26
26
  "bin/git_hub",
27
- "features/step_definitions/zemax_steps.rb",
27
+ "features/git_hub.feature",
28
+ "features/step_definitions/git_hub_steps.rb",
28
29
  "features/support/env.rb",
29
- "features/zemax.feature",
30
30
  "git_hub.gemspec",
31
31
  "lib/git_hub.rb",
32
32
  "lib/git_hub/api.rb",
@@ -36,11 +36,13 @@ Gem::Specification.new do |s|
36
36
  "rdoc/classes/GitHub.html",
37
37
  "rdoc/classes/GitHub/Api.html",
38
38
  "rdoc/classes/GitHub/Base.html",
39
+ "rdoc/classes/GitHub/Commit.html",
39
40
  "rdoc/classes/GitHub/Repo.html",
40
41
  "rdoc/created.rid",
41
42
  "rdoc/files/README_rdoc.html",
42
43
  "rdoc/files/lib/git_hub/api_rb.html",
43
44
  "rdoc/files/lib/git_hub/base_rb.html",
45
+ "rdoc/files/lib/git_hub/commit_rb.html",
44
46
  "rdoc/files/lib/git_hub/repo_rb.html",
45
47
  "rdoc/files/lib/git_hub_rb.html",
46
48
  "rdoc/fr_class_index.html",
@@ -52,12 +54,15 @@ Gem::Specification.new do |s|
52
54
  "spec/git_hub/base_spec.rb",
53
55
  "spec/git_hub/commit_spec.rb",
54
56
  "spec/git_hub/repo_spec.rb",
57
+ "spec/git_hub/user_spec.rb",
55
58
  "spec/spec.opts",
56
59
  "spec/spec_helper.rb",
57
60
  "spec/stubs/api_route_error.res",
58
61
  "spec/stubs/commits/list/joe007/fine_repo/master.res",
59
62
  "spec/stubs/commits/list/joe007/fine_repo/master/README.res",
63
+ "spec/stubs/commits/show/joe007/fine_repo/3a70f86293b719f193f778a8710b1f83f2f7bf38.res",
60
64
  "spec/stubs/commits/show/joe007/fine_repo/5e61f0687c40ca48214d09dc7ae2d0d0d8fbfeb8.res",
65
+ "spec/stubs/commits/show/joe007/fine_repo/f7f5dddaa37deacc83f1f56876e2b135389d03ab.res",
61
66
  "spec/stubs/repos/create.1.res",
62
67
  "spec/stubs/repos/create.2.res",
63
68
  "spec/stubs/repos/create.3.res",
@@ -82,6 +87,7 @@ Gem::Specification.new do |s|
82
87
  "spec/git_hub/base_spec.rb",
83
88
  "spec/git_hub/commit_spec.rb",
84
89
  "spec/git_hub/repo_spec.rb",
90
+ "spec/git_hub/user_spec.rb",
85
91
  "spec/spec_helper.rb"
86
92
  ]
87
93
 
data/lib/git_hub/base.rb CHANGED
@@ -4,10 +4,10 @@ module GitHub
4
4
  class Base
5
5
 
6
6
  def initialize(attributes={})
7
- update_attributes attributes
7
+ set_attributes attributes
8
8
  end
9
9
 
10
- def update_attributes attributes
10
+ def set_attributes attributes
11
11
  attributes.each do |key, value|
12
12
  raise "No attr_accessor for #{key} on #{self.class}" unless respond_to?("#{key}=")
13
13
  self.send("#{key.to_s}=", value)
@@ -16,9 +16,9 @@ module GitHub
16
16
 
17
17
  class << self
18
18
  def request verb, uri, params = {}
19
- path = uri[0] == '/' ? base_uri+uri : uri
20
- #p "request: #{verb} #{path} #{params}"
21
- res = api.request verb, path, params
19
+ full_uri = uri[0] == '/' ? base_uri+uri : uri
20
+ #p "request: #{verb} #{full_uri} #{params}"
21
+ res = api.request verb, full_uri, params
22
22
  YAML::load(res.body) if res.respond_to?(:body)
23
23
  #p "response: #{res}: #{res.code}: #{res.http_version}: #{res.message}", res.body
24
24
  end
@@ -42,34 +42,48 @@ module GitHub
42
42
  end
43
43
 
44
44
  def base_uri
45
- @base_uri || ""
45
+ @base_uri || ''
46
46
  end
47
47
 
48
48
  private
49
49
 
50
- def normalize opts
51
- opts[:user] ||= opts[:owner] || opts[:username] || opts[:login] || api.auth['login']
52
- opts[:repo] ||= opts[:repository] || opts[:name] || opts[:project]
53
- opts[:sha] ||= opts[:hash] || opts[:object_id] || opts[:id]
54
- opts[:description] ||= opts[:descr] || opts[:desc]
55
- opts[:query] ||= opts[:search]
56
- opts[:branch] ||= 'master'
57
- opts[:public] ||= !opts[:private] unless opts[:public] = false # defaults to true
50
+ # extracts arguments described by *args from an opts Hash
51
+ def extract(opts, *args)
52
+ raise "Expected options Hash, got #{opts}" unless opts.kind_of? Hash
53
+ args.map do |arg|
54
+ opts[arg] || opts[arg.to_sym] || case arg.to_sym
55
+ when :user
56
+ opts[:owner] || opts[:username] || opts[:login] || api.auth['login']
57
+ when :repo
58
+ opts[:repository] || opts[:name] || opts[:project]
59
+ when :sha
60
+ opts[:hash] || opts[:object_id] || opts[:id]
61
+ when :desc
62
+ opts[:description] || opts[:descr]
63
+ when :query
64
+ opts[:search]
65
+ when :branch
66
+ 'master'
67
+ when :public
68
+ !opts[:private] unless opts[:public] == false
69
+ else
70
+ nil
71
+ end
72
+ end
58
73
  end
59
74
 
60
- def instantiate hash
61
- if res = contains(hash, @singulars)
62
- new res
63
- elsif res = contains(hash, @plurals)
64
- res.map {|r| new r}
75
+ # tries to single instance or an Array of instances for a given Hash of
76
+ # attributes Hash(es), returns original Hash if unsuccessful
77
+ def instantiate hash, extra_inits={}
78
+ raise "Expected result Hash, got #{hash}" unless hash.kind_of? Hash
79
+ if init = hash.values_at(*@singulars).compact.first
80
+ new init.merge extra_inits
81
+ elsif inits = hash.values_at(*@plurals).compact.first
82
+ inits.map {|init| new init.merge extra_inits}
65
83
  else
66
84
  hash
67
85
  end
68
86
  end
69
-
70
- def contains hash, keys
71
- keys.inject(nil) {|memo, key| memo ||= hash[key.to_s]}
72
- end
73
87
  end
74
88
 
75
89
  def get uri, params ={}
@@ -1,13 +1,14 @@
1
1
  module GitHub
2
2
  class Commit < Base
3
3
 
4
- set_resource 'http://github.com/api/v2/yaml/commits', 'commit', ['commits', 'tags', 'branches']
4
+ set_resource 'http://github.com/api/v2/yaml/commits', 'commit', 'commits'
5
5
 
6
6
  attr_accessor :id, :author, :committer, :parents, :url, :committed_date, :authored_date, :message, :tree,
7
- # :user, :name, :sha, :repo,
8
- # retrieving commit for a specific sha - "/show/#{opts[:user]}/#{opts[:repo]}/#{opts[:sha]}"
9
- :added, :modified, :removed
10
-
7
+ # retrieving commit for a specific sha - "/show/:user/:repo/:sha" adds:
8
+ :added, :modified, :removed,
9
+ # extra attributes:
10
+ :user, :repo
11
+
11
12
  def initialize opts
12
13
  super
13
14
  raise "Unable to initialize #{self.class} without id(sha)" unless sha
@@ -22,23 +23,25 @@ module GitHub
22
23
  # Find commits, accepts Hash with keys:
23
24
  # :user/:owner/:username:: Github user name
24
25
  # :repo/:repository/:project:: Repo name
25
- # :branch:: Repo branch - default 'master'
26
- # :path:: For specific path
27
- # :sha/:hash/:id:: Unique commit id (sha)
26
+ # :branch:: Only commits for specific branch - default 'master'
27
+ # :path:: Only commits for specific path
28
+ # :sha/:id:: Only one commit with specific id (sha)
28
29
  def find(opts)
29
- normalize opts
30
- raise "Unable to find Commits for #{opts}" unless opts[:user] && opts[:repo]
31
- path = if opts[:sha]
32
- "/show/#{opts[:user]}/#{opts[:repo]}/#{opts[:sha]}"
33
- elsif opts[:path]
34
- "/list/#{opts[:user]}/#{opts[:repo]}/#{opts[:branch]}/#{opts[:path]}"
30
+ user, repo, branch, sha, path = extract opts, :user, :repo, :branch, :sha, :path
31
+ repo_given = branch && user && repo
32
+ path = if sha && repo_given
33
+ "/show/#{user}/#{repo}/#{sha}"
34
+ elsif path && repo_given
35
+ "/list/#{user}/#{repo}/#{branch}/#{path}"
36
+ elsif repo_given
37
+ "/list/#{user}/#{repo}/#{branch}"
35
38
  else
36
- "/list/#{opts[:user]}/#{opts[:repo]}/#{opts[:branch]}"
39
+ raise "Unable to find #{self.class}(s) for #{opts}"
37
40
  end
38
- instantiate get(path)
41
+ instantiate get(path), :user=>user, :repo=>repo
39
42
  end
40
43
 
41
- #alias show find
44
+ alias show find
42
45
  end
43
46
  end
44
47
 
data/lib/git_hub/repo.rb CHANGED
@@ -26,26 +26,26 @@ module GitHub
26
26
 
27
27
  set_resource 'http://github.com/api/v2/yaml/repos', 'repository', 'repositories'
28
28
 
29
- attr_accessor :name, :owner, :description, :url, :homepage, :open_issues, :watchers, :forks, :fork, :private,
29
+ attr_accessor :name, :user, :description, :url, :homepage, :open_issues, :watchers, :forks, :fork, :private,
30
30
  # additional attributes from search:
31
31
  :id, :type, :size, :language, :created, :pushed, :score #?
32
32
 
33
33
  def initialize options
34
34
  super
35
- raise "Unable to initialize #{self.class} without name" unless user && name
36
- @url ||= "http://github.com/#{user}/#{name}"
35
+ raise "Unable to initialize #{self.class} without user and name" unless @user && @name
36
+ @url ||= "http://github.com/#{@user}/#{@name}"
37
37
  @type ||= "repo"
38
- end
38
+ end
39
39
 
40
40
  alias followers= watchers=
41
41
  alias followers watchers
42
- alias username= owner=
43
- alias username owner
44
- alias user= owner=
45
- alias user owner
42
+ alias username= user=
43
+ alias username user
44
+ alias owner= user=
45
+ alias owner user
46
46
 
47
47
  def fork?;
48
- !!self.fork
48
+ !!fork
49
49
  end
50
50
 
51
51
  def private?;
@@ -53,22 +53,24 @@ module GitHub
53
53
  end
54
54
 
55
55
  def clone_url
56
- url = private? || api.auth['login'] == self.user ? "git@github.com:" : "git://github.com/"
57
- url += "#{self.user}/#{self.name}.git"
56
+ url = private? || api.auth['login'] == user ? "git@github.com:" : "git://github.com/"
57
+ url += "#{@user}/#{@name}.git"
58
58
  end
59
59
 
60
60
  def tags
61
- result = get "/show/#{self.user}/#{self.name}/tags"
62
- result['tags'] || result
61
+ hash_of_commits(:tags)
63
62
  end
64
63
 
65
64
  def branches
66
- result = get "/show/#{self.user}/#{self.name}/branches"
67
- result['branches'] || result
65
+ hash_of_commits(:branches)
68
66
  end
69
67
 
68
+ # Returns commits for this repo, accepts options:
69
+ # :branch:: Only commits for specific branch - default 'master'
70
+ # :path:: Only commits for specific path
71
+ # :sha/:id:: Only one commit with specific id (sha)
70
72
  def commits opts = {}
71
- Commit.find opts.merge(:user => self.user, :repo => self.name)
73
+ Commit.find opts.merge(:user => @user, :repo => @name)
72
74
  end
73
75
 
74
76
  class << self # Repo class methods
@@ -78,13 +80,13 @@ module GitHub
78
80
  # :repo/:repository/:project/:name:: Repo name
79
81
  # :query/:search:: Array of search terms as Strings or Symbols
80
82
  def find(opts)
81
- normalize opts
82
- path = if opts[:query]
83
- "/search/#{opts[:query].map(&:to_s).join('+')}"
84
- elsif opts[:user] && opts[:repo]
85
- "/show/#{opts[:user]}/#{opts[:repo]}"
86
- elsif opts[:user]
87
- "/show/#{opts[:user]}"
83
+ user, repo, query = extract opts, :user, :repo, :query
84
+ path = if query
85
+ "/search/#{query.map(&:to_s).join('+')}"
86
+ elsif user && repo
87
+ "/show/#{user}/#{repo}"
88
+ elsif user
89
+ "/show/#{user}"
88
90
  else
89
91
  raise "Unable to find #{self.class}(s) for #{opts}"
90
92
  end
@@ -96,23 +98,23 @@ module GitHub
96
98
 
97
99
  # Create new github repo, accepts Hash with :repo, :description, :homepage, :public/:private
98
100
  def create(opts)
99
- normalize opts
101
+ repo, desc, homepage, public = extract opts, :repo, :desc, :homepage, :public
100
102
  api.ensure_auth opts
101
- instantiate post("/create", 'name' => opts[:repo], 'description' => opts[:description],
102
- 'homepage' => opts[:homepage], 'public' => (opts[:public] ? 1 : 0))
103
+ instantiate post("/create", 'name' => repo, 'description' => desc,
104
+ 'homepage' => homepage, 'public' => (public ? 1 : 0))
103
105
  end
104
- end
106
+ end
105
107
 
106
108
  # Delete github repo, accepts optional Hash with authentication
107
109
  def delete(opts = {})
108
110
  api.ensure_auth opts
109
- result = post("/delete/#{name}")
110
- if result['delete_token']
111
- post("/delete/#{name}", 'delete_token' => result['delete_token'])
111
+ result = post("/delete/#{@name}")
112
+ if token = result['delete_token']
113
+ post("/delete/#{@name}", 'delete_token' => token)
112
114
  else
113
115
  result
114
116
  end
115
- end
117
+ end
116
118
 
117
119
  def add_service
118
120
  end
@@ -120,12 +122,30 @@ module GitHub
120
122
  def remove_service
121
123
  end
122
124
 
125
+ def collaborators
126
+ 'repos/show/:user/:repo/collaborators'
127
+ end
128
+
123
129
  def add_collaborator
124
130
  end
125
131
 
126
132
  def remove_collaborator
127
133
  end
128
134
 
135
+ private
136
+
137
+ def hash_of_commits(resource)
138
+ result = get "/show/#{@user}/#{@name}/#{resource}"
139
+ if tagged_shas = result[resource.to_s]
140
+ tagged_commits = tagged_shas.map do |tag,sha|
141
+ [tag, Commit.find(:user=>@user, :repo=>@name, :sha=>sha)]
142
+ end
143
+ Hash[*tagged_commits.flatten]
144
+ else
145
+ result
146
+ end
147
+ end
148
+
129
149
  # repos/show/:user/:repo/tags
130
150
  # repos/show/:user/:repo/branches
131
151
  # repos/show/:user/:repo/languages
data/lib/git_hub.rb CHANGED
@@ -2,17 +2,10 @@
2
2
  module GitHub
3
3
 
4
4
  # :stopdoc:
5
- VERSION = '0.0.1'
6
5
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
7
6
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
8
7
  # :startdoc:
9
8
 
10
- # Returns the version string for the library.
11
- #
12
- def self.version
13
- VERSION
14
- end
15
-
16
9
  # Returns the library path for the module. If any arguments are given,
17
10
  # they will be joined to the end of the libray path using
18
11
  # <tt>File.join</tt>.
@@ -36,8 +29,7 @@ module GitHub
36
29
  #
37
30
  def self.require_all_libs_relative_to( fname, dir = nil )
38
31
  dir ||= ::File.basename(fname, '.*')
39
- search_me = ::File.expand_path(
40
- ::File.join(::File.dirname(fname), dir, '**', '*.rb'))
32
+ search_me = ::File.expand_path(::File.join(::File.dirname(fname), dir, '**', '*.rb'))
41
33
 
42
34
  Dir.glob(search_me).sort.each {|rb| require rb}
43
35
  end
@@ -45,4 +37,3 @@ module GitHub
45
37
  end # module GitHub
46
38
 
47
39
  GitHub.require_all_libs_relative_to(__FILE__)
48
-
@@ -2,7 +2,7 @@
2
2
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
4
  <head>
5
- <title>Class: GitHub::Api [zemax 0.1.0
5
+ <title>Class: GitHub::Api [git_hub 0.2.7
6
6
  ]</title>
7
7
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
8
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
@@ -92,12 +92,14 @@
92
92
 
93
93
  <div class="name-list">
94
94
 
95
- <a href="#M000005">auth</a>&nbsp;&nbsp;
95
+ <a href="#M000004">auth</a>&nbsp;&nbsp;
96
96
 
97
- <a href="#M000006">authenticated?</a>&nbsp;&nbsp;
97
+ <a href="#M000005">authenticated?</a>&nbsp;&nbsp;
98
98
 
99
99
  <a href="#M000007">classify</a>&nbsp;&nbsp;
100
100
 
101
+ <a href="#M000006">ensure_auth</a>&nbsp;&nbsp;
102
+
101
103
  <a href="#M000008">request</a>&nbsp;&nbsp;
102
104
 
103
105
  </div>
@@ -147,12 +149,12 @@
147
149
  <h3 class="section-bar">Public Instance methods</h3>
148
150
 
149
151
 
150
- <div id="method-M000005" class="method-detail">
151
- <a name="M000005"></a>
152
+ <div id="method-M000004" class="method-detail">
153
+ <a name="M000004"></a>
152
154
 
153
155
  <div class="method-heading">
154
156
 
155
- <a href="#M000005" class="method-signature">
157
+ <a href="#M000004" class="method-signature">
156
158
 
157
159
  <span class="method-name">auth</span><span class="method-args">()</span>
158
160
 
@@ -163,8 +165,8 @@
163
165
  <div class="method-description">
164
166
 
165
167
  <p><a class="source-toggle" href="#"
166
- onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
167
- <div class="method-source-code" id="M000005-source">
168
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
169
+ <div class="method-source-code" id="M000004-source">
168
170
  <pre>
169
171
  <span class="ruby-comment cmt"># File lib/git_hub/api.rb, line 10</span>
170
172
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">auth</span>
@@ -177,12 +179,12 @@
177
179
  </div>
178
180
 
179
181
 
180
- <div id="method-M000006" class="method-detail">
181
- <a name="M000006"></a>
182
+ <div id="method-M000005" class="method-detail">
183
+ <a name="M000005"></a>
182
184
 
183
185
  <div class="method-heading">
184
186
 
185
- <a href="#M000006" class="method-signature">
187
+ <a href="#M000005" class="method-signature">
186
188
 
187
189
  <span class="method-name">authenticated?</span><span class="method-args">()</span>
188
190
 
@@ -193,8 +195,8 @@
193
195
  <div class="method-description">
194
196
 
195
197
  <p><a class="source-toggle" href="#"
196
- onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
197
- <div class="method-source-code" id="M000006-source">
198
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
199
+ <div class="method-source-code" id="M000005-source">
198
200
  <pre>
199
201
  <span class="ruby-comment cmt"># File lib/git_hub/api.rb, line 14</span>
200
202
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authenticated?</span>
@@ -231,7 +233,7 @@ found
231
233
  onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
232
234
  <div class="method-source-code" id="M000007-source">
233
235
  <pre>
234
- <span class="ruby-comment cmt"># File lib/git_hub/api.rb, line 19</span>
236
+ <span class="ruby-comment cmt"># File lib/git_hub/api.rb, line 25</span>
235
237
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">classify</span> <span class="ruby-identifier">name</span>
236
238
  <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;::&quot;</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Kernel</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">klass</span>, <span class="ruby-identifier">const_name</span><span class="ruby-operator">|</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">const_get</span> <span class="ruby-identifier">const_name</span> }
237
239
  <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Class</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">klass</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
@@ -245,6 +247,38 @@ found
245
247
  </div>
246
248
 
247
249
 
250
+ <div id="method-M000006" class="method-detail">
251
+ <a name="M000006"></a>
252
+
253
+ <div class="method-heading">
254
+
255
+ <a href="#M000006" class="method-signature">
256
+
257
+ <span class="method-name">ensure_auth</span><span class="method-args">(opts ={})</span>
258
+
259
+ </a>
260
+
261
+ </div>
262
+
263
+ <div class="method-description">
264
+
265
+ <p><a class="source-toggle" href="#"
266
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
267
+ <div class="method-source-code" id="M000006-source">
268
+ <pre>
269
+ <span class="ruby-comment cmt"># File lib/git_hub/api.rb, line 18</span>
270
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ensure_auth</span> <span class="ruby-identifier">opts</span> ={}
271
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">authenticated?</span>
272
+ <span class="ruby-ivar">@auth</span> = {<span class="ruby-value str">'login'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:login</span>], <span class="ruby-value str">'token'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:token</span>]}
273
+ <span class="ruby-identifier">raise</span>(<span class="ruby-value str">&quot;Authentication failed&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">authenticated?</span>
274
+ <span class="ruby-keyword kw">end</span>
275
+ </pre>
276
+ </div>
277
+
278
+ </div>
279
+ </div>
280
+
281
+
248
282
  <div id="method-M000008" class="method-detail">
249
283
  <a name="M000008"></a>
250
284
 
@@ -264,7 +298,7 @@ found
264
298
  onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
265
299
  <div class="method-source-code" id="M000008-source">
266
300
  <pre>
267
- <span class="ruby-comment cmt"># File lib/git_hub/api.rb, line 26</span>
301
+ <span class="ruby-comment cmt"># File lib/git_hub/api.rb, line 32</span>
268
302
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span> <span class="ruby-identifier">verb</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">params</span> = {}
269
303
  <span class="ruby-identifier">method</span> = <span class="ruby-identifier">classify</span>(<span class="ruby-value str">'Net::HTTP::'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">verb</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">capitalize</span>)
270
304
  <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span> <span class="ruby-identifier">url</span>