rpaste 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,6 +1,19 @@
1
+ == 0.1.0 / 2008-01-15
2
+
3
+ * Renamed RPaste.http_agent to RPaste.web_agent.
4
+ * Added RPaste.proxy to provide proxy settings for RPaste.open_uri and
5
+ RPaste.web_agent.
6
+ * Renamed RPaste.open to RPaste.open_uri.
7
+ * Added RPaste.open_page.
8
+ * Added ResultSet#select, which returns a new ResultSet.
9
+ * Added ResultSet#names, ResultSet#authors, NoPaste::ResultSet#dates,
10
+ NoPaste::ResultSet#syntaxes and NoPaste::ResultSet#descriptions.
11
+ * Fixed a file-requirement typo in lib/rpaste/nopaste/result_set.rb.
12
+ * Various typo fixes.
13
+
1
14
  == 0.0.9 / 2008-01-09
2
15
 
3
- * Initial release.
4
- * Supports NoPaste paste board.
5
- * Semi-support for PasteBin.
16
+ * Initial release.
17
+ * Supports NoPaste paste board.
18
+ * Semi-support for PasteBin.
6
19
 
data/Manifest.txt CHANGED
@@ -2,6 +2,7 @@ History.txt
2
2
  LICENSE.txt
3
3
  Manifest.txt
4
4
  README.txt
5
+ TODO.txt
5
6
  Rakefile
6
7
  lib/rpaste.rb
7
8
  lib/rpaste/version.rb
data/README.txt CHANGED
@@ -9,14 +9,15 @@ RPaste supports NoPaste and PasteBin.
9
9
 
10
10
  == FEATURES/PROBLEMS:
11
11
 
12
- * Supports posting and retrieving from NoPaste.
12
+ * Supports posting and retrieving pastes from NoPaste.
13
13
  * Supports retrieving from PasteBin.
14
14
  * Provides HTTP access with custom User-Agent strings.
15
+ * Provides proxy settings for HTTP access.
15
16
 
16
17
  == REQUIREMENTS:
17
18
 
18
19
  * Hpricot
19
- * Mechanize
20
+ * WWW::Mechanize
20
21
 
21
22
  == INSTALL:
22
23
 
data/TODO.txt ADDED
@@ -0,0 +1,4 @@
1
+ == 0.1.0
2
+
3
+ * Add more examples to README.txt.
4
+
@@ -30,11 +30,10 @@ module RPaste
30
30
 
31
31
  #
32
32
  # Returns the NoPaste Paste object associated with the Metadata
33
- # object. If _opts_ are given they will be used in accessing
34
- # the NoPaste website.
33
+ # object.
35
34
  #
36
- def paste(opts={})
37
- Paste.paste(name,opts)
35
+ def paste
36
+ Paste.paste(name)
38
37
  end
39
38
 
40
39
  #
@@ -6,48 +6,60 @@ require 'hpricot'
6
6
 
7
7
  module RPaste
8
8
  module NoPaste
9
+ # The NoPaste post URL
10
+ POST_URL = 'http://rafb.net/paste/index.html'
11
+
9
12
  #
10
13
  # Returns the list of all recent pastes on NoPaste. See Recent.get.
11
14
  #
12
- def NoPaste.recent(opts={},&block)
13
- Recent.get(opts,&block)
15
+ def NoPaste.recent(&block)
16
+ Recent.get(&block)
14
17
  end
15
18
 
16
19
  #
17
20
  # Retrieves the NoPaste Paste object associated with the specified
18
21
  # _name_. See Paste.paste.
19
22
  #
20
- def NoPaste.paste(name,opts={})
21
- Paste.paste(name,opts)
23
+ def NoPaste.paste(name)
24
+ Paste.paste(name)
22
25
  end
23
26
 
24
27
  #
