kinchan 0.2.0 → 0.3.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
2
  SHA256:
3
- metadata.gz: 93bc12b281b802a4d65f633687ea807eaa65fbb9002f1c4a7600a98ce39549e2
4
- data.tar.gz: 6f9ff2796e4462c4f6d918dd602a0a348fde0783bcb2395a7832bb787df9b976
3
+ metadata.gz: 626e1d1315fb8f5ef0c3839578a2e504c15088d57c5f315d49df29db74f99ce0
4
+ data.tar.gz: 8fccb6524b8198571bc42bc4d1f2dedb7d4fe12d458cd35fe82df81aab73fdef
5
5
  SHA512:
6
- metadata.gz: 6951b48f5e47c2934295b49c7126d58b06f30970c3e59655f5b44ca5be7d916a5a2d3153994d9b874b3ae9a134e4c4cc2032f8ca057a1f614179b54cc181cbbf
7
- data.tar.gz: ea72cab859176ca0c0d5cc16aa9c890c43cd33e68e4c36075bd7030ccf3d12f9345c22f549e48ba1ba59a5331141574f6416951b32a5908b82b5225fc4f6f01b
6
+ metadata.gz: 4f831b30b71aa4bb11cfeb21ab7eb1e323f60ecc14b610f6c069e7941ff86bf25f0e3d18d8a8b2abf6c255eccd2d0afa6c31db2a90f7435c35eea0ad17fa003f
7
+ data.tar.gz: ed5803e8ab161e0e964835ab5959094098b34b1e47df86412d5a38e1ac03fee3a866c6f6e9eca119c15dd05cccf34736a3fb2553a1fe7f50e0496d4eca7f75f7
@@ -1,34 +1,88 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kinchan (0.1.0)
4
+ kinchan (0.3.0)
5
5
  require_all (~> 3.0.0)
6
6
  selenium-webdriver (~> 3.142.6)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
+ ast (2.4.1)
12
+ backport (1.1.2)
13
+ benchmark (0.1.0)
11
14
  childprocess (3.0.0)
12
- diff-lcs (1.3)
15
+ diff-lcs (1.4.4)
16
+ e2mmap (0.1.0)
17
+ jaro_winkler (1.5.4)
18
+ kwalify (0.7.2)
19
+ maruku (0.7.3)
20
+ mini_portile2 (2.4.0)
21
+ nokogiri (1.10.10)
22
+ mini_portile2 (~> 2.4.0)
23
+ parallel (1.19.2)
24
+ parser (2.7.2.0)
25
+ ast (~> 2.4.1)
26
+ psych (3.1.0)
27
+ rainbow (3.0.0)
13
28
  rake (13.0.1)
29
+ reek (6.0.1)
30
+ kwalify (~> 0.7.0)
31
+ parser (>= 2.5.0.0, < 2.8, != 2.5.1.1)
32
+ psych (~> 3.1.0)
33
+ rainbow (>= 2.0, < 4.0)
34
+ regexp_parser (1.8.1)
14
35
  require_all (3.0.0)
36
+ reverse_markdown (2.0.0)
37
+ nokogiri
38
+ rexml (3.2.4)
15
39
  rspec (3.9.0)
16
40
  rspec-core (~> 3.9.0)
17
41
  rspec-expectations (~> 3.9.0)
18
42
  rspec-mocks (~> 3.9.0)
19
- rspec-core (3.9.1)
20
- rspec-support (~> 3.9.1)
21
- rspec-expectations (3.9.0)
43
+ rspec-core (3.9.3)
44
+ rspec-support (~> 3.9.3)
45
+ rspec-expectations (3.9.2)
22
46
  diff-lcs (>= 1.2.0, < 2.0)
23
47
  rspec-support (~> 3.9.0)
24
48
  rspec-mocks (3.9.1)
25
49
  diff-lcs (>= 1.2.0, < 2.0)
26
50
  rspec-support (~> 3.9.0)
27
- rspec-support (3.9.2)
28
- rubyzip (2.0.0)
51
+ rspec-support (3.9.3)
52
+ rubocop (0.93.0)
53
+ parallel (~> 1.10)
54
+ parser (>= 2.7.1.5)
55
+ rainbow (>= 2.2.2, < 4.0)
56
+ regexp_parser (>= 1.8)
57
+ rexml
58
+ rubocop-ast (>= 0.6.0)
59
+ ruby-progressbar (~> 1.7)
60
+ unicode-display_width (>= 1.4.0, < 2.0)
61
+ rubocop-ast (0.7.1)
62
+ parser (>= 2.7.1.5)
63
+ ruby-progressbar (1.10.1)
64
+ rubyzip (2.3.0)
29
65
  selenium-webdriver (3.142.7)
30
66
  childprocess (>= 0.5, < 4.0)
31
67
  rubyzip (>= 1.2.2)
68
+ solargraph (0.39.17)
69
+ backport (~> 1.1)
70
+ benchmark
71
+ bundler (>= 1.17.2)
72
+ e2mmap
73
+ jaro_winkler (~> 1.5)
74
+ maruku (~> 0.7, >= 0.7.3)
75
+ nokogiri (~> 1.9, >= 1.9.1)
76
+ parser (~> 2.3)
77
+ reverse_markdown (>= 1.0.5, < 3)
78
+ rubocop (~> 0.52)
79
+ thor (~> 1.0)
80
+ tilt (~> 2.0)
81
+ yard (~> 0.9, >= 0.9.24)
82
+ thor (1.0.1)
83
+ tilt (2.0.10)
84
+ unicode-display_width (1.7.0)
85
+ yard (0.9.25)
32
86
 
