scrap_kit 0.1.2 → 0.1.7

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: f6878a6c8316fe369d5db4422d09a532fc665a8d256e326c200fca2a2efe7994
4
- data.tar.gz: c764d98eae73e80fc3f1027844bce80a8842ec0979786727fad37cad21224e42
3
+ metadata.gz: 9b98409a1148b80bc3f7a908779d3881f36fe3f8a8de2e1726135ea6488e24b2
4
+ data.tar.gz: a5b66ae5611527e93bee6167dfd4d365822f4122258054c781b09a290644ad80
5
5
  SHA512:
6
- metadata.gz: d9fa5af8f21411180b93979ebe6f4a61109bd1b33788606d4517312a2411a2b8d0c0f24c85e9067215efdbe16317b7ec8ce8e650f3ac5d359a6f04290cd28510
7
- data.tar.gz: 756ec242ad61959651c28011c60f8acf065e82493d439eb67b89639128a20d7ece4bfcaec535291573236a6dc98cd5bb655f2d94d996c79415cd107413f52ecf
6
+ metadata.gz: 863a0c56ada01470ff55e655c8a1dfa2159d05aa3da5cf3107c7a48509ee31e292bd383955d4e45c2b5f1962f7ea659b5d893c6cd5a8d63fd4d72000b975f137
7
+ data.tar.gz: 9a1345ee740fbfcab5b984be2ecb9c6b57a23a715bd19e7cc77c002cc4e0a4115cb9eeed52c6cd1672f4ff7b6eb9c7082d4bc4173b5c5d3e37f2fa17db2bfce8
@@ -0,0 +1,20 @@
1
+ name: Run tests
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ test:
7
+
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - uses: actions/checkout@v1
12
+ - name: Setup Ruby
13
+ uses: actions/setup-ruby@v1
14
+ with:
15
+ ruby-version: '2.7.1'
16
+ - name: Build and run tests
17
+ run: |
18
+ gem install bundler
19
+ bundle update --conservative --jobs 4 --retry 3
20
+ bundle exec rake spec
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.7] 2020-08-28
4
+ - Match selector condition by regexp or exact value
5
+
6
+ ## [0.1.6] 2020-08-28
7
+ - Update activesupport requirement from = 6.0.2.1 to ~> 6.0
8
+ - Fix bug when matching selector condition
9
+
10
+ ## [0.1.5] 2020-08-08
11
+
12
+ ### Changed/Added
13
+ - Add `webdrivers` as dependency
14
+
15
+ ## [0.1.4] 2020-07-12
16
+
17
+ ### Changed/Added
18
+ - Add support for `<input />` elements
19
+
20
+ ## [0.1.3] 2020-06-18
21
+
22
+ ### Changed/Added
23
+ - Moved development dependencies as dependencies
24
+
3
25
  ## [0.1.2] 2020-06-18
4
26
 
5
27
  ### Changed/Added
@@ -9,6 +31,7 @@
9
31
 
10
32
  ### Changed/Added
11
33
  - Update activesupport requirement from = 6.0.2.1 to = 6.0.3.1
34
+ - Update rake requirement from ~> 10.0 to ~> 13.0
12
35
 
13
36
  ## [0.1.0] 2020-02-09
14
37
 
@@ -1,25 +1,31 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- scrap_kit (0.1.2)
4
+ scrap_kit (0.1.7)
5
+ activesupport (~> 6.0)
6
+ watir (~> 6.16.5)
7
+ webdrivers (~> 4.0)
5
8
 
6
9
  GEM
7
10
  remote: https://rubygems.org/
8
11
  specs:
9
- activesupport (6.0.3.1)
12
+ activesupport (6.0.3.2)
10
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
11
14
  i18n (>= 0.7, < 2)
12
15
  minitest (~> 5.1)
13
16
  tzinfo (~> 1.1)
14
17
  zeitwerk (~> 2.2, >= 2.2.2)
15
18
  childprocess (3.0.0)
16
- concurrent-ruby (1.1.6)
19
+ concurrent-ruby (1.1.7)
17
20
  diff-lcs (1.3)
18
- i18n (1.8.2)
21
+ i18n (1.8.5)
19
22
  concurrent-ruby (~> 1.0)
23
+ mini_portile2 (2.4.0)
20
24
  minitest (5.14.1)
25
+ nokogiri (1.10.10)
26
+ mini_portile2 (~> 2.4.0)
21
27
  rake (13.0.1)
22
- regexp_parser (1.6.0)
28
+ regexp_parser (1.7.1)
23
29
  rspec (3.9.0)
24
30
  rspec-core (~> 3.9.0)
25
31
  rspec-expectations (~> 3.9.0)
@@ -33,7 +39,7 @@ GEM
33
39
  diff-lcs (>= 1.2.0, < 2.0)
34
40
  rspec-support (~> 3.9.0)
35
41
  rspec-support (3.9.2)
