fuselage 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/fuselage/api.rb CHANGED
@@ -90,6 +90,14 @@ module Fuselage
90
90
  resp
91
91
  end
92
92
 
93
+ def delete(path, params = {}, klass=nil)
94
+ resp = self.class.delete(path, { :query => auth_parameters, :body => params.to_json } )
95
+ raise NotFound, klass || self.class if resp.code.to_i == 404
96
+ raise APIError,
97
+ "GitHub returned status #{resp.code}" unless resp.code.to_i == 200 || resp.code.to_i == 201 || resp.code.to_i == 204
98
+ resp
99
+ end
100
+
93
101
  private
94
102
 
95
103
  def method_missing(method, *args)
data/lib/fuselage/base.rb CHANGED
@@ -22,6 +22,10 @@ module Fuselage
22
22
  response = Api.api.post(path, params, self)
23
23
  response.parsed_response
24
24
  end
25
+
26
+ def self.delete_method(path, params={})
27
+ Api.api.delete(path, params, self)
28
+ end
25
29
 
26
30
  end
27
31
  end
@@ -8,7 +8,7 @@ module Fuselage
8
8
  # ref must have 'heads/' in front of branch name
9
9
  #
10
10
  # examples:
11
- # Reference.find('cockpit', 'hads/master')
11
+ # Reference.find('cockpit', 'heads/master')
12
12
  def self.find(repo, ref, user=nil)
13
13
  raise AuthenticationRequired unless Api.authenticated
14
14
  user ||= User.current.login
@@ -37,6 +37,12 @@ module Fuselage
37
37
  user ||= User.current.login
38
38
  Reference.new(post("/repos/#{user}/#{repo}/git/refs/#{ref}", params))
39
39
  end
40
+
41
+ def self.delete(repo, ref)
42
+ raise AuthenticationRequired unless Api.authenticated
43
+ user ||= User.current.login
44
+ delete_method("/repos/#{user}/#{repo}/git/refs/#{ref}")
45
+ end
40
46
 
41
47
  def sha
42
48
  object['sha'] if object
data/lib/fuselage/user.rb CHANGED
@@ -8,7 +8,7 @@ module Fuselage
8
8
  :private_gist_count, :collaborators, :plan,
9
9
  :owned_private_repo_count, :total_private_repo_count
10
10
 
11
-
11
+ #TODO Send scopes
12
12
  def self.get_access_token(client_id, client_secret, code)
13
13
  responce = Api.api.post('https://github.com/login/oauth/access_token', {:client_id => client_id, :client_secret => client_secret, :code => code})
14
14
  if responce.body != 'error=bad_verification_code'
@@ -1,3 +1,3 @@
1
1
  module Fuselage
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/fuselage.rb CHANGED
@@ -12,7 +12,7 @@ require 'json'
12
12
  Dir[File.join(File.dirname(__FILE__), "fuselage/*.rb")].sort.each { |f| require f }
13
13
 
14
14
  # Include this into your app so you can access the child classes easier.
15
- # This is the root of all things Octopi.
15
+ # This is the root of all things Fulelage.
16
16
  module Fuselage
17
17
 
18
18
  def authenticated(token, &block)
@@ -33,6 +33,12 @@ class ReferenceTest < Test::Unit::TestCase
33
33
  end
34
34
  end
35
35
 
36
+ should "be able to delete a reference" do
37
+ auth do
38
+ assert_nil Reference.delete('tester', 'heads/test')
39
+ end
40
+ end
41
+
36
42
  end
37
43
 
38
44
  end
@@ -0,0 +1,8 @@
1
+ HTTP/1.1 204 No Content
2
+ Server: nginx/1.0.4
3
+ Date: Tue, 19 Jul 2011 20:28:06 GMT
4
+ Connection: keep-alive
5
+ Status: 204 No Content
6
+ X-RateLimit-Limit: 5000
7
+ X-RateLimit-Remaining: 4990
8
+
data/test/test_helper.rb CHANGED
@@ -95,6 +95,14 @@ def fake_everything
95
95
  FakeWeb.register_uri(:post, "https://#{api}/" + key + auth_query, :response => stub_file(value))
96
96
  end
97
97
 
98
+ secure_delete_fakes = {
99
+ "repos/coreycollins/tester/git/refs/heads/test?" => File.join("no-responce")
100
+ }
101
+
102
+ secure_delete_fakes.each do |key, value|
103
+ FakeWeb.register_uri(:delete, "https://#{api}/" + key + auth_query, :response => stub_file(value))
104
+ end
105
+
98
106
  end
99
107
 
100
108
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: fuselage
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.1
5
+ version: 0.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Corey Collins
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-18 00:00:00 Z
13
+ date: 2011-07-19 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -85,6 +85,7 @@ files:
85
85
  - test/stubs/blobs/tester/old
86
86
  - test/stubs/commits/tester/new
87
87
  - test/stubs/commits/tester/old
88
+ - test/stubs/no-responce
88
89
  - test/stubs/refs/tester/all
89
90
  - test/stubs/refs/tester/master
90
91
  - test/stubs/refs/tester/new