33
87
  PLATFORMS
34
88
  ruby
@@ -36,7 +90,10 @@ PLATFORMS
36
90
  DEPENDENCIES
37
91
  kinchan!
38
92
  rake (~> 13.0)
93
+ reek (~> 6.0)
39
94
  rspec (~> 3.9.0)
95
+ rubocop (~> 0.9)
96
+ solargraph
40
97
 
41
98
  BUNDLED WITH
42
- 2.1.2
99
+ 2.1.4
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # [Kinchan](https://itazuranakiss.fandom.com/wiki/Kinnosuke_Ikezawa)
2
2
  ## Composable browser automation with Ruby.
3
+ [![Gem Version](https://badge.fury.io/rb/kinchan.svg)](https://badge.fury.io/rb/kinchan)
3
4
 
4
5
  ### Requirements
5
6
 
@@ -29,4 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_runtime_dependency 'require_all', ['~> 3.0.0']
30
30
 
31
31
  spec.add_development_dependency 'rspec', ['~> 3.9.0']
32
+ spec.add_development_dependency 'reek', ['~> 6.0']
33
+ spec.add_development_dependency 'rubocop', ['~> 0.9']
34
+ spec.add_development_dependency 'solargraph'
32
35
  end
@@ -4,6 +4,7 @@ require 'kinchan/version'
4
4
  require 'selenium-webdriver'
5
5
  require 'require_all'
6
6
 
7
+ # Top-level module contains all the juicy bits for the gem
7
8
  module Kinchan
8
9
  @browser = :chrome
9
10
  @browser_options = nil
@@ -12,18 +13,24 @@ module Kinchan
12
13
  @browser
13
14
  end
14
15
 
15
- def self.browser= b
16
- @browser = b
16
+ def self.browser=(browser)
17
+ @browser = browser
17
18
  end
18
19
 
19
20
  def self.browser_options
20
21
  @browser_options
21
22
  end
22
23
 
23
- def self.browser_options= bo
24
- @browser_options = bo
24
+ def self.browser_options=(browser_options)
25
+ @browser_options = browser_options
25
26
  end
26
27
 
28
+ def self.restore_defaults
29
+ @browser = :chrome
30
+ @browser_options = nil
31
+ end
32
+
33
+ # A single unit of automation in Kinchan
27
34
  class Task
28
35
  singleton_class.send(:attr_accessor, :browser)
29
36
  singleton_class.send(:attr_accessor, :browser_options)
@@ -35,7 +42,7 @@ module Kinchan
35
42
  @after_tasks = []
36
43
  @options = options
37
44
 
38
- Task.start_browser
45
+ Task.start_browser unless defined?(@@browser_webdriver)
39
46
  end
40
47
 
41
48
  def self.inherited(subclass)
@@ -47,33 +54,47 @@ module Kinchan
47
54
  end
48
55
 
49
56
  def self.start_browser
50
- if Kinchan.browser_options.nil?
51
- @@browser_webdriver = Selenium::WebDriver.for Kinchan.browser
52
- else
53
- @@browser_webdriver = Selenium::WebDriver.for(Kinchan.browser, options: Kinchan.browser_options)
54
- end
57
+ browser = Kinchan.browser
58
+ browser_options = Kinchan.browser_options
59
+
60
+ @@browser_webdriver = if browser_options.nil?
61
+ Selenium::WebDriver.for browser
62
+ else
63
+ Selenium::WebDriver.for(browser, options: browser_options)
64
+ end
55
65
  end
56
66
 
57
67
  def self.restart_browser
58
- unless @@browser_webdriver.nil?
59
- @@browser_webdriver.close
60
- @@browser_webdriver = Selenium::WebDriver.for Kinchan.browser
61
- end
68
+ return if @@browser_webdriver.nil?
69
+
70
+ @@browser_webdriver.close
71
+ @@browser_webdriver = Selenium::WebDriver.for Kinchan.browser
62
72
  end
63
73
 
64
- def execute(browser); end
74
+ def execute(_browser); end
65
75
 
66
76
  def run
67
- @before_tasks.each do |task_hash|
68
- task = Task.find_task(task_hash[:task])
69
- task.new(**task_hash[:options]).public_send('run') unless task.nil?
70
- end
71
-
77
+ run_tasks(@before_tasks)
72
78
  execute(@@browser_webdriver)
79
+ run_tasks(@after_tasks)
80
+ end
81
+
82
+ private
83
+
84
+ def get_task(task_hash)
85
+ task = Task.find_task(task_hash[:task])
86
+ options = task_hash[:options]
87
+
88
+ if options.nil?
89
+ task.new
90
+ else
91
+ task.new(**options)
92
+ end
93
+ end
73
94
 
74
- @after_tasks.each do |task_hash|
75
- task = Task.find_task(task_hash[:task])
76
- task.new(**task_hash[:options]).public_send('run') unless task.nil?
95
+ def run_tasks(tasks)
96
+ tasks.each do |task_hash|
97
+ get_task(task_hash)&.public_send('run')
77
98
  end
78
99
  end
79
100
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kinchan
4
- VERSION = '0.2.0'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kinchan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle McGough
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-11 00:00:00.000000000 Z
11
+ date: 2020-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -52,6 +52,48 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 3.9.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: reek
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '6.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '6.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: solargraph
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
55
97
  description: Composable browser automation with Ruby. Create, compose, and run tasks
56
98
  that automate the browser with Selenium.
57
99
  email: