haste 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.
Files changed (4) hide show
  1. data/bin/haste +6 -0
  2. data/lib/haste/version.rb +5 -0
  3. data/lib/haste.rb +47 -0
  4. metadata +70 -0
data/bin/haste ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../lib/haste'
4
+
5
+ cli = Haste::CLI.new
6
+ cli.start
@@ -0,0 +1,5 @@
1
+ module Haste
2
+
3
+ VERSION = '0.0.2'
4
+
5
+ end
data/lib/haste.rb ADDED
@@ -0,0 +1,47 @@
1
+ require 'json'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ module Haste
6
+
7
+ DEFAULT_URL = 'http://hastebin.com'
8
+
9
+ class CLI
10
+
11
+ attr_reader :input
12
+
13
+ # Pull all of the data from STDIN
14
+ def initialize
15
+ @input = STDIN.readlines.join
16
+ @input.strip!
17
+ end
18
+
19
+ # Upload the and output the URL we get back
20
+ def start
21
+ uri = URI.parse server
22
+ http = Net::HTTP.new uri.host, uri.port
23
+ response = http.post '/documents', input
24
+ if response.is_a?(Net::HTTPOK)
25
+ data = JSON.parse(response.body)
26
+ STDOUT.puts "#{server}/#{data['key']}"
27
+ else
28
+ STDERR.puts "failure uploading: #{res.status}"
29
+ end
30
+ rescue RuntimeError, JSON::ParserError => e
31
+ STDERR.puts "failure uploading: #{response.code}"
32
+ rescue Errno::ECONNREFUSED => e
33
+ STDERR.puts "failure connecting: #{e.message}"
34
+ end
35
+
36
+ private
37
+
38
+ def server
39
+ return @server if @server
40
+ @server = ENV['HASTE_SERVER'] || Haste::DEFAULT_URL
41
+ @server.chop! if server.end_with?('/')
42
+ @server
43
+ end
44
+
45
+ end
46
+
47
+ end
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: haste
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - John Crepezzi
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-11-28 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70245634412680 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70245634412680
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &70245634412000 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70245634412000
36
+ description: CLI Haste Client
37
+ email: john.crepezzi@gmail.com
38
+ executables:
39
+ - haste
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - lib/haste/version.rb
44
+ - lib/haste.rb
45
+ - bin/haste
46
+ homepage:
47
+ licenses: []
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ requirements: []
65
+ rubyforge_project:
66
+ rubygems_version: 1.8.10
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: Haste Client
70
+ test_files: []