consadole_aggregator 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -7,16 +7,16 @@ GEM
7
7
  bundler (~> 1.0)
8
8
  git (>= 1.2.5)
9
9
  rake
10
- json (1.5.1)
11
- nokogiri (1.4.4)
10
+ json (1.5.3)
11
+ nokogiri (1.4.6)
12
12
  oauth (0.4.4)
13
- rake (0.9.1)
13
+ rake (0.9.2)
14
14
  rcov (0.9.9)
15
15
  rspec (2.6.0)
16
16
  rspec-core (~> 2.6.0)
17
17
  rspec-expectations (~> 2.6.0)
18
18
  rspec-mocks (~> 2.6.0)
19
- rspec-core (2.6.3)
19
+ rspec-core (2.6.4)
20
20
  rspec-expectations (2.6.0)
21
21
  diff-lcs (~> 1.1.2)
22
22
  rspec-mocks (2.6.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.8
1
+ 0.1.9
@@ -5,12 +5,12 @@ params = ARGV.getopts(nil, "module:news", "output:log", "date:")
5
5
  $:.unshift(File.expand_path('../../lib', __FILE__)) if $0 == __FILE__
6
6
 
7
7
  require 'consadole_aggregator'
8
+ require 'logger'
9
+ path = File.expand_path('../../log', __FILE__) + '/exec_result.log'
10
+ log = Logger.new(path)
8
11
 
9
12
  output = case params['output']
10
13
  when 'log'
11
- require 'logger'
12
- path = File.expand_path('../../log', __FILE__) + '/exec_result.log'
13
- log = Logger.new(path)
14
14
  puts "output to #{path}"
15
15
  ->(element){
16
16
  if element.kind_of?(ConsadoleAggregator::Live::Timeline)
@@ -41,7 +41,15 @@ output = case params['output']
41
41
  case params['module']
42
42
  when 'news'
43
43
  modules = ConsadoleAggregator::News.constants.map{ |k| ConsadoleAggregator::News.const_get(k).new }
44
- modules.each{ |m| m.update &output }
44
+ modules.each do |m|
45
+ log.info "start #{m}"
46
+ begin
47
+ m.update &output
48
+ rescue
49
+ log.error $!
50
+ end
51
+ log.info "end #{m}"
52
+ end
45
53
  when 'live'
46
54
  reservation_time = params['date'] ? Time.parse(params['date']) : nil
47
55
  ConsadoleAggregator::Live.reserve(reservation_time).execute &output
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{consadole_aggregator}
8
- s.version = "0.1.8"
8
+ s.version = "0.1.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["niku"]
12
- s.date = %q{2011-06-10}
12
+ s.date = %q{2011-06-24}
13
13
  s.default_executable = %q{consadole_aggregator}
14
14
  s.description = %q{ It aggregates infomation of 'Consadole Sapporo' }
15
15
  s.email = %q{niku@niku.name}
@@ -38,6 +38,7 @@ Gem::Specification.new do |s|
38
38
  "lib/consadole_aggregator/live/timeline.rb",
39
39
  "lib/consadole_aggregator/news.rb",
40
40
  "log/.gitignore",
41
+ "spec/consadole_aggregator/aggregatable_spec.rb",
41
42
  "spec/consadole_aggregator/helper_spec.rb",
42
43
  "spec/consadole_aggregator/live/timeline_spec.rb",
43
44
  "spec/consadole_aggregator/live_spec.rb",
@@ -37,7 +37,8 @@ module ConsadoleAggregator
37
37
  def get_strage
38
38
  @strage ||= YAML.load_file(build_strage_path) || [] # fix when YAML.load_file is nil
39
39
  rescue
40
- @strage = []
40
+ @logger.error $!
41
+ raise
41
42
  end
42
43
 
43
44
  def save_strage
@@ -0,0 +1,87 @@
1
+ # -*- coding: utf-8 -*-
2
+ require_relative '../spec_helper'
3
+
4
+ module ConsadoleAggregator
5
+ describe Aggregatable do
6
+ before do
7
+ @articles = [{ url:'http://example.jp/', title:'hoge' },
8
+ { url:'http://example.com/', title:'fuga' }]
9
+ get_resource_stub = double('get_resource')
10
+ get_resource_stub.stub(:call).and_return('')
11
+ parse_list_stub = double('parse_list')
12
+ parse_list_stub.stub(:call).and_return(['http://example.jp/', 'http://example.com/'])
13
+ parse_article_stub = double('parse_article')
14
+ parse_article_stub.stub(:call) do |arg|
15
+ if arg == 'http://example.jp/'
16
+ { url:arg, title:'hoge' }
17
+ else
18
+ { url:arg, title:'fuga' }
19
+ end
20
+ end
21
+ klass = Class.new do
22
+ include Aggregatable
23
+ @get_resource = get_resource_stub
24
+ @parse_list = parse_list_stub
25
+ @parse_article = parse_article_stub
26
+ end
27
+ ConsadoleAggregator::News.const_set(:TestClass, klass) # FIXME How do I suppress warning?
28
+ subject.stub(:save_strage)
29
+ end
30
+
31
+ subject{ News::TestClass.new }
32
+
33
+ describe '#get_new_articles' do
34
+ context 'when article straged' do
35
+ before do
36
+ @straged = [@articles.first]
37
+ subject.stub!(:get_strage).and_return(@straged)
38
+ end
39
+ it 'should return part of articles' do
40
+ subject.get_new_articles.should == @articles - @straged
41
+ end
42
+ end
43
+ end
44
+
45
+ describe '#update' do
46
+ context 'when default' do
47
+ it 'should call ordered' do
48
+ subject.should_receive(:get_new_articles).ordered.and_return([])
49
+ subject.should_receive(:save_strage).ordered
50
+ subject.update
51
+ end
52
+ end
53
+ context 'when new_articles exist' do
54
+ before do
55
+ YAML.stub!(:load_file).and_return([])
56
+ subject.stub!(:get_new_articles).and_return(@articles)
57
+ end
58
+ it 'should add strage' do
59
+ expect{ subject.update }.to change{ subject.get_strage.dup }.from([]).to(@articles)
60
+ end
61
+ end
62
+ end
63
+
64
+ describe '#get_strage' do
65
+ context 'when yaml can load' do
66
+ it 'should load from yaml' do
67
+ YAML.should_receive(:load_file).with(/\/db\/TestClass.yaml$/)
68
+ subject.get_strage
69
+ end
70
+ end
71
+ context 'when yaml can\'t load' do
72
+ before do
73
+ YAML.stub!(:load_file){ raise }
74
+ end
75
+ it 'should load from yaml' do
76
+ except{ subject.get_strage }.to should_raise
77
+ end
78
+ end
79
+ end
80
+
81
+ describe '#build_strage_path' do
82
+ context 'when Testclass' do
83
+ it { subject.build_strage_path.should match /\/db\/TestClass.yaml$/ }
84
+ end
85
+ end
86
+ end
87
+ end
@@ -74,9 +74,7 @@ describe ConsadoleAggregator do
74
74
  before do
75
75
  YAML.stub!(:load_file){ raise }
76
76
  end
77
- it 'should load from yaml' do
78
- subject.get_strage == []
79
- end
77
+ it { expect{ subject.get_strage }.to raise_error }
80
78
  end
81
79
  end
82
80
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: consadole_aggregator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-06-10 00:00:00.000000000 +09:00
12
+ date: 2011-06-24 00:00:00.000000000 +09:00
13
13
  default_executable: consadole_aggregator
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &2166034280 !ruby/object:Gem::Requirement
17
+ requirement: &2162193580 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2166034280
25
+ version_requirements: *2162193580
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: oauth
28
- requirement: &2166057680 !ruby/object:Gem::Requirement
28
+ requirement: &2162192700 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2166057680
36
+ version_requirements: *2162192700
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rubytter
39
- requirement: &2166060080 !ruby/object:Gem::Requirement
39
+ requirement: &2162191980 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2166060080
47
+ version_requirements: *2162191980
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: bundler
50
- requirement: &2166063720 !ruby/object:Gem::Requirement
50
+ requirement: &2162191340 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2166063720
58
+ version_requirements: *2162191340
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rcov
61
- requirement: &2166158020 !ruby/object:Gem::Requirement
61
+ requirement: &2162190520 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *2166158020
69
+ version_requirements: *2162190520
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rspec
72
- requirement: &2166380200 !ruby/object:Gem::Requirement
72
+ requirement: &2162189760 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *2166380200
80
+ version_requirements: *2162189760
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: jeweler
83
- requirement: &2166378600 !ruby/object:Gem::Requirement
83
+ requirement: &2162189100 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,7 +88,7 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *2166378600
91
+ version_requirements: *2162189100
92
92
  description: ! ' It aggregates infomation of ''Consadole Sapporo'' '
93
93
  email: niku@niku.name
94
94
  executables:
@@ -117,6 +117,7 @@ files:
117
117
  - lib/consadole_aggregator/live/timeline.rb
118
118
  - lib/consadole_aggregator/news.rb
119
119
  - log/.gitignore
120
+ - spec/consadole_aggregator/aggregatable_spec.rb
120
121
  - spec/consadole_aggregator/helper_spec.rb
121
122
  - spec/consadole_aggregator/live/timeline_spec.rb
122
123
  - spec/consadole_aggregator/live_spec.rb
@@ -271,7 +272,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
271
272
  version: '0'
272
273
  segments:
273
274
  - 0
274
- hash: -3581637451903569852
275
+ hash: -1076847756677944312
275
276
  required_rubygems_version: !ruby/object:Gem::Requirement
276
277
  none: false
277
278
  requirements: