appium_thor

Gem Version

Appium Thor helpers for appium's gems (appium_lib, appium_capybara).

--

Example configuration

Appium::Thor::Config.set do
  gem_name     'appium_thor'
  github_owner 'appium'
  github_name  'appium_thor'
       branch  'master'
  version_file 'lib/appium_thor/version.rb'
  docs_block do
    run 'docs/helpers_docs.md', globs('/lib/appium_thor/helpers.rb')
  end
end

# Must use '::' otherwise Default will point to Thor::Sandbox::Default
# Debug by calling Thor::Base.subclass_files via Pry
#
# https://github.com/erikhuda/thor/issues/484
#
class ::Default < Thor
  desc 'spec', 'Run RSpec tests'
  def spec
    exec 'rspec spec'
  end
end

Defaults

Option Default
gem_name must be provided
github_owner appium
github_name #{gem_name}
branch master
version_file lib/#{gem_name}/version.rb
docs_block no docs are generated

branch customises the target branch to push changes. Defaults to master

--

Available tasks

Note to see gem warnings, run gem build your_gem_name.gemspec

thor build          # Build a new gem
thor bump           # Bump the z version number and update the date.
thor bumpx          # Bump the x version number, set y & z to zero, update the date.
thor bumpy          # Bump the y version number, set z to zero, update the date.
thor byte           # Remove non-ascii bytes from all *.rb files in the current dir
thor docs           # Update docs
thor gem_install    # Install gem
thor gem_uninstall  # Uninstall gem
thor info           # prints config info for this gem
thor notes          # Update release notes
thor publish        # Build and release a new gem to rubygems.org
thor release        # Build and release a new gem to rubygems.org (same as publish)

--

docs_block

The docs_block method runs within the docs.rb context. Here's a more complex example:

common_globs  = '/lib/appium_lib/*.rb', '/lib/appium_lib/device/*.rb', '/lib/appium_lib/common/**/*.rb'
android_globs = common_globs + ['/lib/appium_lib/android/**/*.rb']
ios_globs     = common_globs + ['/lib/appium_lib/ios/**/*.rb']

run 'docs/android_docs.md', globs(android_globs)

run 'docs/ios_docs.md', globs(ios_globs)