25
- # Submits a new paste to NoPaste. If a _block_ is given, then it will be
26
- # passed the Paste object before it is submitted to NoPaste.
28
+ # Submits a new paste to NoPaste with the specified _options_.
29
+ # If a _block_ is given, then it will be passed the Paste object
30
+ # before it is submitted to NoPaste.
31
+ #
32
+ # _options_ may contain the following keys:
33
+ # <tt>:author</tt>:: The author of the paste.
34
+ # <tt>:syntax</tt>:: The syntax of the paste.
35
+ # <tt>:description</tt>:: The description for the paste.
36
+ # <tt>:text</tt>:: The text to paste.
37
+ # <tt>:convert_tabs</tt>:: Indicates that tabs will be converted to
38
+ # spaces.
27
39
  #
28
40
  # NoPaste.post(:author => 'briefcase man') do |paste|
29
41
  # paste.description = 'todays key'
30
42
  # paste.text = 'is brought to you by the letter S, for symmetric'
31
43
  # end
32
44
  #
33
- def NoPaste.post(opts={},&block)
34
- author = opts[:author]
35
- syntax = opts[:syntax]
36
- description = opts[:description]
37
- text = opts[:text]
45
+ def NoPaste.post(options={},&block)
46
+ author = options[:author]
47
+ syntax = options[:syntax]
48
+ description = options[:description]
49
+ text = options[:text]
38
50
 
39
51
  paste = Paste.new(nil,author,nil,syntax,description,text,&block)
40
52
 
41
- agent = RPaste.http_agent(opts)
42
- page = agent.get('http://rafb.net/paste/index.html')
53
+ agent = RPaste.web_agent
54
+ page = agent.get(POST_URL)
43
55
  form = page.forms.first
44
56
 
45
57
  form.lang = paste.syntax if paste.syntax
46
58
  form.nick = paste.author if paste.author
47
59
  form.desc = paste.description if paste.description
48
60
 
49
- if opts[:convert_tabs]
50
- form.cvt_tabs = opts[:convert_tabs]
61
+ if options[:convert_tabs]
62
+ form.cvt_tabs = options[:convert_tabs]
51
63
  end
52
64
 
53
65
  form.text = paste.text
@@ -31,11 +31,10 @@ module RPaste
31
31
 
32
32
  #
33
33
  # Retrieves the NoPaste Paste object associated with the specified
34
- # _name_. If _opts_ are given they will be used in accessing the
35
- # NoPaste website.
34
+ # _name_.
36
35
  #
37
- def self.paste(name,opts={})
38
- page = Hpricot(RPaste.open("#{PREFIX_URL}#{name}.html",opts))
36
+ def self.paste(name)
37
+ page = RPaste.open_page("#{PREFIX_URL}#{name}.html")
39
38
 
40
39
  return Paste.new(name) do |paste|
41
40
  paste.syntax = page.search('//table[1]/tr[1]/td/small/b[1]').inner_text
@@ -10,12 +10,15 @@ module RPaste
10
10
  URL = 'http://www.rafb.net/paste/results.html'
11
11
 
12
12
  #
13
- # Returns the list of recent pastes on NoPaste. If _opts_ are
13
+ # Returns the list of recent pastes on NoPaste. If _options_ are
14
14
  # given they will be used in accessing the NoPaste website. If a
15
15
  # _block_ is given, it will be passed the list of recent pastes.
16
16
  #
17
- def self.get(opts={},&block)
18
- len = opts[:length]
17
+ # _options_ may also contain the following keys:
18
+ # <tt>:length</tt>:: The maximum number of results to return.
19
+ #
20
+ def self.get(options={},&block)
21
+ len = options[:length]
19
22
 
20
23
  if len.nil? || len==0
21
24
  len = -1
@@ -23,7 +26,7 @@ module RPaste
23
26
  len = len.to_i+1
24
27
  end
25
28
 
26
- page = Hpricot(RPaste.open(URL,opts))
29
+ page = RPaste.open_page(URL,options)
27
30
  rows = page.search('//div.filelist/table/tr')[1..len]
28
31
 
29
32
  metadata = rows.map do |row|
@@ -1,10 +1,31 @@
1
1
  require 'rpaste/nopaste/metadata'
2
- require 'rpaste/resultset'
2
+ require 'rpaste/result_set'
3
3
 
4
4
  module RPaste
5
5
  module NoPaste