36
- rubyzip (2.2.0)
42
+ rubyzip (2.3.0)
37
43
  selenium-webdriver (3.142.7)
38
44
  childprocess (>= 0.5, < 4.0)
39
45
  rubyzip (>= 1.2.2)
@@ -43,18 +49,20 @@ GEM
43
49
  watir (6.16.5)
44
50
  regexp_parser (~> 1.2)
45
51
  selenium-webdriver (~> 3.6)
46
- zeitwerk (2.3.0)
52
+ webdrivers (4.4.1)
53
+ nokogiri (~> 1.6)
54
+ rubyzip (>= 1.3.0)
55
+ selenium-webdriver (>= 3.0, < 4.0)
56
+ zeitwerk (2.4.0)
47
57
 
48
58
  PLATFORMS
49
59
  ruby
50
60
 
51
61
  DEPENDENCIES
52
- activesupport (= 6.0.3.1)
53
62
  bundler (~> 2.0)
54
63
  rake (~> 13.0)
55
64
  rspec (~> 3.0)
56
65
  scrap_kit!
57
- watir (~> 6.16.5)
58
66
 
59
67
  BUNDLED WITH
60
68
  2.1.4
@@ -1,4 +1,5 @@
1
1
  require "active_support/core_ext/hash"
2
+ require "webdrivers/chromedriver"
2
3
  require "watir"
3
4
 
4
5
  module ScrapKit
@@ -44,17 +45,28 @@ module ScrapKit
44
45
  end
45
46
 
46
47
  elements.filter do |element|
47
- condition_key = condition.keys[0].to_s
48
- condition_value = condition.values[0]
48
+ condition_key = condition.keys.first.to_s
49
+ condition_value = condition.values.first
49
50
  found_element = element.element(css: condition_key)
50
- found_element&.text_content&.match(condition_value)
51
+ extracted_value = extract_value_from_element(found_element)
52
+ extracted_value.match(condition_value) || extracted_value == condition_value
51
53
  end
52
54
  end
53
55
  end
54
56
 
57
+ def extract_value_from_element(element)
58
+ if element&.respond_to?(:tag_name)
59
+ if element.tag_name.downcase == "input"
60
+ return element.attribute_value(:value)
61
+ end
62
+ end
63
+
64
+ element&.text_content
65
+ end
66
+
55
67
  def extract_attribute(browser_or_element, selector_or_hash)
56
68
  if selector_or_hash.is_a?(String)
57
- browser_or_element.element(css: selector_or_hash)&.text_content
69
+ extract_value_from_element(browser_or_element.element(css: selector_or_hash))
58
70
  elsif selector_or_hash.is_a?(Hash)
59
71
  selector = selector_or_hash[:selector]
60
72
  selector_for_children_attributes = selector_or_hash[:children_attributes]
@@ -1,3 +1,3 @@
1
1
  module ScrapKit
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency "bundler", "~> 2.0"
32
32
  spec.add_development_dependency "rake", "~> 13.0"
33
33
  spec.add_development_dependency "rspec", "~> 3.0"
34
- spec.add_development_dependency "activesupport", "6.0.3.1"
35
- spec.add_development_dependency "watir", "~> 6.16.5"
34
+ spec.add_dependency "watir", "~> 6.16.5"
35
+ spec.add_dependency "webdrivers", "~> 4.0"
36
+ spec.add_dependency "activesupport", "~> 6.0"
36
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scrap_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gustavo Leon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-19 00:00:00.000000000 Z
11
+ date: 2020-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -53,33 +53,47 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: activesupport
56
+ name: watir
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 6.0.3.1
62
- type: :development
61
+ version: 6.16.5
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 6.0.3.1
68
+ version: 6.16.5
69
69
  - !ruby/object:Gem::Dependency
70
- name: watir
70
+ name: webdrivers
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 6.16.5
76
- type: :development
75
+ version: '4.0'
76
+ type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 6.16.5
82
+ version: '4.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: activesupport
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '6.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '6.0'
83
97
  description: Run JSON-based recipes to scrap web sites.
84
98
  email:
85
99
  - hpneo@hotmail.com
@@ -87,7 +101,7 @@ executables: []
87
101
  extensions: []
88
102
  extra_rdoc_files: []
89
103
  files:
90
- - ".github/workflows/publish_gem.yml"
104
+ - ".github/workflows/run_tests.yml"
91
105
  - ".gitignore"
92
106
  - ".rspec"
93
107
  - ".rubocop.yml"
@@ -1,17 +0,0 @@
1
- name: Publish gem
2
-
3
- on:
4
- push:
5
- tags:
6
- - '*'
7
-
8
- jobs:
9
- build:
10
-
11
- runs-on: ubuntu-latest
12
-
13
- steps:
14
- - name: Publish gem
15
- uses: dawidd6/action-publish-gem@v1.0.0
16
- with:
17
- api_key: ${{secrets.RUBYGEMS_API_KEY}}