xkcd 0.0.8 → 1.0.0

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 (3) hide show
  1. data/bin/xkcd +0 -1
  2. data/lib/xkcd.rb +23 -15
  3. metadata +33 -39
data/bin/xkcd CHANGED
@@ -1,4 +1,3 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'xkcd'
3
3
  puts XKCD.img
4
-
data/lib/xkcd.rb CHANGED
@@ -1,6 +1,8 @@
1
- #!/usr/bin/evn ruby
2
- require 'net/http'
1
+ #!/usr/bin/env ruby
2
+ require 'nokogiri'
3
3
  require 'open-uri'
4
+ require 'json'
5
+
4
6
  # The main XKCD driver
5
7
  class XKCD
6
8
  # Get img/comic URL from xkcd
@@ -12,21 +14,27 @@ class XKCD
12
14
  # >> XKCD.comic
13
15
  # => "http://xkcd.com/891/"
14
16
 
15
- def self.comic()
16
- # This method gets random comic links from xkcd, the uri is the redirected location found in the resp headers
17
- uri = URI.parse 'http://dynamic.xkcd.com/random/comic/'
18
- req = Net::HTTP::Get.new(uri.request_uri)
19
- http = Net::HTTP.new(uri.host)
20
- res = http.start { |server|
21
- server.request(req)
22
- }
23
- res["location"]
17
+ def self.comic
18
+ open('http://dynamic.xkcd.com/random/comic/').base_uri.to_s
24
19
  end
25
20
 
21
+ class << XKCD
22
+ alias_method :get, :comic
23
+ end
24
+
25
+ =begin
26
+ def self.img
27
+ img = Nokogiri::HTML(open('http://dynamic.xkcd.com/random/comic/')).css('#comic img')[0]
28
+ img_url = img.attributes["src"].value
29
+ img_title = img.attributes["title"].value
30
+ "#{img_title} : #{img_url}"
31
+ end
32
+ =end
26
33
  def self.img
27
- url = 'http://dynamic.xkcd.com/random/comic/'
28
- html = open(url).read()
29
- imgs = URI.extract(html).select{ |l| l[/comics\//]}
30
- imgs.first
34
+ max = JSON.parse(open('http://xkcd.com/info.0.json').read)["num"]
35
+ comic_num = Random.rand(max)
36
+ comic_num = 1 if comic_num == 404 # Avoid 404th comic ;)
37
+ comic = JSON.parse(open("http://xkcd.com/#{comic_num}/info.0.json").read)
38
+ "#{comic['alt']} : #{comic['img']}"
31
39
  end
32
40
  end
metadata CHANGED
@@ -1,68 +1,62 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: xkcd
3
- version: !ruby/object:Gem::Version
4
- hash: 15
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 8
10
- version: 0.0.8
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Hemanth.HM
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-05-20 00:00:00 Z
19
- dependencies: []
20
-
12
+ date: 2012-05-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nokogiri
16
+ requirement: &72954180 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.5.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *72954180
21
25
  description: A simple gem to get random img/comic url from xkcd
22
26
  email: hemanth.hm@gmail.com
23
- executables:
27
+ executables:
24
28
  - xkcd
25
29
  extensions: []
26
-
27
30
  extra_rdoc_files: []
28
-
29
- files:
31
+ files:
30
32
  - Rakefile
31
33
  - lib/xkcd.rb
32
34
  - bin/xkcd
33
35
  - test/test_karam.rb
34
36
  homepage: http://rubygems.org/gems/xkcd
35
37
  licenses: []
36
-
37
38
  post_install_message:
38
39
  rdoc_options: []
39
-
40
- require_paths:
40
+ require_paths:
41
41
  - lib
42
- required_ruby_version: !ruby/object:Gem::Requirement
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
43
  none: false
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- hash: 3
48
- segments:
49
- - 0
50
- version: "0"
51
- required_rubygems_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
49
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
60
54
  requirements: []
61
-
62
55
  rubyforge_project:
63
- rubygems_version: 1.8.24
56
+ rubygems_version: 1.8.10
64
57
  signing_key:
65
58
  specification_version: 3
66
59
  summary: XCKD random img urls!
67
- test_files:
60
+ test_files:
68
61
  - test/test_karam.rb
62
+ has_rdoc: