ruby-hackernews 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -117,3 +117,5 @@ You have to log out before logging in with a different user.
117
117
 
118
118
  - Mike Kelly ( https://github.com/mikekelly ) for fixing a bug in TimeInfo.time
119
119
  - Marc Köhlbrugge ( http://github.com/marckohlbrugge ) fox fixing and formatting the documentation
120
+ - Peter Cooper ( http://github.com/peterc ) for bug reports
121
+ - Peter Boctor ( http://github.com/boctor ) for fixing a bug about authentication
data/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
1
 
2
2
  require 'rubygems'
3
- require 'spec/rake/spectask'
4
3
  require 'rake'
5
4
  require 'rake/clean'
6
5
  require 'rake/gempackagetask'
@@ -9,7 +8,7 @@ require 'rake/testtask'
9
8
 
10
9
  spec = Gem::Specification.new do |s|
11
10
  s.name = 'ruby-hackernews'
12
- s.version = '1.1.0'
11
+ s.version = '1.1.1'
13
12
  s.add_dependency('require_all', '>= 1.1.0')
14
13
  s.add_dependency('mechanize', '>= 1.0.0')
15
14
  s.has_rdoc = false
@@ -26,9 +25,4 @@ Rake::GemPackageTask.new(spec) do |p|
26
25
  p.gem_spec = spec
27
26
  p.need_tar = true
28
27
  p.need_zip = true
29
- end
30
-
31
- Spec::Rake::SpecTask.new do |t|
32
- t.warning = true
33
- t.spec_files = FileList['spec/**/*.rb']
34
- end
28
+ end
@@ -10,10 +10,12 @@ class TimeInfo
10
10
  return Time.now - @unit_of_measure * @value
11
11
  end
12
12
 
13
- def initialize(value, unit_of_measure)
14
- descriptor = unit_of_measure[unit_of_measure.length - 1].chr == "s" ? unit_of_measure[0..unit_of_measure.length - 2] : unit_of_measure
13
+ def initialize(value, unit_of_measure)
15
14
  @value = value
16
- @unit_of_measure = self.class.const_get(descriptor.upcase)
15
+ if(unit_of_measure)
16
+ descriptor = unit_of_measure[unit_of_measure.length - 1].chr == "s" ? unit_of_measure[0..unit_of_measure.length - 2] : unit_of_measure
17
+ @unit_of_measure = self.class.const_get(descriptor.upcase)
18
+ end
17
19
  end
18
20
 
19
21
 
@@ -1,4 +1,3 @@
1
-
2
1
  module MechanizeContext
3
2
 
4
3
  @@contexts = {}
@@ -22,7 +21,7 @@ module MechanizeContext
22
21
  end
23
22
 
24
23
  def authenticated?(key = :default)
25
- return @@contexts[key].cookie_jar.jar.any?
24
+ return @@contexts[key] && @@contexts[key].cookie_jar.jar.any?
26
25
  end
27
26
 
28
27
  end
@@ -6,8 +6,10 @@ class TimeInfoParser
6
6
  end
7
7
 
8
8
  def parse
9
- value = @element.text.strip.split[0].to_i
10
- unit_of_measure = @element.text.strip.split[1]
9
+ if @element
10
+ value = @element.text.strip.split[0].to_i
11
+ unit_of_measure = @element.text.strip.split[1]
12
+ end
11
13
  return TimeInfo.new(value, unit_of_measure)
12
14
  end
13
15
  end
@@ -6,8 +6,11 @@ class UserInfoParser
6
6
  end
7
7
 
8
8
  def parse
9
- user_name = @element.search("a")[0].inner_html
10
- user_page = @element.search("a")[0]['href']
9
+ user_element = @element.search("a")[0]
10
+ if user_element
11
+ user_name = user_element.inner_html
12
+ user_page = user_element['href']
13
+ end
11
14
  return UserInfo.new(user_name, user_page)
12
15
  end
13
16
  end
@@ -9,7 +9,8 @@ class VotingInfoParser
9
9
  def parse
10
10
  upvote = @voting_element[0]['href'] if @voting_element[0]
11
11
  downvote = @voting_element[1]['href'] if @voting_element[1]
12
- score = @score_element.search("span")[0].inner_html.split[0].to_i
12
+ points_element = @score_element.search("span")[0]
13
+ score = points_element.inner_html.split[0].to_i if points_element
13
14
  return VotingInfo.new(score, upvote, downvote)
14
15
  end
15
16
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-hackernews
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 1
8
+ - 1
9
+ version: 1.1.1
5
10
  platform: ruby
6
11
  authors:
7
12
  - Andrea Dallera
@@ -9,29 +14,39 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-10-18 00:00:00 +02:00
17
+ date: 2011-06-08 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: require_all
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 1
30
+ - 1
31
+ - 0
23
32
  version: 1.1.0
24
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
25
35
  - !ruby/object:Gem::Dependency
26
36
  name: mechanize
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
30
40
  requirements:
31
41
  - - ">="
32
42
  - !ruby/object:Gem::Version
43
+ segments:
44
+ - 1
45
+ - 0
46
+ - 0
33
47
  version: 1.0.0
34
- version:
48
+ type: :runtime
49
+ version_requirements: *id002
35
50
  description: An interface to Hacker News
36
51
  email: andrea@andreadallera.com
37
52
  executables: []
@@ -44,28 +59,28 @@ files:
44
59
  - README.rdoc
45
60
  - Rakefile
46
61
  - lib/ruby-hackernews.rb
47
- - lib/ruby-hackernews/domain/comment/comment.rb
48
- - lib/ruby-hackernews/domain/entry/entry.rb
49
- - lib/ruby-hackernews/domain/entry/comments_info.rb
50
- - lib/ruby-hackernews/domain/entry/link_info.rb
51
- - lib/ruby-hackernews/domain/entry/time_info.rb
52
- - lib/ruby-hackernews/domain/entry/voting_info.rb
53
- - lib/ruby-hackernews/domain/entry/user_info.rb
54
- - lib/ruby-hackernews/domain/user.rb
55
- - lib/ruby-hackernews/services/mechanize_context.rb
56
- - lib/ruby-hackernews/services/voting_service.rb
57
- - lib/ruby-hackernews/services/comment_service.rb
58
- - lib/ruby-hackernews/services/entry_service.rb
59
- - lib/ruby-hackernews/services/configuration_service.rb
62
+ - lib/ruby-hackernews/services/parsers/voting_info_parser.rb
63
+ - lib/ruby-hackernews/services/parsers/time_info_parser.rb
60
64
  - lib/ruby-hackernews/services/parsers/entry_page_parser.rb
61
65
  - lib/ruby-hackernews/services/parsers/link_info_parser.rb
66
+ - lib/ruby-hackernews/services/parsers/comments_info_parser.rb
62
67
  - lib/ruby-hackernews/services/parsers/entry_parser.rb
63
68
  - lib/ruby-hackernews/services/parsers/user_info_parser.rb
64
- - lib/ruby-hackernews/services/parsers/voting_info_parser.rb
65
- - lib/ruby-hackernews/services/parsers/comments_info_parser.rb
66
- - lib/ruby-hackernews/services/parsers/time_info_parser.rb
69
+ - lib/ruby-hackernews/services/voting_service.rb
70
+ - lib/ruby-hackernews/services/mechanize_context.rb
67
71
  - lib/ruby-hackernews/services/login_service.rb
72
+ - lib/ruby-hackernews/services/comment_service.rb
73
+ - lib/ruby-hackernews/services/entry_service.rb
68
74
  - lib/ruby-hackernews/services/not_authenticated_error.rb
75
+ - lib/ruby-hackernews/services/configuration_service.rb
76
+ - lib/ruby-hackernews/domain/entry/comments_info.rb
77
+ - lib/ruby-hackernews/domain/entry/voting_info.rb
78
+ - lib/ruby-hackernews/domain/entry/entry.rb
79
+ - lib/ruby-hackernews/domain/entry/user_info.rb
80
+ - lib/ruby-hackernews/domain/entry/time_info.rb
81
+ - lib/ruby-hackernews/domain/entry/link_info.rb
82
+ - lib/ruby-hackernews/domain/comment/comment.rb
83
+ - lib/ruby-hackernews/domain/user.rb
69
84
  has_rdoc: true
70
85
  homepage: http://github.com/bolthar/ruby-hackernews
71
86
  licenses: []
@@ -76,21 +91,25 @@ rdoc_options: []
76
91
  require_paths:
77
92
  - lib
78
93
  required_ruby_version: !ruby/object:Gem::Requirement
94
+ none: false
79
95
  requirements:
80
96
  - - ">="
81
97
  - !ruby/object:Gem::Version
98
+ segments:
99
+ - 0
82
100
  version: "0"
83
- version:
84
101
  required_rubygems_version: !ruby/object:Gem::Requirement
102
+ none: false
85
103
  requirements:
86
104
  - - ">="
87
105
  - !ruby/object:Gem::Version
106
+ segments:
107
+ - 0
88
108
  version: "0"
89
- version:
90
109
  requirements: []
91
110
 
92
111
  rubyforge_project:
93
- rubygems_version: 1.3.5
112
+ rubygems_version: 1.3.7
94
113
  signing_key:
95
114
  specification_version: 3
96
115
  summary: An interface to Hacker News