6
6
  class ResultSet < RPaste::ResultSet
7
7
 
8
+ #
9
+ # Returns an +Array+ containing the metadata dates.
10
+ #
11
+ def dates
12
+ self.map { |data| data.date }
13
+ end
14
+
15
+ #
16
+ # Returns an +Array+ containing the metadata syntaxes.
17
+ #
18
+ def syntaxes
19
+ self.map { |data| data.syntax }
20
+ end
21
+
22
+ #
23
+ # Returns an +Array+ containing the metadata descriptions.
24
+ #
25
+ def descriptions
26
+ self.map { |data| data.description }
27
+ end
28
+
8
29
  #
9
30
  # Selects the metadata with dates in between _start_ and _stop_.
10
31
  #
@@ -30,15 +30,14 @@ module RPaste
30
30
 
31
31
  #
32
32
  # Retrieves the PasteBin Paste object associated with the specified
33
- # _name_. If _opts_ is given they will be used in accessing the
34
- # PasteBin website.
33
+ # _name_.
35
34
  #
36
- def self.paste(name,opts={})
37
- page = Hpricot(RPaste.open("#{PREFIX_URL}#{name}",opts))
35
+ def self.paste(name)
36
+ page = RPaste.open_page("#{PREFIX_URL}#{name}")
38
37
 
39
38
  return Paste.new(name) do |paste|
40
39
  paste.text = page.search('//div.text/ol/li').inner_text
41
- paste.author = page.search('#content/h1[1]'.inner_text.gsub(/Posted by /,'').split(' on ')
40
+ paste.author = page.search('#content/h1[1]').inner_text.gsub(/Posted by /,'').split(' on ')
42
41
  end
43
42
  end
44
43
 
@@ -6,16 +6,28 @@ require 'hpricot'
6
6
 
7
7
  module RPaste
8
8
  module PasteBin
9
+ # The PasteBin post URL
10
+ POST_URL = 'http://pastebin.com/pastebin.php'
11
+
9
12
  #
10
13
  # Returns the list of all recent pastes on PasteBin. See Recent.get.
11
14
  #
12
- def PasteBin.recent(opts={},&block)
13
- Recent.get(opts,&block)
15
+ def PasteBin.recent(options={},&block)
16
+ Recent.get(options,&block)
14
17
  end
15
18
 
16
19
  #
17
- # Submits a new paste to PasteBin. If a _block_ is given, then it will be
18
- # passed the Paste object before it is submitted to PasteBin.
20
+ # Submits a new paste to PasteBin with the given _options_. If a
21
+ # _block_ is given, then it will be passed the Paste object before
22
+ # it is submitted to PasteBin.
23
+ #
24
+ # _options_ may contain the following keys:
25
+ # <tt>:author</tt>:: The author of the paste.
26
+ # <tt>:syntax</tt>:: The syntax of the paste.
27
+ # <tt>:retained</tt>:: Indicates when the paste should expire,
28
+ # which can be either <tt>:day</tt>,
29
+ # <tt>:month</tt> or <tt>:year</tt>.
30
+ # <tt>:text</tt>:: The text to paste.
19
31
  #
20
32
  # PasteBin.post(:author => 'xyz') do |paste|
21
33
  # paste.description = 'test'
@@ -28,11 +40,16 @@ module RPaste
28
40
  # }
29
41
  # end
30
42
  #
31
- def PasteBin.post(opts={},&block)
32
- paste = Paste.new(opts,&block)
43
+ def PasteBin.post(options={},&block)
44
+ author = options[:author]
45
+ syntax = options[:syntax]
46
+ retained = options[:retained]
47
+ text = options[:text]
48
+
49
+ paste = Paste.new(nil,author,nil,syntax,retained,text,&block)
33
50
 
34
- agent = RPaste.http_agent(opts)
35
- page = agent.get('http://pastebin.com/pastebin.php')
51
+ agent = RPaste.web_agent
52
+ page = agent.get(POST_URL)
36
53
  form = page.forms.first
37
54
 
38
55
  form.format = paste.syntax if paste.syntax
@@ -12,12 +12,15 @@ module RPaste
12
12
  MAX_LENGTH = 10
13
13
 
14
14
  #
15
- # Returns the list of recent pastes on PasteBin. If _opts_ are
15
+ # Returns the list of recent pastes on PasteBin. If _options_ are
16
16
  # given they will be used in accessing the PasteBin website. If a
17
17
  # _block_ is given, it will be passed the list of recent pastes.
18
18
  #
19
- def self.get(opts={},&block)
20
- len = opts[:length]
19
+ # _options_ may also contain the following keys:
20
+ # <tt>:length</tt>:: The maximum number of results to return.
21
+ #
22
+ def self.get(options={},&block)
23
+ len = options[:length]
21
24
 
22
25
  if (len.nil? || len>MAX_LENGTH)
23
26
  len = MAX_LENGTH
@@ -25,7 +28,7 @@ module RPaste
25
28
  len = len.to_i
26
29
  end
27
30
 
28
- page = Hpricot(RPaste.open(URL,opts))
31
+ page = RPaste.open_page(URL,options))
29
32
  rows = page.search('#menu/ul/li')[0...len]
