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 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: []