zonebie-info 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjdjZTE3Y2JjMThkMDcxNjE1OTA3NGRhMWYxNjdkMDViODZkMGM0ZQ==
5
+ data.tar.gz: !binary |-
6
+ MDRlNDVmNDZlZGI0MWNlYjQwOGMyZGMwOWJkYmEzOTlhMzIzNWVmNg==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ OTg3NDM1MGYyYWVlMDJiZmEyMTM1NmU2ZDYwMjQ1M2ZhNGEzNDg5NmVhMmI0
10
+ OTJiZWJjMTUyYzFkMzMxNjMzZmYxMjhmNjcxNTdhODg0OTczYjgwODIyZDhk
11
+ OTVmYTI5MGMwNWRkZWRiYWM5ZWYwYjRmZmNkNjZlZjhmNTRlNWE=
12
+ data.tar.gz: !binary |-
13
+ NGEzMTM4MTBjMTU1MWE5OTlkYjdhYjgzYTY5Yzg3NjFmNjk1OGY4YzkwYWVm
14
+ MzdkMzI5YzNhMmUzOWYyNmYxYWViYjVhMTg1M2E5MTRhYzlmMzNmYjEyMTg3
15
+ ZTJiZTI1Y2M0YmFlZjA0ZTQyNmRmYjQ5MDk3YWE5NzliMmEyZDQ=
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ Gemfile.lock
2
+ *.gem
3
+ /coverage
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --require spec_helper
2
+ --color
data/.rubocop.yml ADDED
@@ -0,0 +1,5 @@
1
+ Documentation:
2
+ Enabled: false
3
+
4
+ Metrics/LineLength:
5
+ Max: 150
data/.travis.yml ADDED
@@ -0,0 +1,19 @@
1
+ language: ruby
2
+ branches:
3
+ only:
4
+ - master
5
+ - /^v[0-9]+\.[0-9]+\.[0-9]+/
6
+ rvm:
7
+ - 2.0.0
8
+ - ruby-head
9
+ - jruby-9.0.1.0
10
+ deploy:
11
+ provider: rubygems
12
+ api_key:
13
+ secure: tWRyrJ81PWGWsmZqhu/D4A3JwCPel9SZO0LO8dgs4P0zLU85SGzF79zm9uTlwbKNLx4Rx4K5SEI4gr3BvDe6i87yj3k1nxK+q8SbPt5iENX0UsTMK+hkmf5MvWEIq450nKQT4QLHkSzTI3mmhYwNcMbNvNIRpzA+Fcoj2KZy2yxlhpFXWD1Jp0rYbbgFev7uITYhC7paf8V6/SUuqV2sNaLoX4MDdy3QuN0cS/EMdOUo++TQSTJuFUQYMQnRs0rl7JgHGl5+NrzXj6slW6XWdBNPrVRoh/nbBrg6JO+2Ysqlji7GYMZ0DwClQpUKHIbRndcM//DJ/qZyFHYdXY9E0AOhKP8IjV9unnPxXf/cL9IAYDh90eXuNyk+qq8olH6GN5GTk8BAlZ75Eu3brpqjzE36Wf/Mro/Tr36LJJ4AyP/9faerHyBYc0c+dkxk6Q+CpMm8mkuDwgM28PHx6WwnzNHgzi0LEeA+PdoDWciGoNAd8sD+N4xYQpqItgLKENeVwzECqngtvXc3/sbbCEHGrUs3nZ4Z9SHxyE9TJEtVFkN0HXm51XcmOu/S4D0zIC6Zq2TUDFDpa1Xhnhl3NYCVqNc4aDqnbRxPZsABGnS7Sc/OFDXjiLplrk/yNbfKWCl/Sm20xDvKffdlcoBF778RBwSLGgSCFHFrD2P08FEsR1g=
14
+ gem: zonebie-info
15
+ on:
16
+ all_branches: true
17
+ rvm: 2.0.0
18
+ tags: true
19
+ repo: tpbowden/zonebie-info
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/README.md ADDED
@@ -0,0 +1,20 @@
1
+ # Zonebie Info [![Build Status](https://travis-ci.org/tpbowden/zonebie-info.svg)](https://travis-ci.org/tpbowden/zonebie-info)
2
+
3
+ Zonebie plugin that prints details of the random timezone where available
4
+
5
+ ## Installation
6
+
7
+ gem "zonebie-info"
8
+
9
+ ## Usage
10
+
11
+ `zonebie-info` depends on Zonebie so all you have to do is replace calls to Zonebie with:
12
+
13
+ require "zonebie/info"
14
+
15
+ Zonebie.set_timezone_with_info
16
+
17
+ Then, after your tests have run, you need to call `Zonebie.print_timezone_info` in the after hook
18
+
19
+ Data is collected in a separate thread so shouldn't slow down your tests by too
20
+ much.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ Dir['tasks/**/*.rake'].each { |f| load f }
2
+
3
+ task default: %i(
4
+ rubocop
5
+ rspec
6
+ )
@@ -0,0 +1,5 @@
1
+ module Zonebie
2
+ module Info
3
+ VERSION = '0.0.5'
4
+ end
5
+ end
@@ -0,0 +1,37 @@
1
+ require 'zonebie'
2
+ require 'wikipedia'
3
+
4
+ module Zonebie
5
+ class << self
6
+ def set_timezone_with_info
7
+ set_random_timezone
8
+ load_from_wikipedia(::Time.zone)
9
+ end
10
+
11
+ def load_from_wikipedia(zone)
12
+ @request = Thread.new do
13
+ download_summary(zone)
14
+ end
15
+ end
16
+
17
+ def print_timezone_info
18
+ case @request
19
+ when nil
20
+ $stderr.puts '', 'Please set the ZONEBIE_INFO environment variable to load data from Wikipedia'
21
+ else
22
+ $stdout.puts '', @request.join.value
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def download_summary(zone)
29
+ text = Wikipedia.find(zone).text
30
+ if text
31
+ text.split("\n").first
32
+ else
33
+ "No information available for #{zone}"
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'zonebie/info'
3
+
4
+ describe '#print_timezone_info' do
5
+ let(:content) { "some wiki info\nsecond paragraph" }
6
+ let(:expected) { "\nsome wiki info\n" }
7
+ let(:page) { double :page }
8
+ let(:out) { StringIO.new }
9
+
10
+ before do
11
+ allow($stdout).to receive(:puts)
12
+ allow(Wikipedia).to receive(:find).and_return page
13
+ allow(page).to receive(:text).and_return content
14
+ ENV['ZONEBIE_INFO'] = 'true'
15
+ Zonebie.set_timezone_with_info
16
+ $stdout = out
17
+ end
18
+
19
+ after do
20
+ $stdout = STDOUT
21
+ end
22
+
23
+ it 'prints info about the time zone to stdout' do
24
+ Zonebie.print_timezone_info
25
+ out.rewind
26
+ expect(out.read).to eq expected
27
+ end
28
+ end
@@ -0,0 +1,2 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
@@ -0,0 +1,86 @@
1
+ require 'spec_helper'
2
+ require 'zonebie/info'
3
+
4
+ describe Zonebie do
5
+ let(:page) { double :page }
6
+
7
+ before do
8
+ allow(Wikipedia).to receive(:find).and_return page
9
+ end
10
+
11
+ describe '.load_from_wikipedia' do
12
+ context 'when there is info on the timezone' do
13
+ let(:expected) do
14
+ 'Some information about a timezone'
15
+ end
16
+
17
+ before do
18
+ allow(page).to receive(:text).and_return "Some information about a timezone\npara 2\n"
19
+ end
20
+
21
+ it 'uses a new thread to request data from wikipedia and returns the first paragraph' do
22
+ result = Zonebie.load_from_wikipedia 'a timezone'
23
+ expect(result.join.value).to eq expected
24
+ end
25
+ end
26
+
27
+ context 'when there is no info on the timezone' do
28
+ let(:expected) do
29
+ 'No information available for a timezone'
30
+ end
31
+
32
+ before do
33
+ allow(page).to receive(:text).and_return nil
34
+ end
35
+
36
+ it 'informs that there was no information' do
37
+ result = Zonebie.load_from_wikipedia 'a timezone'
38
+ expect(result.join.value).to eq expected
39
+ end
40
+ end
41
+ end
42
+
43
+ describe '.print_timezone_info' do
44
+ let(:out) { StringIO.new }
45
+
46
+ context 'when the request is nil' do
47
+ let(:message) do
48
+ 'Please set the ZONEBIE_INFO environment variable to load data from Wikipedia'
49
+ end
50
+
51
+ before do
52
+ Zonebie.instance_variable_set('@request', nil)
53
+ $stderr = out
54
+ end
55
+
56
+ after do
57
+ $stderr = STDERR
58
+ end
59
+
60
+ it 'informs the user to set the ZONEBIE_INFO variable' do
61
+ Zonebie.print_timezone_info
62
+ out.rewind
63
+ expect(out.read).to eq "\n#{message}\n"
64
+ end
65
+ end
66
+
67
+ context 'when the request succeeds' do
68
+ let(:t) { Thread.new { 'hello' } }
69
+
70
+ before do
71
+ Zonebie.instance_variable_set '@request', t
72
+ $stdout = out
73
+ end
74
+
75
+ after do
76
+ $stdout = STDOUT
77
+ end
78
+
79
+ it 'prints the info from wikipedia' do
80
+ Zonebie.print_timezone_info
81
+ out.rewind
82
+ expect(out.read).to eq "\nhello\n"
83
+ end
84
+ end
85
+ end
86
+ end
data/tasks/rspec.rake ADDED
@@ -0,0 +1,3 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new 'rspec'
@@ -0,0 +1,3 @@
1
+ require 'rubocop/rake_task'
2
+
3
+ RuboCop::RakeTask.new
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../lib/zonebie/info/version', __FILE__)
2
+
3
+ Gem::Specification.new do |gem|
4
+ gem.authors = ['Tom Bowden']
5
+ gem.email = ['tom.b1992@gmail.com']
6
+ gem.summary = 'Add info from Wikipedia to your Zonebie output'
7
+ gem.description = 'Downloads the first paragraph from wikipedia about the randomly set timezone'
8
+ gem.homepage = 'https://github.com/tpbowden/zonebie-info'
9
+ gem.license = 'MIT'
10
+
11
+ gem.files = `git ls-files`.split("\n")
12
+ gem.name = 'zonebie-info'
13
+ gem.require_paths = ['lib']
14
+ gem.version = Zonebie::Info::VERSION
15
+
16
+ gem.add_dependency 'zonebie', '~> 0.5', '>= 0.5.1'
17
+ gem.add_dependency 'wikipedia-client', '~> 1.5', '>= 1.5.0'
18
+
19
+ gem.add_development_dependency 'activesupport', '~> 4.2', '>= 4.2.4'
20
+ gem.add_development_dependency 'rake', '~> 10.4', '>= 10.4.2'
21
+ gem.add_development_dependency 'rspec', '~> 3.0', '>= 3.0.0'
22
+ gem.add_development_dependency 'rubocop', '~> 0.34', '>= 0.34.1'
23
+ gem.add_development_dependency 'simplecov', '~> 0.10', '>= 0.10.0'
24
+ end
metadata ADDED
@@ -0,0 +1,199 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zonebie-info
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ platform: ruby
6
+ authors:
7
+ - Tom Bowden
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: zonebie
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 0.5.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.5'
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.5.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: wikipedia-client
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: '1.5'
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: 1.5.0
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ~>
48
+ - !ruby/object:Gem::Version
49
+ version: '1.5'
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: 1.5.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: activesupport
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ version: '4.2'
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: 4.2.4
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '4.2'
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: 4.2.4
73
+ - !ruby/object:Gem::Dependency
74
+ name: rake
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ~>
78
+ - !ruby/object:Gem::Version
79
+ version: '10.4'
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: 10.4.2
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '10.4'
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: 10.4.2
93
+ - !ruby/object:Gem::Dependency
94
+ name: rspec
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: '3.0'
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: 3.0.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '3.0'
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: 3.0.0
113
+ - !ruby/object:Gem::Dependency
114
+ name: rubocop
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ~>
118
+ - !ruby/object:Gem::Version
119
+ version: '0.34'
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: 0.34.1
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ~>
128
+ - !ruby/object:Gem::Version
129
+ version: '0.34'
130
+ - - ! '>='
131
+ - !ruby/object:Gem::Version
132
+ version: 0.34.1
133
+ - !ruby/object:Gem::Dependency
134
+ name: simplecov
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ~>
138
+ - !ruby/object:Gem::Version
139
+ version: '0.10'
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: 0.10.0
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: '0.10'
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: 0.10.0
153
+ description: Downloads the first paragraph from wikipedia about the randomly set timezone
154
+ email:
155
+ - tom.b1992@gmail.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - .gitignore
161
+ - .rspec
162
+ - .rubocop.yml
163
+ - .travis.yml
164
+ - Gemfile
165
+ - README.md
166
+ - Rakefile
167
+ - lib/zonebie/info.rb
168
+ - lib/zonebie/info/version.rb
169
+ - spec/integration/info_spec.rb
170
+ - spec/spec_helper.rb
171
+ - spec/zonebie/info_spec.rb
172
+ - tasks/rspec.rake
173
+ - tasks/rubocop.rake
174
+ - zonebie-info.gemspec
175
+ homepage: https://github.com/tpbowden/zonebie-info
176
+ licenses:
177
+ - MIT
178
+ metadata: {}
179
+ post_install_message:
180
+ rdoc_options: []
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ requirements: []
194
+ rubyforge_project:
195
+ rubygems_version: 2.4.5
196
+ signing_key:
197
+ specification_version: 4
198
+ summary: Add info from Wikipedia to your Zonebie output
199
+ test_files: []