30
33
 
31
34
  metadata = rows.map do |row|
@@ -10,6 +10,29 @@ module RPaste
10
10
  super(results,&block)
11
11
  end
12
12
 
13
+ #
14
+ # Selects the metadata which match the given _block_.
15
+ #
16
+ # results.select { |result| result.date > Time.today }
17
+ #
18
+ def select(&block)
19
+ self.class.new(super(&block))
20
+ end
21
+
22
+ #
23
+ # Returns an +Array+ containing the metadata names.
24
+ #
25
+ def names
26
+ self.map { |data| data.name }
27
+ end
28
+
29
+ #
30
+ # Returns an +Array+ containing the metadata authors.
31
+ #
32
+ def authors
33
+ self.map { |data| data.author }
34
+ end
35
+
13
36
  #
14
37
  # Selects metadata with the matching _name_.
15
38
  #
data/lib/rpaste/rpaste.rb CHANGED
@@ -2,30 +2,79 @@ require 'mechanize'
2
2
  require 'open-uri'
3
3
 
4
4
  module RPaste
5
+ # Common proxy port.
6
+ COMMON_PROXY_PORT = 8080
7
+
8
+ #
9
+ # Returns the +Hash+ of proxy information.
10
+ #
11
+ def RPaste.proxy
12
+ @@rpaste_proxy ||= {:host => nil, :port => COMMON_PROXY_PORT, :user => nil, :pass => nil}
13
+ end
14
+
15
+ #
16
+ # Creates a HTTP URI based from the given _proxy_info_ +Hash+. The
17
+ # _proxy_info_ hash defaults to Web.proxy, if not given.
18
+ #
19
+ # _proxy_info_ may contain the following keys:
20
+ # <tt>:host</tt>:: The proxy host.
21
+ # <tt>:port</tt>:: The proxy port. Defaults to COMMON_PROXY_PORT,
22
+ # if not specified.
23
+ # <tt>:user</tt>:: The user-name to login as.
24
+ # <tt>:password</tt>:: The password to login with.
5
25
  #
6
- # Returns the RPaste user-agent
26
+ def RPaste.proxy_uri(proxy_info=RPaste.proxy)
27
+ if RPaste.proxy[:host]
28
+ return URI::HTTP.build(:host => RPaste.proxy[:host],
29
+ :port => RPaste.proxy[:port] || COMMON_PROXY_PORT,
30
+ :userinfo => "#{RPaste.proxy[:user]}:#{RPaste.proxy[:password]}",
31
+ :path => '/')
32
+ end
33
+ end
34
+
35
+ #
36
+ # Returns the supported Web User-Agent Aliases.
37
+ #
38
+ def RPaste.user_agent_aliases
39
+ WWW::Mechanize::AGENT_ALIASES
40
+ end
41
+
42
+ #
43
+ # Returns the RPaste User-Agent
7
44
  #
8
45
  def RPaste.user_agent
9
- @user_agent
46
+ @@rpaste_user_agent ||= nil
10
47
  end
11
48
 
12
49
  #
13
50
  # Sets the RPaste user-agent to the specified _agent_.
14
51
  #
15
52
  def RPaste.user_agent=(agent)
16
- @user_agent = agent
53
+ @@rpaste_user_agent = agent
17
54
  end
18
55
 
19
56
  #
20
- # Opens the _uri_ with the given _opts_. The contents of the _uri_ will
21
- # be returned.
57
+ # Opens the _uri_ with the given _options_. The contents of the _uri_
58
+ # will be returned.
59
+ #
60
+ # _options_ may contain the following keys:
61
+ # <tt>:user_agent_alias</tt>:: The User-Agent Alias to use.
62
+ # <tt>:user_agent</tt>:: The User-Agent String to use.
63
+ # <tt>:proxy</tt>:: A +Hash+ of proxy information which may
64
+ # contain the following keys:
65
+ # <tt>:host</tt>:: The proxy host.
66
+ # <tt>:port</tt>:: The proxy port.
67
+ # <tt>:user</tt>:: The user-name to login as.
68
+ # <tt>:password</tt>:: The password to login with.
69
+ #
70
+ # RPaste.open_uri('http://www.hackety.org/')
22
71
  #
23
- # RPaste.open('http://www.hackety.org/')
24
- # RPaste.open('http://tenderlovemaking.com/',
72
+ # RPaste.open_uri('http://tenderlovemaking.com/',
25
73
  # :user_agent_alias => 'Linux Mozilla')
26
- # RPaste.open('http://www.wired.com/', :user_agent => 'the future')
74
+ # RPaste.open_uri('http://www.wired.com/',
75
+ # :user_agent => 'the future')
27
76
  #
28
- def RPaste.open(uri,opts={})
77
+ def RPaste.open_uri(uri,options={})
29
78
  headers = {}
30
79
 
31
80
  if opts[:user_agent_alias]
@@ -36,17 +85,39 @@ module RPaste
36
85
  headers['User-Agent'] = RPaste.user_agent
37
86
  end
38
87
 
88
+ proxy = (options[:proxy] || GScraper.proxy)
89
+ if proxy[:host]
90
+ headers[:proxy] = GScraper.proxy_uri(proxy)
91
+ end
92
+
39
93
  return Kernel.open(uri,headers)
40
94
  end
41
95
 
42
96
  #
43
- # Creates a new Mechanize agent with the given _opts_.
97
+ # Similar to RPaste.open_uri but returns an Hpricot document.
98
+ #
99
+ def RPaste.open_page(uri,options={})
100
+ Hpricot(RPaste.open_uri(uri,options))
101
+ end
102
+
103
+ #
104
+ # Creates a new Mechanize agent with the given _options_.
44
105
  #
45
- # RPaste.http_agent
46
- # RPaste.http_agent(:user_agent_alias => 'Linux Mozilla')
47
- # RPaste.http_agent(:user_agent => 'wooden pants')
106
+ # _options_ may contain the following keys:
107
+ # <tt>:user_agent_alias</tt>:: The User-Agent Alias to use.
108
+ # <tt>:user_agent</tt>:: The User-Agent String to use.
109
+ # <tt>:proxy</tt>:: A +Hash+ of proxy information which may
110
+ # contain the following keys:
111
+ # <tt>:host</tt>:: The proxy host.
112
+ # <tt>:port</tt>:: The proxy port.
113
+ # <tt>:user</tt>:: The user-name to login as.
114
+ # <tt>:password</tt>:: The password to login with.
48
115
  #
49
- def RPaste.http_agent(opts={})
116
+ # RPaste.web_agent
117
+ # RPaste.web_agent(:user_agent_alias => 'Linux Mozilla')
118
+ # RPaste.web_agent(:user_agent => 'wooden pants')
119
+ #
120
+ def RPaste.web_agent(options={})
50
121
  agent = WWW::Mechanize.new
51
122
 
52
123
  if opts[:user_agent_alias]
@@ -57,6 +128,11 @@ module RPaste
57
128
  agent.user_agent = RPaste.user_agent
