apple_system_status 0.3.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c29f8424f49386fa11cc6d665917e902121067e1
4
- data.tar.gz: 4c01f9993c208734539d7d5d05bac76564663cd0
2
+ SHA256:
3
+ metadata.gz: f37e0bc20f096a7bc87993a4fede84c3a65179ce45eeecdef66366247e8ded24
4
+ data.tar.gz: '051072148ed47b0d99ef85b8f3dabfa7e7729ea380e7c00ce636811a3e7b0428'
5
5
  SHA512:
6
- metadata.gz: baf052b5f198ed5a66be7afbeb78b099547f8322a4c71a59c8930bb60263c44aec05070d3a9c9b2b12f7594c660cf5ff4db8c67421bca9872be0e28e07f941ae
7
- data.tar.gz: ff6c33d4f987f31dcc0b982ef0e2509aa35c3548da75c299e72d484326751e4f6c6915d1ac1b203c6d6002ad04d6d3002e0569c2e93359da9f0cd7ad0e4450c9
6
+ metadata.gz: a94a23d2049243bd3bfe2f283a15c1bd46749a22751f901554574319b640ee36ff567378584a36e6f11b1212f00bb3fd93be7d809933e18cbf8cb92c1bb94a07
7
+ data.tar.gz: b0398313dbf3df6fef23a1361f43a6e5624e50c67043c0475522fb52b79d67080c74a99a895de6e98eaa7cfe3034e8fa4bf422f544055d539ea5b9aeea1e6986
@@ -0,0 +1,133 @@
1
+ # Ruby CircleCI 2.0 configuration file
2
+ #
3
+ # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
+ #
5
+ version: 2
6
+
7
+ environment: &environment
8
+ LANG: en_US.UTF-8
9
+ LANGUAGE: en_US.UTF-8
10
+ LC_ALL: C.UTF-8
11
+
12
+ BUNDLE_PATH: vendor/bundle
13
+ BUNDLE_JOBS: 4
14
+ CODECLIMATE_REPO_TOKEN: 89b665462d69ce4c873ee8165d496c4a97b9afaaf48e375c1bc3200e4b45b1e7
15
+
16
+ default: &default
17
+ docker:
18
+ - image: circleci/ruby
19
+ environment:
20
+ <<: *environment
21
+
22
+ working_directory: ~/app
23
+
24
+ restore_repo_cache_option: &restore_repo_cache_option
25
+ key: v1-repo-{{ .Environment.CIRCLE_SHA1 }}
26
+
27
+ save_repo_cache_option: &save_repo_cache_option
28
+ key: v1-repo-{{ .Environment.CIRCLE_SHA1 }}
29
+ paths:
30
+ - ~/app
31
+
32
+ restore_bundle_cache_option: &restore_bundle_cache_option
33
+ keys:
34
+ - v1-bundle-{{ .Environment.CIRCLE_JOB }}-{{ epoch }}
35
+ - v1-bundle-{{ .Environment.CIRCLE_JOB }}
36
+
37
+ save_bundle_cache_option: &save_bundle_cache_option
38
+ key: v1-bundle-{{ .Environment.CIRCLE_JOB }}-{{ epoch }}
39
+ paths:
40
+ - ~/app/vendor/bundle
41
+ - ~/app/Gemfile.lock
42
+
43
+ rspec_steps: &rspec_steps
44
+ - restore_cache:
45
+ <<: *restore_repo_cache_option
46
+ - restore_cache:
47
+ <<: *restore_bundle_cache_option
48
+ - run: ./.circleci/setup.sh
49
+ - save_cache:
50
+ <<: *save_bundle_cache_option
51
+
52
+ - run: bundle exec rspec
53
+ - run: bundle exec codeclimate-test-reporter
54
+
55
+ build_jobs: &build_jobs
56
+ - checkout_code
57
+ - ruby:2.2:
58
+ requires:
59
+ - checkout_code
60
+ - ruby:2.3:
61
+ requires:
62
+ - checkout_code
63
+ - ruby:2.4:
64
+ requires:
65
+ - checkout_code
66
+ - ruby:2.5:
67
+ requires:
68
+ - checkout_code
69
+
70
+ jobs:
71
+ checkout_code:
72
+ <<: *default
73
+
74
+ steps:
75
+ - checkout
76
+
77
+ - save_cache:
78
+ <<: *save_repo_cache_option
79
+
80
+ ruby:2.2:
81
+ <<: *default
82
+
83
+ docker:
84
+ - image: circleci/ruby:2.2-node-browsers
85
+ environment:
86
+ <<: *environment
87
+
88
+ steps: *rspec_steps
89
+
90
+ ruby:2.3:
91
+ <<: *default
92
+
93
+ docker:
94
+ - image: circleci/ruby:2.3-node-browsers
95
+ environment:
96
+ <<: *environment
97
+
98
+ steps: *rspec_steps
99
+
100
+ ruby:2.4:
101
+ <<: *default
102
+
103
+ docker:
104
+ - image: circleci/ruby:2.4-node-browsers
105
+ environment:
106
+ <<: *environment
107
+
108
+ steps: *rspec_steps
109
+
110
+ ruby:2.5:
111
+ <<: *default
112
+
113
+ docker:
114
+ - image: circleci/ruby:2.5-node-browsers
115
+ environment:
116
+ <<: *environment
117
+
118
+ steps: *rspec_steps
119
+
120
+ workflows:
121
+ version: 2
122
+
123
+ build:
124
+ jobs: *build_jobs
125
+
126
+ weekly_build:
127
+ triggers:
128
+ - schedule:
129
+ cron: "00 19 * * 5" # JST 4:00 (Sat)
130
+ filters:
131
+ branches:
132
+ only: master
133
+ jobs: *build_jobs
@@ -0,0 +1,8 @@
1
+ #!/bin/bash -xe
2
+
3
+ ruby --version
4
+ bundle --version
5
+ gem --version
6
+
7
+ bundle check || bundle update
8
+ bundle clean
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.3.2](https://github.com/sue445/apple_system_status/tree/v0.3.2) (2017-08-26)
4
+ [Full Changelog](https://github.com/sue445/apple_system_status/compare/v0.3.1...v0.3.2)
5
+
6
+ **Merged pull requests:**
7
+
8
+ - Fixed: title including description [\#18](https://github.com/sue445/apple_system_status/pull/18) ([sue445](https://github.com/sue445))
9
+
3
10
  ## [v0.3.1](https://github.com/sue445/apple_system_status/tree/v0.3.1) (2017-07-06)
4
11
  [Full Changelog](https://github.com/sue445/apple_system_status/compare/v0.3.0...v0.3.1)
5
12
 
data/Gemfile CHANGED
@@ -4,14 +4,6 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.2.2")
7
- # NOTE: activesupport 5.x supports only ruby 2.2.2+
8
- gem "activesupport", ">= 4.0.0", "< 5.0.0"
9
-
10
7
  # NOTE: rack 2.x supports only ruby 2.2.2+
11
8
  gem "rack", "< 2.0.0"
12
9
  end
13
-
14
- if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.2.0")
15
- # NOTE: byebug 9.1.0+ requires ruby 2.2.0+
16
- gem "byebug", "< 9.1.0"
17
- end
data/README.md CHANGED
@@ -3,11 +3,10 @@
3
3
  [Apple System Status](https://www.apple.com/support/systemstatus/) scraping library
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/apple_system_status.svg)](http://badge.fury.io/rb/apple_system_status)
6
- [![Build Status](https://travis-ci.org/sue445/apple_system_status.svg?branch=master)](https://travis-ci.org/sue445/apple_system_status)
6
+ [![CircleCI](https://circleci.com/gh/sue445/apple_system_status/tree/master.svg?style=svg)](https://circleci.com/gh/sue445/apple_system_status/tree/master)
7
7
  [![Code Climate](https://codeclimate.com/github/sue445/apple_system_status/badges/gpa.svg)](https://codeclimate.com/github/sue445/apple_system_status)
8
8
  [![Test Coverage](https://codeclimate.com/github/sue445/apple_system_status/badges/coverage.svg)](https://codeclimate.com/github/sue445/apple_system_status/coverage)
9
9
  [![Coverage Status](https://coveralls.io/repos/sue445/apple_system_status/badge.svg?branch=master&service=github)](https://coveralls.io/github/sue445/apple_system_status?branch=master)
10
- [![Dependency Status](https://gemnasium.com/sue445/apple_system_status.svg)](https://gemnasium.com/sue445/apple_system_status)
11
10
 
12
11
  ## Requirements
13
12
  * Ruby 2.1+
@@ -14,6 +14,8 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/sue445/apple_system_status"
15
15
  spec.license = "MIT"
16
16
 
17
+ spec.required_ruby_version = ">= 2.2"
18
+
17
19
  # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
18
20
  # delete this section to allow pushing this gem to any host.
19
21
  if spec.respond_to?(:metadata)
@@ -27,9 +29,8 @@ Gem::Specification.new do |spec|
27
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
30
  spec.require_paths = ["lib"]
29
31
 
30
- spec.add_dependency "activesupport"
31
32
  spec.add_dependency "capybara"
32
- spec.add_dependency "poltergeist"
33
+ spec.add_dependency "selenium-webdriver"
33
34
  spec.add_dependency "thor"
34
35
 
35
36
  spec.add_development_dependency "bundler"
@@ -1,7 +1,6 @@
1
1
  module AppleSystemStatus
2
2
  require "capybara"
3
- require 'capybara/poltergeist'
4
- require "active_support/core_ext/object/blank"
3
+ require "selenium-webdriver"
5
4
 
6
5
  class Crawler
7
6
  USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36"
@@ -9,11 +8,24 @@ module AppleSystemStatus
9
8
  MAX_RETRY_COUNT = 5
10
9
 
11
10
  def initialize
12
- Capybara.register_driver :poltergeist do |app|
13
- Capybara::Poltergeist::Driver.new(app, js_errors: false, window_size: [1280, 800])
11
+ Capybara.register_driver :chrome_headless do |app|
12
+ client = Selenium::WebDriver::Remote::Http::Default.new
13
+ client.read_timeout = 120
14
+
15
+ capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
16
+ chromeOptions: {
17
+ args: ["headless", "disable-gpu", "window-size=1280,800", "no-sandbox", "user-agent=#{USER_AGENT}"]
18
+ }
19
+ )
20
+
21
+ Capybara::Selenium::Driver.new(
22
+ app,
23
+ browser: :chrome,
24
+ desired_capabilities: capabilities,
25
+ http_client: client,
26
+ )
14
27
  end
15
- @session = Capybara::Session.new(:poltergeist)
16
- @session.driver.headers = { "User-Agent" => USER_AGENT }
28
+ @session = Capybara::Session.new(:chrome_headless)
17
29
  end
18
30
 
19
31
  def quit!
@@ -53,7 +65,7 @@ module AppleSystemStatus
53
65
 
54
66
  raise "Not found services" if response[:services].empty?
55
67
 
56
- unless title.blank?
68
+ unless self.class.blank_string?(title)
57
69
  response[:services].select! { |service| service[:title] == title }
58
70
  end
59
71
 
@@ -63,7 +75,7 @@ module AppleSystemStatus
63
75
  end
64
76
 
65
77
  def apple_url(country)
66
- if country.blank? || country == "us"
78
+ if self.class.blank_string?(country) || country == "us"
67
79
  "https://www.apple.com/support/systemstatus/"
68
80
  else
69
81
  "https://www.apple.com/#{country}/support/systemstatus/"
@@ -89,6 +101,11 @@ module AppleSystemStatus
89
101
  crawler.quit!
90
102
  end
91
103
 
104
+ def self.blank_string?(str)
105
+ return true unless str
106
+ str.strip.empty?
107
+ end
108
+
92
109
  private
93
110
 
94
111
  def fetch_services
@@ -1,3 +1,3 @@
1
1
  module AppleSystemStatus
2
- VERSION = "0.3.2"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apple_system_status
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-26 00:00:00.000000000 Z
11
+ date: 2018-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: activesupport
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: capybara
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +25,7 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: poltergeist
28
+ name: selenium-webdriver
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
@@ -200,10 +186,11 @@ executables:
200
186
  extensions: []
201
187
  extra_rdoc_files: []
202
188
  files:
189
+ - ".circleci/config.yml"
190
+ - ".circleci/setup.sh"
203
191
  - ".coveralls.yml"
204
192
  - ".gitignore"
205
193
  - ".rspec"
206
- - ".travis.yml"
207
194
  - ".yardopts"
208
195
  - CHANGELOG.md
209
196
  - Gemfile
@@ -231,7 +218,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
231
218
  requirements:
232
219
  - - ">="
233
220
  - !ruby/object:Gem::Version
234
- version: '0'
221
+ version: '2.2'
235
222
  required_rubygems_version: !ruby/object:Gem::Requirement
236
223
  requirements:
237
224
  - - ">="
@@ -239,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
226
  version: '0'
240
227
  requirements: []
241
228
  rubyforge_project:
242
- rubygems_version: 2.6.11
229
+ rubygems_version: 2.7.6
243
230
  signing_key:
244
231
  specification_version: 4
245
232
  summary: Apple System Status scraping library
data/.travis.yml DELETED
@@ -1,31 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1
4
- - 2.2.2
5
- - 2.3.1
6
- - 2.4.0
7
- - ruby-head
8
- before_script:
9
- - export CI=true
10
- - export CODECLIMATE_REPO_TOKEN=89b665462d69ce4c873ee8165d496c4a97b9afaaf48e375c1bc3200e4b45b1e7
11
- - mkdir travis-phantomjs
12
- - wget https://assets.membergetmember.co/software/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
13
- - tar -xvf $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis-phantomjs
14
- - export PATH=$PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH
15
- - phantomjs --version
16
- before_install: gem install bundler -v 1.10.5
17
- script:
18
- - bundle exec rspec
19
- - bundle exec codeclimate-test-reporter
20
- branches:
21
- only:
22
- - master
23
- notifications:
24
- email: false
25
- slack:
26
- secure: wPazrrt03q4/4YEWTGejm2yB36hROtpeJKSojv4cE1gRQarQceyMZdOZU4gvJ7DP5ehGSikp+PvdhUj8ZGmUoLcaQQu89eCxa5BGf3sofYD2EOZJe33w+di+L++41/cFp6XJ9XRPxbmVjpmPzl28yq2nfzgdI90qhztcswojGyT3Pkj0STB4qu6T+Kmvd5o4vlWUsZlKiv20sAav5/kL86/K4gwakmpyxPYMafG4WcVGbXoHovOlwdHXdml3Ldfuq9IQ35tu0xJ23o6RoPHl38klOgQQj4k7vbtowWmE5UWZFzWkPpH9GDYtS3ML4yCcM7QLj8nEMVWj+QlTsICmKgKfvSpcs9jQtLQEykDS/H43dTu3gyLuGPcbKbR08cXxkOq6lAAuVV7avNkJb5yJV8Nj+1PWksbBbTNwURamjogRTejxX1dTTUsTQITrrCJyKCOM8LvigKTBmpkEiBR6wDZqZoAx6HXEu0O8G9XpT7aI3pJ85/RCxQdYDe193olcg25TQNjlrSaFl6M1VCMB3jzNcCHZkmiM9KnTRjTMSn/5FUxzAnGeaHvxff6wMffcPKS3E/j+2sXkdpsL1Kwtj6b7ejpL/Pbn6P926iWx8mUmH0xC04M8nQgDE1aorMuqHSSH0EPUUMGBdOPvXOjR2CEtEYgqH/ymDPsT/dUub1M=
27
- matrix:
28
- allow_failures:
29
- - rvm: ruby-head
30
- sudo: false
31
- cache: bundler