ruby-hackernews 1.1.0 → 1.1.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.
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