58
129
  end
59
130
 
131
+ proxy = (options[:proxy] || GScraper.proxy)
132
+ if proxy[:host]
133
+ agent.set_proxy(proxy[:host],proxy[:port],proxy[:user],proxy[:password])
134
+ end
135
+
60
136
  return agent
61
137
  end
62
138
  end
@@ -1,3 +1,3 @@
1
1
  module RPaste
2
- VERSION = '0.0.9'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,38 +1,62 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: rpaste
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.0.9
7
- date: 2008-01-09 00:00:00 -08:00
8
- summary: RPaste provides access to many of the online paste services
9
- require_paths:
10
- - lib
11
- email: postmodern.mod3@gmail.com
12
- homepage: " by Postmodern Modulus III"
13
- rubyforge_project: rpaste
14
- description: "== FEATURES/PROBLEMS: * Supports posting and retrieving from NoPaste. * Supports retrieving from PasteBin. * Provides HTTP access with custom User-Agent strings. == REQUIREMENTS: * Hpricot * Mechanize == INSTALL:"
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 0.1.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Postmodern Modulus III
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-03-15 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hpricot
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: mechanize
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: "0"
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: hoe
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.5.1
41
+ version:
42
+ description: "== FEATURES/PROBLEMS: * Supports posting and retrieving pastes from NoPaste. * Supports retrieving from PasteBin. * Provides HTTP access with custom User-Agent strings. * Provides proxy settings for HTTP access. == REQUIREMENTS: * Hpricot * WWW::Mechanize == INSTALL:"
43
+ email: postmodern.mod3@gmail.com
44
+ executables: []
45
+
46
+ extensions: []
47
+
48
+ extra_rdoc_files:
49
+ - History.txt
50
+ - LICENSE.txt
51
+ - Manifest.txt
52
+ - README.txt
53
+ - TODO.txt
31
54
  files:
32
55
  - History.txt
33
56
  - LICENSE.txt
34
57
  - Manifest.txt
35
58
  - README.txt
59
+ - TODO.txt
36
60
  - Rakefile
37
61
  - lib/rpaste.rb
38
62
  - lib/rpaste/version.rb
@@ -53,47 +77,32 @@ files:
53
77
  - lib/rpaste/pastebin/pastebin.rb
54
78
  - lib/rpaste/pastebin.rb
55
79
  - test/test_rpaste.rb
56
- test_files:
57
- - test/test_rpaste.rb
80
+ has_rdoc: true
81
+ homepage: " by Postmodern Modulus III"
82
+ post_install_message:
58
83
  rdoc_options:
59
84
  - --main
60
85
  - README.txt
61
- extra_rdoc_files:
62
- - History.txt
63
- - LICENSE.txt
64
- - Manifest.txt
65
- - README.txt
66
- executables: []
67
-
68
- extensions: []
69
-
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: "0"
93
+ version:
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: "0"
99
+ version:
70
100
  requirements: []
71
101
 
72
- dependencies:
73
- - !ruby/object:Gem::Dependency
74
- name: hpricot
75
- version_requirement:
76
- version_requirements: !ruby/object:Gem::Version::Requirement
77
- requirements:
78
- - - ">"
79
- - !ruby/object:Gem::Version
80
- version: 0.0.0
81
- version:
82
- - !ruby/object:Gem::Dependency
83
- name: mechanize
84
- version_requirement:
85
- version_requirements: !ruby/object:Gem::Version::Requirement
86
- requirements:
87
- - - ">"
88
- - !ruby/object:Gem::Version
89
- version: 0.0.0
90
- version:
91
- - !ruby/object:Gem::Dependency
92
- name: hoe
93
- version_requirement:
94
- version_requirements: !ruby/object:Gem::Version::Requirement
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- version: 1.4.0
99
- version:
102
+ rubyforge_project: rpaste
103
+ rubygems_version: 1.0.1
104
+ signing_key:
105
+ specification_version: 2
106
+ summary: RPaste provides access to many of the online paste services
107
+ test_files:
108
+ - test/test_rpaste.rb