Class: Skeleton::Skeleton
- Inherits:
-
Object
- Object
- Skeleton::Skeleton
- Defined in:
- lib/skeleton.rb
Instance Attribute Summary collapse
-
#browser ⇒ Object
Returns the value of attribute browser.
-
#bundle_id ⇒ Object
Returns the value of attribute bundle_id.
-
#platform ⇒ Object
Returns the value of attribute platform.
-
#udid ⇒ Object
Returns the value of attribute udid.
Instance Method Summary collapse
- #android? ⇒ Boolean
- #attach_image ⇒ Object
- #fill_html ⇒ Object
-
#initialize(options) ⇒ Skeleton
constructor
A new instance of Skeleton.
- #ios? ⇒ Boolean
- #open_url ⇒ Object
- #run ⇒ Object
Constructor Details
Instance Attribute Details
#browser ⇒ Object
Returns the value of attribute browser.
16 17 18 |
# File 'lib/skeleton.rb', line 16 def browser @browser end |
#bundle_id ⇒ Object
Returns the value of attribute bundle_id.
16 17 18 |
# File 'lib/skeleton.rb', line 16 def bundle_id @bundle_id end |
#platform ⇒ Object
Returns the value of attribute platform.
16 17 18 |
# File 'lib/skeleton.rb', line 16 def platform @platform end |
#udid ⇒ Object
Returns the value of attribute udid.
16 17 18 |
# File 'lib/skeleton.rb', line 16 def udid @udid end |
Instance Method Details
#android? ⇒ Boolean
83 84 85 |
# File 'lib/skeleton.rb', line 83 def android? @platform == 'android' end |
#attach_image ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/skeleton.rb', line 59 def attach_image screenshot = Dir["#{Base::ATTACHMENTS_FOLDER}/*.png"].first image = MiniMagick::Image.new(screenshot) image.rotate(90) if image.width > image.height rescue MiniMagick::Error => err Log.warn(err) ensure FileUtils.cp_r(screenshot, "#{Base::ROOT_DIR}/server/screenshot.png") end |
#fill_html ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/skeleton.rb', line 39 def fill_html languages = ios? ? Language.all : Language.all - ['swift'] languages.each do |lang| attach_image type = Language.domain(lang) folder = Base::PAGE_OBJECTS_FOLDER @screen_objects = File.read(Dir["#{folder}/*.#{type}"].first) @elements_tree = File.read(Dir["#{folder}/*.xml"].first) @build_version = "v#{VERSION}" if @driver.class == Android @elements_tree = Nokogiri::XML(@elements_tree).to_s @elements_tree.gsub!('<', '<') @elements_tree.gsub!('>', '>') end template = File.read("#{Base::ROOT_DIR}/server/template.html.erb") result = ERB.new(template).result(binding) File.open("#{Base::ROOT_DIR}/server/#{lang}.html", 'w+') { |f| f.write(result) } end end |
#ios? ⇒ Boolean
79 80 81 |
# File 'lib/skeleton.rb', line 79 def ios? @platform == 'ios' end |
#open_url ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/skeleton.rb', line 69 def open_url port = File.read("#{Base::ROOT_DIR}/server/port") url = "http://localhost:#{port}/skeleton" `open #{url}` if @browser Log.info("Look at your pretty page objects: \n#{url} 😍") rescue Errno::ENOENT Log.warn('Something went wrong with skeleton server 💩' \ "\nTry to rerun it (:") end |
#run ⇒ Object
32 33 34 35 36 37 |
# File 'lib/skeleton.rb', line 32 def run @driver.precondition @driver.skeletoner fill_html open_url end |