fuselage 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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