zonebie-info 0.0.5
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.
- checksums.yaml +15 -0
- data/.gitignore +3 -0
- data/.rspec +2 -0
- data/.rubocop.yml +5 -0
- data/.travis.yml +19 -0
- data/Gemfile +3 -0
- data/README.md +20 -0
- data/Rakefile +6 -0
- data/lib/zonebie/info/version.rb +5 -0
- data/lib/zonebie/info.rb +37 -0
- data/spec/integration/info_spec.rb +28 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/zonebie/info_spec.rb +86 -0
- data/tasks/rspec.rake +3 -0
- data/tasks/rubocop.rake +3 -0
- data/zonebie-info.gemspec +24 -0
- metadata +199 -0
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
data/.rspec
ADDED
data/.rubocop.yml
ADDED
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
data/README.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# Zonebie Info [](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
data/lib/zonebie/info.rb
ADDED
@@ -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
|
data/spec/spec_helper.rb
ADDED
@@ -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
data/tasks/rubocop.rake
ADDED
@@ -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: []
|