em-http-request-webdav 0.0.1

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.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in em-http-request-webdav.gemspec
4
+ gemspec
@@ -0,0 +1,35 @@
1
+ Summary
2
+ =======
3
+ Simple wrapper for EM::HttpRequest.
4
+
5
+ Adds basic support for the following HTTP methods used by WebDAV-enabled
6
+ webservers:
7
+
8
+ PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, OPTIONS
9
+
10
+ Example
11
+ -------
12
+ EM.run do
13
+ http = EM::HttpRequest.new("http://some.davserver.foo/path").propfind :head => {"Depth": "1", "Authorization": ["harry", "b4lz3r"]}
14
+ http.callback {
15
+ puts http.response
16
+ }
17
+ end
18
+
19
+ Caveats
20
+ -------
21
+ The provided methods don't add support for any WebDAV fanciness. You are
22
+ required to provide additional functionality to list files, change
23
+ properties, move things around or travel backwards in time.
24
+
25
+ Warnings
26
+ --------
27
+ Do not use near eyes. If ingested, call you physician.
28
+
29
+ Errata
30
+ ------
31
+ Follow me @scottburton
32
+
33
+ License
34
+ -------
35
+ This software is available via the MIT License, and is copyright 2011 by Scott Burton.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "em-http-request-webdav/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "em-http-request-webdav"
7
+ s.version = EMHttpRequestWebdav::VERSION
8
+ s.authors = ["Scott Burton"]
9
+ s.email = ["scottburton11@gmail.com"]
10
+ s.homepage = "http://github.com/em-http-request-webdav"
11
+ s.summary = %q{Adds WebDAV-specific HTTP methods to em-http-request}
12
+ s.description = %q{Adds WebDAV-specific HTTP methods to em-http-request. Works with em-synchrony too.}
13
+
14
+ s.rubyforge_project = "em-http-request-webdav"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_runtime_dependency "eventmachine", ">=1.0.0.beta.1"
22
+ s.add_runtime_dependency "em-http-request", ">=1.0.0"
23
+ end
@@ -0,0 +1,3 @@
1
+ require "em-http-request-webdav/version"
2
+ require 'em-http-request-webdav/webdav_methods'
3
+ require 'em-http-request-webdav/webdav_methods_synchrony' if defined?(EventMachine::Synchrony)
@@ -0,0 +1,3 @@
1
+ module EMHttpRequestWebdav
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,7 @@
1
+ module EventMachine
2
+ class HttpConnection
3
+ [:propfind, :proppatch, :mkcol, :copy, :move, :lock, :unlock, :options].each do |meth|
4
+ send(:define_method, meth, proc {|options = {}, &blk| setup_request(meth, options, &blk) })
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ module EventMachine
2
+ class HttpConnection
3
+ [:propfind, :proppatch, :mkcol, :copy, :move, :lock, :unlock, :options].each do |meth|
4
+ class_eval %[
5
+ alias :a#{meth} :#{meth}
6
+ def #{meth}(options = {}, &blk)
7
+ f = Fiber.current
8
+ conn = setup_request(:#{meth}, options, &blk)
9
+ conn.callback { f.resume(conn) }
10
+ conn.errback { f.resume(conn) }
11
+ Fiber.yield
12
+ end
13
+ ]
14
+ end
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: em-http-request-webdav
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Scott Burton
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-10-01 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: eventmachine
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.0.beta.1
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: em-http-request
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.0.0
35
+ type: :runtime
36
+ version_requirements: *id002
37
+ description: Adds WebDAV-specific HTTP methods to em-http-request. Works with em-synchrony too.
38
+ email:
39
+ - scottburton11@gmail.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files: []
45
+
46
+ files:
47
+ - .gitignore
48
+ - Gemfile
49
+ - README.md
50
+ - Rakefile
51
+ - em-http-request-webdav.gemspec
52
+ - lib/em-http-request-webdav.rb
53
+ - lib/em-http-request-webdav/version.rb
54
+ - lib/em-http-request-webdav/webdav_methods.rb
55
+ - lib/em-http-request-webdav/webdav_methods_synchrony.rb
56
+ homepage: http://github.com/em-http-request-webdav
57
+ licenses: []
58
+
59
+ post_install_message:
60
+ rdoc_options: []
61
+
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: "0"
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: "0"
76
+ requirements: []
77
+
78
+ rubyforge_project: em-http-request-webdav
79
+ rubygems_version: 1.8.10
80
+ signing_key:
81
+ specification_version: 3
82
+ summary: Adds WebDAV-specific HTTP methods to em-http-request
83
+ test_files: []
84
+