refract 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []