Compare commits

...

6 Commits

Author SHA1 Message Date
Jonathan Abbett
a79c11e546 Removed attempt at Rails 5.1 testing 2021-04-15 15:00:38 -04:00
Jonathan Abbett
f0e572d06d More testing fixes 2021-04-15 14:51:01 -04:00
Jonathan Abbett
71e201feab Fix to rails version check 2021-04-15 14:37:56 -04:00
Jonathan Abbett
7ece8d904c Another attempt at running Travis tests properly 2021-04-15 14:20:13 -04:00
Jonathan Abbett
bbe05aeaf4 Update: Fix for Travis in Rails 6+
Resolves #50
2021-04-15 14:01:18 -04:00
Jonathan Abbett
4034213467 Update: Include documentation on placement options
Resolves #48
2021-04-15 13:22:19 -04:00
10 changed files with 128 additions and 14 deletions

View File

@ -1,9 +1,9 @@
language: ruby
env:
- 'RAILS_VERSION=5.1'
- 'RAILS_VERSION=5.2'
- 'RAILS_VERSION=6.0'
- 'RAILS_VERSION=5.2.0'
- 'RAILS_VERSION=6.0.0'
- 'RAILS_VERSION=6.1.0'
before_script:
- 'yarn'
@ -11,4 +11,4 @@ before_script:
- 'RAILS_ENV=test bundle exec rake db:create'
- 'RAILS_ENV=test bundle exec rake db:migrate'
script: 'RAILS_ENV=test bundle exec rails test'
script: 'RAILS_ENV=test bundle exec rake test'

View File

@ -11,7 +11,7 @@ end
rails_version = ENV['RAILS_VERSION'] || 'default'
rails = case rails_version
when 'default'
'~> 5.1'
'~> 5.2'
when 'master'
{github: 'rails/rails'}
else

View File

