browser_stack_button 0.0.1
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 +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +117 -0
- data/Rakefile +1 -0
- data/app/assets/javascripts/browser_stack_button.js.coffee +26 -0
- data/app/assets/stylesheets/browser_stack_button.css.sass +65 -0
- data/app/views/browser_stack_button/_button.html.erb +17 -0
- data/browser_stack_button.gemspec +24 -0
- data/lib/browser_stack_button.rb +35 -0
- data/lib/browser_stack_button/button.rb +33 -0
- data/lib/browser_stack_button/configuration.rb +13 -0
- data/lib/browser_stack_button/disabled_renderer.rb +7 -0
- data/lib/browser_stack_button/enabled_renderer.rb +23 -0
- data/lib/browser_stack_button/engine.rb +6 -0
- data/lib/browser_stack_button/helpers.rb +7 -0
- data/lib/browser_stack_button/rack.rb +12 -0
- data/lib/browser_stack_button/railtie.rb +15 -0
- data/lib/browser_stack_button/url.rb +15 -0
- data/lib/browser_stack_button/version.rb +3 -0
- metadata +108 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e95e01bcae6177e12748ee24e89f8adf9cead5ab
|
4
|
+
data.tar.gz: d4b690069c79623c901f54c8175cf0a2368c34b1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f853b824ac9bd0c6475c4702bb0388d213f15fb0c03f456ad8a2ae0d1d37074647d96a7623ced42edd8955e467de320a3c6cefb43eaf817348fa1e472e046692
|
7
|
+
data.tar.gz: 3f6e428579906d77b82558e1cc0a1fc54bc23069893490caa2a719a57b1b7fc2d04c280bf86c46433de4ac8d30f2bb5c86a97139a5efaa2bf607f7728a5845e4
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Aaron Jensen
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
# BrowserStackButton
|
2
|
+
|
3
|
+
BrowserStackButton adds a button to your page to allow you to quickly and
|
4
|
+
easily view the page you are looking at in BrowserStack. It is currently set up
|
5
|
+
to work on a Rails project but could probably be used in Sinatra or the like.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
gem 'browser_stack_button'
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install browser_stack_button
|
20
|
+
|
21
|
+
## Configuration
|
22
|
+
|
23
|
+
Put your configuration in an initializer:
|
24
|
+
|
25
|
+
`config/initializers/browser_stack_button.rb`
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
BrowserStackButton.configure do |config|
|
29
|
+
# ...
|
30
|
+
end
|
31
|
+
```
|
32
|
+
|
33
|
+
### Browser configuration
|
34
|
+
|
35
|
+
By default BrowserStackButton will not render any buttons for any browsers.
|
36
|
+
You need to set them up as described below.
|
37
|
+
TODO: NEED LINK
|
38
|
+
Refer to the [Browser Stack API documentation]() for what each setting means.
|
39
|
+
|
40
|
+
#### Default options
|
41
|
+
|
42
|
+
These options are applied to all browsers, but can be overridden by the
|
43
|
+
individual browser settings.
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
config.default_options = {
|
47
|
+
os: "Windows",
|
48
|
+
start: "true",
|
49
|
+
speed: "2",
|
50
|
+
zoom_to_fit: "false",
|
51
|
+
resolution: "1024x768",
|
52
|
+
full_screen: "true",
|
53
|
+
}
|
54
|
+
```
|
55
|
+
|
56
|
+
#### Configuring browsers
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
config.browsers["IE8"] = { browser: "IE", browser_version: "8.0", os_version: "7" }
|
60
|
+
config.browsers["IE9"] = { browser: "IE", browser_version: "9.0", os_version: "7" }
|
61
|
+
config.browsers["IE10"] = { browser: "IE", browser_version: "10.0+Desktop", os_version: "8" }
|
62
|
+
config.browsers["Firefox"] = { browser: "Firefox", browser_version: "22.0", os_version: "7" }
|
63
|
+
config.browsers["Safari"] = { browser: "Safari", browser_version: "6.0", os: "OS X", os_version: "Mountain Lion" }
|
64
|
+
config.browsers["Chrome"] = { browser: "Chrome", browser_version: "28.0", os_version: "7" }
|
65
|
+
```
|
66
|
+
|
67
|
+
## Usage
|
68
|
+
|
69
|
+
Add the following just after your opening `<body>` tag:
|
70
|
+
|
71
|
+
```erb
|
72
|
+
<%= browser_stack_button %>
|
73
|
+
```
|
74
|
+
|
75
|
+
If you want to enable it, likely only on a staging server, you can call
|
76
|
+
call `BrowserStackButton.enable!` in a `before_filter` or in your controller
|
77
|
+
action if you want to enable it in the current Rails environment.
|
78
|
+
|
79
|
+
You could enable it on production for just admin users or whatever you like. We
|
80
|
+
only use it on our staging server.
|
81
|
+
|
82
|
+
Sometimes you need to add additional parameters to your site url that is
|
83
|
+
visited by BrowserStack. We use this for a login backdoor on our staging server
|
84
|
+
which allows us to view the page as the same user we are currently logged in
|
85
|
+
as. To do this, pass an additional hash to `enable!`:
|
86
|
+
|
87
|
+
```ruby
|
88
|
+
BrowserStackButton.enable! do |button|
|
89
|
+
# Add additional params to the url
|
90
|
+
if user_signed_in?
|
91
|
+
button.url_params[:backdoor] = current_user.email
|
92
|
+
else
|
93
|
+
button.url_params[:backdoor] = "anonymous"
|
94
|
+
end
|
95
|
+
|
96
|
+
# OR override the URL entirely
|
97
|
+
browser.url = "http://example.com"
|
98
|
+
end
|
99
|
+
```
|
100
|
+
|
101
|
+
Once enabled, you should see a BrowserStack logo in the top left of the page.
|
102
|
+
Click it to reveal a dropdown and select a browser. You will need to enable
|
103
|
+
popups. When changing browsers, it is best to close the previous browser window
|
104
|
+
before clicking the next one.
|
105
|
+
|
106
|
+
## Todo
|
107
|
+
|
108
|
+
* Localhost/Tunnel support
|
109
|
+
* Extract more to javascript so it is usable outside of a Rails project.
|
110
|
+
|
111
|
+
## Contributing
|
112
|
+
|
113
|
+
1. Fork it ( http://github.com/substantial/browser_stack_button/fork )
|
114
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
115
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
116
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
117
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#= require jquery
|
2
|
+
|
3
|
+
$ ->
|
4
|
+
$(document).click (evt) ->
|
5
|
+
return if $(evt.target).hasClass('browser-stack-button-button')
|
6
|
+
$('.browser-stack-button-list').hide()
|
7
|
+
|
8
|
+
$('.browser-stack-button-button').click ->
|
9
|
+
$('.browser-stack-button-list').show()
|
10
|
+
|
11
|
+
$('.browser-stack-button-close').click ->
|
12
|
+
$('.browser-stack-button-list').hide()
|
13
|
+
|
14
|
+
$('.browser-stack-button-link').click (evt) ->
|
15
|
+
evt.preventDefault()
|
16
|
+
$(this).addClass('browser-stack-button-done')
|
17
|
+
$('.browser-stack-button-list').hide()
|
18
|
+
|
19
|
+
$('.browser-stack-button-button').addClass('browser-stack-button-loading')
|
20
|
+
$stopImg = $('<img>')
|
21
|
+
$stopImg.error ->
|
22
|
+
$('.browser-stack-button-button').removeClass('browser-stack-button-loading')
|
23
|
+
window.open evt.target.href
|
24
|
+
|
25
|
+
$stopImg.attr 'src', 'http://www.browserstack.com/terminal/stop'
|
26
|
+
|
@@ -0,0 +1,65 @@
|
|
1
|
+
.browser-stack-button
|
2
|
+
position: absolute
|
3
|
+
top: 0
|
4
|
+
left: 0
|
5
|
+
z-index: 9999999
|
6
|
+
|
7
|
+
.browser-stack-button-button
|
8
|
+
width: 42px
|
9
|
+
height: 41px
|
10
|
+
opacity: 0.5
|
11
|
+
cursor: pointer
|
12
|
+
background: image-url('browser_stack.png') no-repeat no-repeat
|
13
|
+
-webkit-transition: all 0.2s
|
14
|
+
-moz-transition: all 0.2s
|
15
|
+
-o-transition: all 0.2s
|
16
|
+
transition: all 0.2s
|
17
|
+
-webkit-backface-visibility: hidden
|
18
|
+
|
19
|
+
&:hover
|
20
|
+
opacity: 1.0
|
21
|
+
|
22
|
+
.browser-stack-button-loading
|
23
|
+
-webkit-animation: browser-stack-loading 1s infinite linear
|
24
|
+
|
25
|
+
@-webkit-keyframes browser-stack-loading
|
26
|
+
0%
|
27
|
+
opacity: 0.5
|
28
|
+
-webkit-transform: rotate(0deg)
|
29
|
+
50%
|
30
|
+
opacity: 1
|
31
|
+
100%
|
32
|
+
opacity: 0.5
|
33
|
+
-webkit-transform: rotate(359deg)
|
34
|
+
|
35
|
+
.browser-stack-button-list
|
36
|
+
display: none
|
37
|
+
position: absolute
|
38
|
+
top: 0
|
39
|
+
left: 0
|
40
|
+
border: 4px solid #333
|
41
|
+
|
42
|
+
.browser-stack-button-link
|
43
|
+
text-align: left
|
44
|
+
border: 0
|
45
|
+
width: 180px
|
46
|
+
display: block
|
47
|
+
background: #EEE
|
48
|
+
padding: 10px
|
49
|
+
cursor: pointer
|
50
|
+
&:hover
|
51
|
+
background: #CCC
|
52
|
+
|
53
|
+
.browser-stack-button-done:after
|
54
|
+
float: right
|
55
|
+
content: '\2713'
|
56
|
+
|
57
|
+
.browser-stack-button-close
|
58
|
+
@extend .browser-stack-button-link
|
59
|
+
border-bottom: 1px solid #BBB
|
60
|
+
&:after
|
61
|
+
float: right
|
62
|
+
content: '\00d7'
|
63
|
+
|
64
|
+
.browser-stack-button-link-current
|
65
|
+
color: white
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%= stylesheet_link_tag "browser_stack_button" %>
|
2
|
+
<%= javascript_include_tag "browser_stack_button" %>
|
3
|
+
<div class="browser-stack-button">
|
4
|
+
<div class="browser-stack-button-menu">
|
5
|
+
<div class="browser-stack-button-button"></div>
|
6
|
+
<ul class="browser-stack-button-list">
|
7
|
+
<li>
|
8
|
+
<button class="browser-stack-button-close">Close</button>
|
9
|
+
</li>
|
10
|
+
<%- button.each_browser_and_url do |browser, url| -%>
|
11
|
+
<li>
|
12
|
+
<%= link_to "View in #{browser}", url, class: "browser-stack-button-link" %>
|
13
|
+
</li>
|
14
|
+
<%- end -%>
|
15
|
+
</ul>
|
16
|
+
</div>
|
17
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'browser_stack_button/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "browser_stack_button"
|
8
|
+
spec.version = BrowserStackButton::VERSION
|
9
|
+
spec.authors = ["Aaron Jensen"]
|
10
|
+
spec.email = ["aaron@bustantial.com"]
|
11
|
+
spec.summary = %q{Add a button to your page to make testing with browser stack even easier.}
|
12
|
+
spec.description = %q{BrowserStack makes it really easy to test with different browsers, but this makes it even easier by adding a button to ever page and allowing you to quickly go through the browsers you need to test on.}
|
13
|
+
spec.homepage = "https://github.com/substantial/browser_stack_button"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "rails", ">= 3.2 "
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative "browser_stack_button/version"
|
2
|
+
require_relative "browser_stack_button/railtie"
|
3
|
+
require_relative "browser_stack_button/engine"
|
4
|
+
require_relative "browser_stack_button/configuration"
|
5
|
+
require_relative "browser_stack_button/disabled_renderer"
|
6
|
+
require_relative "browser_stack_button/enabled_renderer"
|
7
|
+
|
8
|
+
module BrowserStackButton
|
9
|
+
class << self
|
10
|
+
def renderer
|
11
|
+
Thread.current[:browser_stack_button_renderer] ||= DisabledRenderer.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def configuration
|
15
|
+
@configuration ||= Configuration.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def configure
|
19
|
+
yield configuration
|
20
|
+
end
|
21
|
+
|
22
|
+
def disable!
|
23
|
+
self.renderer = DisabledRenderer.new
|
24
|
+
end
|
25
|
+
|
26
|
+
def enable!(&block)
|
27
|
+
self.renderer = EnabledRenderer.new(configuration, &block)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def renderer=(renderer)
|
32
|
+
Thread.current[:browser_stack_button_renderer] = renderer
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative "url"
|
2
|
+
|
3
|
+
module BrowserStackButton
|
4
|
+
class Button
|
5
|
+
attr_reader :configuration, :context, :url_params
|
6
|
+
attr_accessor :url
|
7
|
+
|
8
|
+
def initialize(configuration, context)
|
9
|
+
@configuration = configuration
|
10
|
+
@context = context
|
11
|
+
@url_params = {}
|
12
|
+
end
|
13
|
+
|
14
|
+
def each_browser_and_url
|
15
|
+
configuration.browsers.each do |name, options|
|
16
|
+
options = configuration.default_options.merge options
|
17
|
+
options[:url] = browser_stack_current_url
|
18
|
+
yield name, BrowserStackButton::Url.new(options).to_s
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def browser_stack_current_url
|
24
|
+
return url if url
|
25
|
+
|
26
|
+
url_options = context.params.merge(
|
27
|
+
only_path: false,
|
28
|
+
).merge(url_params)
|
29
|
+
|
30
|
+
context.url_for(url_options)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative 'button'
|
2
|
+
|
3
|
+
module BrowserStackButton
|
4
|
+
class EnabledRenderer
|
5
|
+
attr_reader :configuration, :button_block
|
6
|
+
|
7
|
+
def initialize(configuration, &block)
|
8
|
+
@configuration = configuration
|
9
|
+
@button_block = block
|
10
|
+
end
|
11
|
+
|
12
|
+
def render_to(context)
|
13
|
+
context.render "browser_stack_button/button", button: create_button(context)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def create_button(context)
|
18
|
+
button = BrowserStackButton::Button.new(configuration, context)
|
19
|
+
button_block.call button
|
20
|
+
button
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "rails"
|
2
|
+
require_relative "helpers"
|
3
|
+
require_relative "rack"
|
4
|
+
|
5
|
+
module BrowserStackButton
|
6
|
+
class Railtie < ::Rails::Railtie
|
7
|
+
initializer 'browser_stack_button' do |app|
|
8
|
+
ActiveSupport.on_load(:action_view) do
|
9
|
+
::ActionView::Base.send :include, BrowserStackButton::Helpers
|
10
|
+
end
|
11
|
+
|
12
|
+
app.middleware.insert(0, BrowserStackButton::Rack)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "cgi"
|
2
|
+
|
3
|
+
module BrowserStackButton
|
4
|
+
class Url
|
5
|
+
def initialize(options={})
|
6
|
+
params = options.map {|k,v| "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"}.join("&")
|
7
|
+
|
8
|
+
@url = "http://www.browserstack.com/start##{params}"
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
@url
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: browser_stack_button
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Aaron Jensen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-01-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.5'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: BrowserStack makes it really easy to test with different browsers, but
|
56
|
+
this makes it even easier by adding a button to ever page and allowing you to quickly
|
57
|
+
go through the browsers you need to test on.
|
58
|
+
email:
|
59
|
+
- aaron@bustantial.com
|
60
|
+
executables: []
|
61
|
+
extensions: []
|
62
|
+
extra_rdoc_files: []
|
63
|
+
files:
|
64
|
+
- .gitignore
|
65
|
+
- Gemfile
|
66
|
+
- LICENSE.txt
|
67
|
+
- README.md
|
68
|
+
- Rakefile
|
69
|
+
- app/assets/javascripts/browser_stack_button.js.coffee
|
70
|
+
- app/assets/stylesheets/browser_stack_button.css.sass
|
71
|
+
- app/views/browser_stack_button/_button.html.erb
|
72
|
+
- browser_stack_button.gemspec
|
73
|
+
- lib/browser_stack_button.rb
|
74
|
+
- lib/browser_stack_button/button.rb
|
75
|
+
- lib/browser_stack_button/configuration.rb
|
76
|
+
- lib/browser_stack_button/disabled_renderer.rb
|
77
|
+
- lib/browser_stack_button/enabled_renderer.rb
|
78
|
+
- lib/browser_stack_button/engine.rb
|
79
|
+
- lib/browser_stack_button/helpers.rb
|
80
|
+
- lib/browser_stack_button/rack.rb
|
81
|
+
- lib/browser_stack_button/railtie.rb
|
82
|
+
- lib/browser_stack_button/url.rb
|
83
|
+
- lib/browser_stack_button/version.rb
|
84
|
+
homepage: https://github.com/substantial/browser_stack_button
|
85
|
+
licenses:
|
86
|
+
- MIT
|
87
|
+
metadata: {}
|
88
|
+
post_install_message:
|
89
|
+
rdoc_options: []
|
90
|
+
require_paths:
|
91
|
+
- lib
|
92
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
requirements: []
|
103
|
+
rubyforge_project:
|
104
|
+
rubygems_version: 2.1.11
|
105
|
+
signing_key:
|
106
|
+
specification_version: 4
|
107
|
+
summary: Add a button to your page to make testing with browser stack even easier.
|
108
|
+
test_files: []
|