refract 0.0.0

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/refract.rb +49 -0
  3. metadata +71 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dd1585e010fbb98244b6d8f7bc326e333da378f7
4
+ data.tar.gz: faea50bd6264bbeb37cb4704261f07d76a4bc967
5
+ SHA512:
6
+ metadata.gz: 2f3eab78ca422be72a7347eb9f5ff29569b6fa4bda94af922cf5ea5c16c9ec6be2ff9088f6fe08fc245d643f9f89b5dc6d19f58910a63597698e3e24d7b97e0e
7
+ data.tar.gz: 07614664a9dca9a3853a59754835c8c421953c74b6a631d9ba49177b82fd9257aa1808fc93a52ef037f423450b7b63b584555b08c9321c1ecbeff6c4c3e5e097
data/lib/refract.rb ADDED
@@ -0,0 +1,49 @@
1
+ require 'spidr'
2
+
3
+ class Refract
4
+ def self.create(homePage)
5
+ system 'mkdir', '-p', 'page_objects' unless File.directory?(Dir.pwd+"/page_objects")
6
+
7
+ Spidr.site(homePage) do |spider|
8
+ spider.every_html_page do |page|
9
+ fileName = page.title.downcase.gsub(' ', "_").delete('|')
10
+ className = page.title.gsub(' ', '').delete('|')
11
+ body = page.doc.to_s
12
+ idElements=body.scan(/\id="(.*?)"/).flatten
13
+ nameElements=body.scan(/\name="(.*?)"/).flatten
14
+ dataTestElements=body.scan(/\data-test="(.*?)"/).flatten
15
+ url = page.url.to_s.partition('.com').last
16
+ elements = element_formatter('id', idElements)
17
+ elements += element_formatter('name', nameElements)
18
+ elements += element_formatter('data-test', dataTestElements)
19
+
20
+ path = File.join(Dir.pwd, 'page_objects', "#{fileName}.rb")
21
+ unless File.exists?(path)
22
+ File.open(path, 'w') {|file| file.write(base_page_object_content(url, className, elements)) }
23
+ end
24
+ end
25
+ end
26
+ return 'page object generation complete...'
27
+ end
28
+
29
+ private
30
+
31
+ def self.base_page_object_content(url, className, elements)
32
+ "module App
33
+ class #{className} < SitePrism::Page
34
+ set_url '#{url}'
35
+ #fix regex set_url_matcher //
36
+ #{elements}
37
+ end
38
+ end
39
+ "
40
+ end
41
+
42
+ def self.element_formatter(identifier, elementArray)
43
+ elements = ''
44
+ elementArray.each do |e|
45
+ elements += " element :#{e}, " + '"' + "[#{identifier}=" + "'#{e}']" + '"' + "\n"
46
+ end
47
+ elements
48
+ end
49
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: refract
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Nate Reynolds
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-04-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: spidr
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.6.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.6.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.4
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.10.4
41
+ description: Crawler that auto generates SitePrism Page Objects
42
+ email: nate@n8r.us
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/refract.rb
48
+ homepage: https://github.com/nvreynolds/refract
49
+ licenses: []
50
+ metadata: {}
51
+ post_install_message:
52
+ rdoc_options: []
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ requirements: []
66
+ rubyforge_project:
67
+ rubygems_version: 2.6.10
68
+ signing_key:
69
+ specification_version: 4
70
+ summary: Refract
71
+ test_files: []