@ -15,7 +15,8 @@ Abraham injects dynamically-generated [Shepherd](https://shepherdjs.dev/) JavaSc
## Requirements
Abraham needs to know the current user to track tour views, e.g. `current_user` from Devise.
* Abraham needs to know the current user to track tour views, e.g. `current_user` from Devise.
* Abraham is tested on Rails 5.2, 6.0, and 6.1
## Installation
@ -95,7 +96,7 @@ NB: You must specify a locale in the filename, even if you're only supporting on
### Tour content
A tour is composed of a series of steps. A step may have a title and must have a description. You may attach a step to a particular element on the page, and place the callout to the left, right, top, or bottom.
A tour is composed of a series of steps. A step may have a title and must have a description. You may attach a step to a particular element on the page, and place the callout in a particular position (see below).
```yaml
intro:
@ -122,6 +123,18 @@ Abraham takes care of which buttons should appear with each step:
* "Exit" and "Next" buttons on intermediate steps
* "Done" button on the last step
When you specify an `attachTo` element, use the `placement` option to choose where the callout should appear relative to that element:
* `bottom` / `bottom center`
* `bottom left`
* `bottom right`
* `center` / `middle` / `middle center`
* `left` / `middle left'
* `right` / `middle right`
* `top` / `top center`
* `top left`
* `top right`
Abraham tries to be helpful when your tour steps attach to page elements that are missing:
* If your first step is attached to a particular element, and that element is not present on the page, the tour won't start. ([#28](https://github.com/actmd/abraham/issues/28))
@ -161,7 +174,7 @@ If you have any trouble at all, please [submit an issue](https://github.com/actm
Contributions are welcome!
Create a feature branch (using git-flow) and submit as a pull request.
Create a feature branch (using git-flow) and submit as a pull request (with a base branch of `develop`).
Everyone interacting in Abraham's codebase, issue tracker, etc. is expected to follow the [Contributor Covenent Code of Conduct](https://www.contributor-covenant.org/version/1/4/code-of-conduct).
@ -176,6 +189,8 @@ Cloning into 'abraham'...
ruby-2.5.3 - #gemset created /Users/jon/.rvm/gems/ruby-2.5.3@abraham
ruby-2.5.3 - #generating abraham wrappers - please wait
~ bundle install
Bundle complete! 13 Gemfile dependencies, 73 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
~ yarn install
```
@ -197,7 +212,7 @@ gem 'abraham', path: '~/Workspace/abraham'
#### Automated testing
We use TravisCI to automatically test this engine with Rails 5.1, 5.2, and 6.0. For test history, venture over to [TravisCI](https://travis-ci.com/actmd/abraham).
We use TravisCI to automatically test this engine with Rails 5.2, 6.0, and 6.1. For test history, venture over to [TravisCI](https://travis-ci.com/actmd/abraham).
### Releasing

View File

@ -26,10 +26,10 @@ require "bundler/gem_tasks"
require "rake/testtask"
Rake::TestTask.new(:test) do |t|
t.libs << "lib"
t.libs << "test"
t.pattern = "test/**/*_test.rb"
t.verbose = false
t.warning = false
end
task default: :test

View File

@ -3,5 +3,6 @@
class DashboardController < ApplicationController
def home; end
def other; end
def placement; end
def missing; end
end

View File

@ -0,0 +1,22 @@
<h1>Dashboard#placement</h1>
<p>Find me in app/views/dashboard/placement.html.erb</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae leo sagittis, sodales ante tincidunt, tincidunt tellus. Integer rutrum id quam maximus pellentesque. Morbi non justo ac dui mollis commodo nec sit amet neque. Sed et nunc quis nibh sagittis facilisis. Vivamus pharetra mauris in leo pulvinar, hendrerit pharetra eros mattis. Praesent eleifend convallis purus in facilisis. Donec molestie turpis sed ligula hendrerit malesuada. Curabitur porttitor eros ex, mattis malesuada ligula ullamcorper a. Donec accumsan at turpis ac tristique. Fusce finibus metus at lacinia sollicitudin. In efficitur mauris ante, nec lacinia nunc fermentum sit amet.</p>
<p>Cras a ullamcorper nisl, sed vulputate nisi. In hac habitasse platea dictumst. Sed pulvinar diam ultricies leo accumsan efficitur. Nullam pharetra velit risus, in vestibulum tortor finibus eget. Phasellus varius, ante sed maximus placerat, lectus nisl tempus ligula, sed tincidunt nulla odio ut augue. Phasellus dignissim, lacus non faucibus cursus, purus quam euismod mi, eu porta mi dui quis diam. Pellentesque in vulputate sem, a suscipit nunc. Etiam non elementum felis. Suspendisse rutrum, odio finibus rutrum ornare, orci quam consectetur massa, id bibendum lorem sem ut nulla. Nunc euismod varius ipsum quis commodo. Maecenas massa arcu, gravida a odio sed, tristique placerat nisl. In eget ligula tempor, iaculis felis at, ultricies augue. Praesent ac tellus sed risus dignissim ornare a at erat. Donec id finibus tortor, eget semper ante. Cras sed erat ultricies, pellentesque arcu vel, egestas ex.</p>
<p>Proin viverra arcu ut purus maximus gravida. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras rhoncus leo sit amet lacus gravida, vitae viverra nunc aliquam. Suspendisse porttitor neque ac libero mollis, ac fermentum enim iaculis. Suspendisse malesuada, diam eget elementum maximus, ex dolor dapibus diam, sed scelerisque urna nisi luctus odio. Sed sed porttitor elit, et gravida sapien. Ut mattis vehicula iaculis. Sed pretium lorem id erat gravida dapibus. Etiam vitae faucibus arcu, ac fermentum lorem.</p>
<div class="notice-me" style="width: 300px; height: 300px; margin-left: 400px; background-color: whitesmoke;">
a content with room for placement all around
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae leo sagittis, sodales ante tincidunt, tincidunt tellus. Integer rutrum id quam maximus pellentesque. Morbi non justo ac dui mollis commodo nec sit amet neque. Sed et nunc quis nibh sagittis facilisis. Vivamus pharetra mauris in leo pulvinar, hendrerit pharetra eros mattis. Praesent eleifend convallis purus in facilisis. Donec molestie turpis sed ligula hendrerit malesuada. Curabitur porttitor eros ex, mattis malesuada ligula ullamcorper a. Donec accumsan at turpis ac tristique. Fusce finibus metus at lacinia sollicitudin. In efficitur mauris ante, nec lacinia nunc fermentum sit amet.</p>
<p>Cras a ullamcorper nisl, sed vulputate nisi. In hac habitasse platea dictumst. Sed pulvinar diam ultricies leo accumsan efficitur. Nullam pharetra velit risus, in vestibulum tortor finibus eget. Phasellus varius, ante sed maximus placerat, lectus nisl tempus ligula, sed tincidunt nulla odio ut augue. Phasellus dignissim, lacus non faucibus cursus, purus quam euismod mi, eu porta mi dui quis diam. Pellentesque in vulputate sem, a suscipit nunc. Etiam non elementum felis. Suspendisse rutrum, odio finibus rutrum ornare, orci quam consectetur massa, id bibendum lorem sem ut nulla. Nunc euismod varius ipsum quis commodo. Maecenas massa arcu, gravida a odio sed, tristique placerat nisl. In eget ligula tempor, iaculis felis at, ultricies augue. Praesent ac tellus sed risus dignissim ornare a at erat. Donec id finibus tortor, eget semper ante. Cras sed erat ultricies, pellentesque arcu vel, egestas ex.</p>
<p>Proin viverra arcu ut purus maximus gravida. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras rhoncus leo sit amet lacus gravida, vitae viverra nunc aliquam. Suspendisse porttitor neque ac libero mollis, ac fermentum enim iaculis. Suspendisse malesuada, diam eget elementum maximus, ex dolor dapibus diam, sed scelerisque urna nisi luctus odio. Sed sed porttitor elit, et gravida sapien. Ut mattis vehicula iaculis. Sed pretium lorem id erat gravida dapibus. Etiam vitae faucibus arcu, ac fermentum lorem.</p>
<p>Sed mollis lectus a tellus interdum efficitur. Maecenas et mauris neque. Aliquam erat volutpat. Cras vehicula mollis varius. Aenean quis pretium libero, sit amet sodales urna. Maecenas a elementum neque. Maecenas quis pharetra ex. Maecenas at lorem odio. Etiam malesuada non justo non porta. Donec massa lectus, suscipit non leo nec, vulputate tincidunt turpis. Integer ullamcorper, diam id pharetra tempor, erat arcu semper ex, eu rhoncus libero mauris sed ipsum. Duis bibendum dui ipsum, at fringilla sapien gravida eget. Nam finibus blandit dui.</p>
<p>Integer accumsan enim eget leo placerat, at imperdiet libero porta. Nam in cursus sapien. Maecenas nunc enim, posuere a nulla bibendum, convallis aliquet odio. Curabitur a magna dolor. Vestibulum sed eros quis nisl aliquet condimentum. Phasellus ut odio a enim molestie gravida. Praesent sagittis mi sit amet lacus varius, vitae fermentum lorem iaculis. Ut fringilla turpis nec est fringilla finibus. Nullam accumsan tortor non massa tincidunt egestas. Nunc ac eros dignissim, mattis dui sed, mattis enim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec purus dolor, consectetur in dui vitae, aliquet aliquam orci. Nulla iaculis lorem et sem gravida, in sollicitudin elit dictum. Vestibulum consectetur sapien sed vestibulum venenatis. Cras id libero vel risus ullamcorper cursus in sit amet erat. </p>

View File

@ -13,8 +13,8 @@ module Dummy
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# This configuration is no longer necessary with Rails 6.1+
unless Rails::VERSION::MAJOR >= 6 && Rails::VERSION::MINOR >= 1
# For Rails 5.2 - 6.0, we need to set this configuration
if (Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR > 1) || (Rails::VERSION::MAJOR == 6 && Rails::VERSION::MINOR < 1)
config.active_record.sqlite3.represent_boolean_as_integer = true
end
end

View File

@ -3,6 +3,7 @@
Rails.application.routes.draw do
get "dashboard/home"
get "dashboard/other"
get "dashboard/placement"
get "dashboard/missing"
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html

View File

@ -0,0 +1,77 @@
intro:
steps:
1:
text: "bottom"
attachTo:
element: ".notice-me"
placement: "bottom"
2:
text: "bottom center"
attachTo:
element: ".notice-me"
placement: "bottom center"
3:
text: "bottom left"
attachTo:
element: ".notice-me"
placement: "bottom left"
4:
text: "bottom right"
attachTo:
element: ".notice-me"
placement: "bottom right"
5:
text: "center"
attachTo:
element: ".notice-me"
placement: "center"
6:
text: "left"
attachTo:
element: ".notice-me"
placement: "left"
7:
text: "middle"
attachTo:
element: ".notice-me"
placement: "middle"
8:
text: "middle center"
attachTo:
element: ".notice-me"
placement: "middle center"
9:
text: "middle left"
attachTo:
element: ".notice-me"
placement: "middle left"
10:
text: "middle right"
attachTo:
element: ".notice-me"
placement: "middle right"
11:
text: "right"
attachTo:
element: ".notice-me"
placement: "right"
12:
text: "top"
attachTo:
element: ".notice-me"
placement: "top"
13:
text: "top center"
attachTo:
element: ".notice-me"
placement: "top center"
14:
text: "top left"
attachTo:
element: ".notice-me"
placement: "top left"
15:
text: "top right"
attachTo:
element: ".notice-me"
placement: "top right"

View File

@ -1,5 +1,3 @@
# frozen_string_literal: true
# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
# incrementally modify your database, and then regenerate this schema definition.