skeleton-ui 0.0.3 → 0.0.4
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +2 -4
- data/lib/skeleton/android.rb +14 -12
- data/lib/skeleton/base.rb +1 -18
- data/lib/skeleton/languages.rb +18 -0
- data/lib/skeleton/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1b6b686064be02b7c71259fe6a6c027c67d22ef4ac3aa3e7cda5c87afc09943
|
4
|
+
data.tar.gz: a3b5cb8fdc94d7631dcf0c66a4ceff2607bf4ad753ede0492c98d8d41fe4a9c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddc95d6c494fcbb9237bcdd70725f6340a2b31dc01baf5356ed2e232c7612f0553bd65695e90d70d11269f56d23233b93bb05858503945f0a3d15e4423357944
|
7
|
+
data.tar.gz: 872b9f5c315da8e087b632a835b55df717cf38db55251f3c04a9f435b7ae2f00e6479da4d94838af82a3189abb728d08f746d2e1a895e54944df6052b666b8b8
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -17,13 +17,11 @@ Prerequisites:
|
|
17
17
|
|
18
18
|
Installation:
|
19
19
|
------
|
20
|
-
$
|
21
|
-
$ gem install bundler
|
22
|
-
$ cd skeleton && bundle install
|
20
|
+
$ gem install skeleton-ui
|
23
21
|
|
24
22
|
Usage:
|
25
23
|
------
|
26
|
-
$
|
24
|
+
$ skeleton -h
|
27
25
|
|
28
26
|
## License
|
29
27
|
|
data/lib/skeleton/android.rb
CHANGED
@@ -1,15 +1,9 @@
|
|
1
1
|
class Android < Base
|
2
|
-
RESOURCE_ID =
|
3
|
-
|
4
|
-
ruby: 'resource-id'
|
5
|
-
}
|
6
|
-
CONTENT_DESC = {
|
7
|
-
java: 'content-desc',
|
8
|
-
ruby: 'content-desc'
|
9
|
-
}
|
2
|
+
RESOURCE_ID = 'resource-id'
|
3
|
+
CONTENT_DESC = 'content-desc'
|
10
4
|
TEXT = 'text'
|
11
|
-
ID =
|
12
|
-
XPATH =
|
5
|
+
ID = { java: :id }
|
6
|
+
XPATH = { java: :xpath }
|
13
7
|
CLASS = 'class'
|
14
8
|
|
15
9
|
attr_accessor :platform, :udid, :bundle_id, :ios_sim
|
@@ -20,9 +14,11 @@ class Android < Base
|
|
20
14
|
end
|
21
15
|
|
22
16
|
def skeletoner
|
17
|
+
log.info('We starting to skeleton your screen 🚀')
|
23
18
|
create_page_objects
|
24
19
|
save_screenshot
|
25
20
|
save(page_source)
|
21
|
+
log.info('We successfully skeletoned your screen 👻')
|
26
22
|
end
|
27
23
|
|
28
24
|
private
|
@@ -58,6 +54,7 @@ class Android < Base
|
|
58
54
|
end
|
59
55
|
|
60
56
|
def create_page_objects
|
57
|
+
log.info('Generation page objects for your awesome language 💪')
|
61
58
|
page_source_html = Nokogiri::HTML.parse(page_source)
|
62
59
|
page_source_html.css('node').each { |line| create_locator(line) }
|
63
60
|
end
|
@@ -65,8 +62,6 @@ class Android < Base
|
|
65
62
|
def code_generation(method_name, locator_type, value)
|
66
63
|
java = java(method_name, locator_type, value)
|
67
64
|
save(java, format: Language::JAVA)
|
68
|
-
|
69
|
-
# ADD OTHER LANGUAGES HERE
|
70
65
|
end
|
71
66
|
|
72
67
|
def save(code, format: 'xml')
|
@@ -76,13 +71,20 @@ class Android < Base
|
|
76
71
|
|
77
72
|
def page_source
|
78
73
|
unless @page_source
|
74
|
+
log.info('Getting screen source tree ⚒')
|
79
75
|
dump = `adb -s #{@udid} shell uiautomator dump | egrep -o '/.*?xml'`
|
80
76
|
@page_source = `adb -s #{@udid} shell cat #{dump}`
|
77
|
+
if @page_source.empty?
|
78
|
+
log.fatal('Something went wrong.') # FIXME
|
79
|
+
Process.exit(1)
|
80
|
+
end
|
81
|
+
log.info('Successfully getting Screen Source Tree 🔥')
|
81
82
|
end
|
82
83
|
@page_source
|
83
84
|
end
|
84
85
|
|
85
86
|
def save_screenshot
|
87
|
+
log.info('Saving screenshot 📷')
|
86
88
|
file_name = "#{@platform}_#{TIMESTAMP}.png"
|
87
89
|
`adb -s #{@udid} shell screencap -p /sdcard/#{file_name}`
|
88
90
|
`adb -s #{@udid} pull /sdcard/#{file_name} #{ATTACHMENTS_FOLDER}/`
|
data/lib/skeleton/base.rb
CHANGED
@@ -3,6 +3,7 @@ require_relative 'languages.rb'
|
|
3
3
|
class Base
|
4
4
|
include Language
|
5
5
|
|
6
|
+
# ROOT_DIR_FOR_DEBUG = File.expand_path('..', Dir.pwd)
|
6
7
|
ROOT_DIR = "#{`gem environment gemdir`.strip}" \
|
7
8
|
"/gems/skeleton-ui-#{Skeleton::VERSION}"
|
8
9
|
PAGE_OBJECTS_FOLDER = "#{ROOT_DIR}/PageObjects"
|
@@ -69,24 +70,6 @@ class Base
|
|
69
70
|
@locator_index = @locator_index.nil? ? 1 : @locator_index + 1
|
70
71
|
end
|
71
72
|
|
72
|
-
def java(method_name, locator_type, value)
|
73
|
-
<<~JAVA
|
74
|
-
By #{camel_style(method_name)}() {
|
75
|
-
return MobileBy.#{locator_type[:java]}("#{value}");
|
76
|
-
}
|
77
|
-
|
78
|
-
JAVA
|
79
|
-
end
|
80
|
-
|
81
|
-
def ruby(method_name, locator_type, value)
|
82
|
-
<<~RUBY
|
83
|
-
def #{snake_style(method_name)}
|
84
|
-
return :#{locator_type[:ruby]}, "#{value}"
|
85
|
-
end
|
86
|
-
|
87
|
-
RUBY
|
88
|
-
end
|
89
|
-
|
90
73
|
def screenshot
|
91
74
|
end
|
92
75
|
|
data/lib/skeleton/languages.rb
CHANGED
@@ -2,4 +2,22 @@ module Language
|
|
2
2
|
JAVA = 'java'
|
3
3
|
RUBY = 'rb'
|
4
4
|
PYTHON = 'py'
|
5
|
+
|
6
|
+
def java(method_name, locator_type, value)
|
7
|
+
<<~JAVA
|
8
|
+
By #{camel_style(method_name)}() {
|
9
|
+
return MobileBy.#{locator_type[:java]}("#{value}");
|
10
|
+
}
|
11
|
+
|
12
|
+
JAVA
|
13
|
+
end
|
14
|
+
|
15
|
+
def ruby(method_name, locator_type, value)
|
16
|
+
<<~RUBY
|
17
|
+
def #{snake_style(method_name)}
|
18
|
+
return :#{locator_type[:ruby]}, "#{value}"
|
19
|
+
end
|
20
|
+
|
21
|
+
RUBY
|
22
|
+
end
|
5
23
|
end
|
data/lib/skeleton/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skeleton-ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- a.alterpesotskiy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|