ui_guiders 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +20 -0
- data/LICENSE.txt +20 -0
- data/README.markdown +96 -0
- data/Rakefile +26 -0
- data/Screenshot.png +0 -0
- data/VERSION +1 -0
- data/app/assets/images/ui_guiders/bottom_arrow.png +0 -0
- data/app/assets/images/ui_guiders/box_bgrnd.png +0 -0
- data/app/assets/images/ui_guiders/close_ico.png +0 -0
- data/app/assets/images/ui_guiders/left_arrow.png +0 -0
- data/app/assets/images/ui_guiders/right_arrow.png +0 -0
- data/app/assets/images/ui_guiders/top_arrow.png +0 -0
- data/app/assets/javascripts/lib/ui_guiders.js.coffee +159 -0
- data/app/assets/stylesheets/ui_guiders.css.scss +34 -0
- data/app/helpers/ui_guiders_helper.rb +20 -0
- data/app/views/shared/_ui_guider.haml +11 -0
- data/lib/ui_guiders.rb +6 -0
- metadata +101 -0
data/.document
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
|
6
|
+
# Add dependencies to develop your gem here.
|
7
|
+
# Include everything needed to run rake, tests, features, etc.
|
8
|
+
group :development do
|
9
|
+
gem "bundler", "~> 1.1.3"
|
10
|
+
gem "jeweler", "~> 1.8.3"
|
11
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
git (1.2.5)
|
5
|
+
jeweler (1.8.3)
|
6
|
+
bundler (~> 1.0)
|
7
|
+
git (>= 1.2.5)
|
8
|
+
rake
|
9
|
+
rdoc
|
10
|
+
json (1.6.6)
|
11
|
+
rake (0.9.2.2)
|
12
|
+
rdoc (3.12)
|
13
|
+
json (~> 1.4)
|
14
|
+
|
15
|
+
PLATFORMS
|
16
|
+
ruby
|
17
|
+
|
18
|
+
DEPENDENCIES
|
19
|
+
bundler (~> 1.1.3)
|
20
|
+
jeweler (~> 1.8.3)
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2012 Roman Snitko
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.markdown
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
UIGuiders
|
2
|
+
=========
|
3
|
+
|
4
|
+
*Visual guiders for website UIs*
|
5
|
+
It's like "Guiders-JS", but easily customizable and less js-centric.
|
6
|
+
|
7
|
+
Why?
|
8
|
+
----
|
9
|
+
Because I wanted an easy soulution that wouldn't be all javascript. I don't think it's a good idea to assign
|
10
|
+
guiders on the js-level, like Guiders.js does. Instead, it should be in the views. The javascript part
|
11
|
+
only handles proper positioning and effects part, while remaining uninvolved into the styles/content business.
|
12
|
+
|
13
|
+
If you wish, you may just use the js part and use it outside of the Rails app.
|
14
|
+
(Actually, it's written in coffeescript, so you'd have to compile it first).
|
15
|
+
|
16
|
+
The javascript part will correctly determine which part of the screen the target DOM-element is positioned and
|
17
|
+
then choose how to display the guider - what side the arrow should be on and should the guider be on top or
|
18
|
+
at the bottom of the target DOM-element. No need to manually specify any options.
|
19
|
+
|
20
|
+
See Screenshot.png file for a small demonstration of how it looks.
|
21
|
+
|
22
|
+
INSTALLATION
|
23
|
+
------------
|
24
|
+
|
25
|
+
1. gem install ui_guiders
|
26
|
+
|
27
|
+
2.
|
28
|
+
(a) Add to your scss: `@import "ui_guiders";` OR
|
29
|
+
(b) Add to your layout: `stylesheet_link_tag 'ui_guiders'`
|
30
|
+
|
31
|
+
3.
|
32
|
+
(a) Add to your application.js.coffee `#= require lib/ui_guiders` OR
|
33
|
+
(b) Add to your layout: `javascript_include_tag "lib/ui_guiders"`
|
34
|
+
|
35
|
+
|
36
|
+
Usage
|
37
|
+
-----
|
38
|
+
|
39
|
+
This is what you put in your views (haml example):
|
40
|
+
|
41
|
+
= ui_guider :target => "header .menuItem1", :autoshow => true, :event => "click", :show_once => true, :id => "menu_item_1_guider", :class => "myclass" do
|
42
|
+
text explaining
|
43
|
+
this awesome menuitem
|
44
|
+
|
45
|
+
That's it. Now when your page is loaded a shiny yellow guider will appear pointing at the DOM element you specified with the :target option.
|
46
|
+
Other options explanation:
|
47
|
+
|
48
|
+
`:autoshow` if true, js-part of the plugin will force the guider to appear up
|
49
|
+
immediately after the page loads. Default is false.
|
50
|
+
|
51
|
+
`:autohide` if true, it hides the guider whenever the `mouseout` event happens on the target element.
|
52
|
+
The close ico does not appear if this option is enabled (because this option also adds `autohide` class to
|
53
|
+
the .uiGuider element, and default css sets a `display` property of `img.close` in it to `none`).
|
54
|
+
|
55
|
+
`:show_once` Saves cookie with the id of the guider. Next time the user visits, the guider is not shown.
|
56
|
+
Default is false.
|
57
|
+
|
58
|
+
`:event` jQuery event (for example `click` or `mouseover`) which is binded to the target and on which the guider is shown.
|
59
|
+
|
60
|
+
`:side_arrow` Normally the arrow would appear either on top or the bottom side of the guider, but with this option set to true, you can an arrow
|
61
|
+
on either left or right side of the guider. Use with caution, as this may force horizontal scrollbars to appear if your targer is
|
62
|
+
placed to close the edge of the screen.
|
63
|
+
|
64
|
+
`:target_edge` Sets a horizontal location on the target for the arrow to point to, possible values are "left", "right" or "middle"
|
65
|
+
(default is "middle").
|
66
|
+
|
67
|
+
`:id`
|
68
|
+
`:class` Both are applied to the html-element.
|
69
|
+
|
70
|
+
|
71
|
+
Customization
|
72
|
+
-------------
|
73
|
+
* Want different styles?
|
74
|
+
copy `app/assets/stylesheets/ui_guiders.css.scss` from the gem dir and change it.
|
75
|
+
|
76
|
+
* Replacing images?
|
77
|
+
You guessed it right. Copy `app/assets/images/ui_guiders/` from the gem dir and change it.
|
78
|
+
|
79
|
+
For images and stylesheets make sure your `app/assets` dir loads last, so that Rails loads *your* files.
|
80
|
+
I managed to do it with
|
81
|
+
|
82
|
+
config.assets.paths << "#{Rails.root}/app/assets/stylesheets/"
|
83
|
+
config.assets.paths << "#{Rails.root}/app/assets/images/"
|
84
|
+
|
85
|
+
in my `config/application.rb`
|
86
|
+
|
87
|
+
* Want a different markup?
|
88
|
+
copy `app/assets/views/shared/_ui_guider.haml` from the plugin dir and change it.
|
89
|
+
|
90
|
+
|
91
|
+
Requirements
|
92
|
+
------------
|
93
|
+
|
94
|
+
* Rails 3.1 (sorry, no 3.0 support, using assets)
|
95
|
+
* jQuery (tested on 1.5.2)
|
96
|
+
* jquery.cookie.js
|
data/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "ui_guiders"
|
18
|
+
gem.homepage = "http://github.com/snitko/ui_guiders"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = "Visual guiders for website UIs."
|
21
|
+
gem.description = "It's like \"Guiders-JS\", but easily customizable and less js-centric."
|
22
|
+
gem.email = "roman.snitko@gmail.com"
|
23
|
+
gem.authors = ["Roman Snitko"]
|
24
|
+
# dependencies defined in Gemfile
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
data/Screenshot.png
ADDED
Binary file
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,159 @@
|
|
1
|
+
jQuery ($) ->
|
2
|
+
|
3
|
+
window.UIGuider = class UIGuider
|
4
|
+
|
5
|
+
constructor: (block) ->
|
6
|
+
@block = $(block)
|
7
|
+
@target = $($(@block).attr("data-target-element"))
|
8
|
+
@arrows = {
|
9
|
+
top: @block.children(".arrow.top")
|
10
|
+
bottom: @block.children(".arrow.bottom")
|
11
|
+
left: @block.children(".arrow.side.left")
|
12
|
+
right: @block.children(".arrow.side.right")
|
13
|
+
}
|
14
|
+
@state = "hidden"
|
15
|
+
|
16
|
+
@hide_arrows = () ->
|
17
|
+
for a in @arrows
|
18
|
+
a.hide()
|
19
|
+
|
20
|
+
# Places arrow to the right corner of the Guider.
|
21
|
+
# It's top/bottom and left/right position is always equal to that
|
22
|
+
# of a target.
|
23
|
+
@place_arrow = (pos, options={}) ->
|
24
|
+
@hide_arrows()
|
25
|
+
if options.side_arrow
|
26
|
+
@arrows[pos.x].css(top: @block.height()/2 - @arrows.left.height()).show()
|
27
|
+
else
|
28
|
+
@arrows[pos.y].show().addClass(pos.x)
|
29
|
+
|
30
|
+
# Places Guider so that its arrow always points to the target.
|
31
|
+
# Depending on the position of the target the guider will appear on the left
|
32
|
+
# or on the right side of the target.
|
33
|
+
#
|
34
|
+
# To set a horizontal location on the target for the arrow to point to,
|
35
|
+
# use "edge" option for that with "left", "right" or "middle" (default is "middle").
|
36
|
+
#
|
37
|
+
# To set the type of arrow (side arrow or arrows appearing on the top or the bottom of the guider),
|
38
|
+
# set "side_arrow" option to true.
|
39
|
+
@place_guider = (pos, options={}) ->
|
40
|
+
|
41
|
+
if options.side_arrow
|
42
|
+
arrow = @arrows.left
|
43
|
+
arrow_offset_sign = 1
|
44
|
+
else
|
45
|
+
arrow = @arrows.top
|
46
|
+
arrow_offset_sign = -1
|
47
|
+
|
48
|
+
if options.side_arrow
|
49
|
+
top_offset = @target.offset().top + @target.height()/2 - @block.height()/2
|
50
|
+
else if pos.y == "top"
|
51
|
+
top_offset = @target.offset().top + @target.height() + arrow.height()
|
52
|
+
else
|
53
|
+
top_offset = @target.offset().top - @block.height() - arrow.height()
|
54
|
+
|
55
|
+
if pos.x == "left"
|
56
|
+
pos_left_offset = @target.offset().left + arrow.width()*arrow_offset_sign
|
57
|
+
if options.edge == "left"
|
58
|
+
width_left_offset = 0
|
59
|
+
else if options.edge == "right"
|
60
|
+
width_left_offset = @target.width()
|
61
|
+
else
|
62
|
+
width_left_offset = @target.width()/2
|
63
|
+
else
|
64
|
+
arrow_offset_sign = -arrow_offset_sign
|
65
|
+
pos_left_offset = @target.offset().left + arrow.width()*arrow_offset_sign
|
66
|
+
if options.edge == "left"
|
67
|
+
width_left_offset = -@block.width()
|
68
|
+
else if options.edge == "right"
|
69
|
+
width_left_offset = -@block.width() + @target.width()
|
70
|
+
else
|
71
|
+
width_left_offset = -@block.width() + @target.width()/2
|
72
|
+
|
73
|
+
|
74
|
+
@block.css { top: top_offset }
|
75
|
+
@block.css { left: pos_left_offset + width_left_offset }
|
76
|
+
|
77
|
+
|
78
|
+
@set_cookie = () ->
|
79
|
+
$.cookie("UIGuider_#{@block.attr("id")}", "1", { expires: 3560 }) if @block.hasClass("show_once") and @block.attr("id")
|
80
|
+
|
81
|
+
# Finds which part of the screen the target is located,
|
82
|
+
# top/bottom and left/right. It is later used to position
|
83
|
+
# the Guider and its arrow.
|
84
|
+
@target_location = () ->
|
85
|
+
return @target_location_cached if @target_location_cached
|
86
|
+
if $(document).width()/2 - @target.offset().left < 0
|
87
|
+
x = "right"
|
88
|
+
else
|
89
|
+
x = "left"
|
90
|
+
if $(document).height()/2 - @target.offset().top < 0
|
91
|
+
y = "bottom"
|
92
|
+
else
|
93
|
+
y = "top"
|
94
|
+
@target_location_cached = { x: x, y: y }
|
95
|
+
|
96
|
+
show: (options={}) ->
|
97
|
+
return if @hiding
|
98
|
+
UIGuidersCollection.hide_all()
|
99
|
+
return if $.cookie("UIGuider_#{@block.attr("id")}")
|
100
|
+
|
101
|
+
options["side_arrow"] = true if @block.hasClass("side_arrow")
|
102
|
+
options["edge"] = @block.attr("data-target-edge") if @block.attr("data-target-edge")
|
103
|
+
@target = options.target if options.target
|
104
|
+
|
105
|
+
@place_arrow @target_location(), options
|
106
|
+
@place_guider @target_location(), options
|
107
|
+
|
108
|
+
@set_cookie()
|
109
|
+
@block.find(".content").html(options["content"]) if options["content"]
|
110
|
+
@block.fadeIn(300)
|
111
|
+
@state = "visible"
|
112
|
+
|
113
|
+
hide: () ->
|
114
|
+
return if @hiding
|
115
|
+
@hiding = true
|
116
|
+
@block.fadeOut 300, () =>
|
117
|
+
@hiding = false
|
118
|
+
@state = "hidden"
|
119
|
+
|
120
|
+
|
121
|
+
class _UIGuidersCollection
|
122
|
+
|
123
|
+
|
124
|
+
constructor: () ->
|
125
|
+
|
126
|
+
@ui_guiders = []
|
127
|
+
for g in $(".uiGuider")
|
128
|
+
@ui_guiders.push new UIGuider(g)
|
129
|
+
|
130
|
+
for g in @ui_guiders
|
131
|
+
if g.block.hasClass("autoshow")
|
132
|
+
setTimeout () ->
|
133
|
+
g.show()
|
134
|
+
, 1000
|
135
|
+
|
136
|
+
if g.block.hasClass("autohide")
|
137
|
+
g.target.bind "mouseleave", { guider: g }, (event) ->
|
138
|
+
event.data.guider.hide()
|
139
|
+
|
140
|
+
if g.block.attr("data-event-name") && g.block.attr("data-event-name").length > 0
|
141
|
+
g.target.bind g.block.attr("data-event-name"), { guider: g }, (event) =>
|
142
|
+
event.data.guider.show(target: $(event.currentTarget)) unless event.data.guider.state == "visible"
|
143
|
+
|
144
|
+
g.block.find(".close").click () ->
|
145
|
+
g.hide()
|
146
|
+
|
147
|
+
|
148
|
+
find: (id) ->
|
149
|
+
result = null
|
150
|
+
for guider in @ui_guiders
|
151
|
+
result = guider if guider.block.attr("id") == id
|
152
|
+
result
|
153
|
+
|
154
|
+
hide_all: () ->
|
155
|
+
for guider in @ui_guiders
|
156
|
+
guider.hide()
|
157
|
+
|
158
|
+
window._UIGuidersCollection = _UIGuidersCollection
|
159
|
+
window.UIGuidersCollection = new _UIGuidersCollection()
|
@@ -0,0 +1,34 @@
|
|
1
|
+
@mixin clearfix {
|
2
|
+
display: block;
|
3
|
+
&:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
4
|
+
}
|
5
|
+
|
6
|
+
.uiGuider {
|
7
|
+
|
8
|
+
display: none; position: absolute; z-index: 2000;
|
9
|
+
width: 350px; color: #000; font-size: 0px;
|
10
|
+
background: #eecf84 asset_url("ui_guiders/box_bgrnd.png", "image"); background-repeat: repeat-x;
|
11
|
+
|
12
|
+
.content {
|
13
|
+
padding: 1em; margin: -5px 0 0 0; font-size: 11px;
|
14
|
+
a, a:visited { color: #a20000; }
|
15
|
+
}
|
16
|
+
|
17
|
+
img.arrow { position: relative; display: none; height: 5px; width: 13px; }
|
18
|
+
img.arrow.top { @include clearfix; }
|
19
|
+
img.arrow.top.left { top: -5px; left: 5px; margin: 0 0 0 0; }
|
20
|
+
img.arrow.top.right { top: -5px; left: -5px; float: right; margin: 0 0 0 0; }
|
21
|
+
img.arrow.bottom.left { top: 0; left: 5px; margin: 0 0 -5px 0; }
|
22
|
+
img.arrow.bottom.right { top: 0; left: -5px; float: right; margin: 0 0 -5px 0; }
|
23
|
+
|
24
|
+
img.arrow.side { width: 5px; height: 13px; margin-bottom: -13px; }
|
25
|
+
img.arrow.side.left { left: -5px; }
|
26
|
+
img.arrow.side.right { float: right; right: -5px; }
|
27
|
+
|
28
|
+
|
29
|
+
img.close { position: relative; cursor: pointer; float: right; right: 8px; top: 8px; opacity: 0.3; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=30); margin: 0 0 15px 15px; }
|
30
|
+
img.close:hover { opacity: 0.5; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); }
|
31
|
+
|
32
|
+
&.autohide img.close { display: none; }
|
33
|
+
|
34
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module UiGuidersHelper
|
2
|
+
|
3
|
+
def ui_guider(options={}, &block)
|
4
|
+
return if cookies["UIGuider_#{options[:id]}"]
|
5
|
+
if block_given?
|
6
|
+
content = capture(&block)
|
7
|
+
elsif options[:template]
|
8
|
+
content = render(options[:template])
|
9
|
+
else
|
10
|
+
content = options[:text].html_safe
|
11
|
+
end
|
12
|
+
options[:class] = "" unless options[:class]
|
13
|
+
options[:class] += " autoshow" if options[:autoshow]
|
14
|
+
options[:class] += " autohide" if options[:autohide]
|
15
|
+
options[:class] += " show_once" if options[:show_once]
|
16
|
+
options[:class] += " side_arrow" if options[:side_arrow]
|
17
|
+
render :partial => "shared/ui_guider", :locals => { :content => content, :options => options }
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
.uiGuider{ "data-target-element" => options[:target], "data-event-name" => options[:event], :class => options[:class], :id => options[:id], "data-target-edge" => options[:target_edge] }
|
2
|
+
|
3
|
+
= image_tag "ui_guiders/top_arrow.png", :class => "arrow top"
|
4
|
+
= image_tag "ui_guiders/left_arrow.png", :class => "arrow side left"
|
5
|
+
= image_tag "ui_guiders/right_arrow.png", :class => "arrow side right"
|
6
|
+
= image_tag "ui_guiders/close_ico.png", :class => "close"
|
7
|
+
|
8
|
+
.content
|
9
|
+
= content
|
10
|
+
|
11
|
+
= image_tag "ui_guiders/bottom_arrow.png", :class => "arrow bottom"
|
data/lib/ui_guiders.rb
ADDED
metadata
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ui_guiders
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Roman Snitko
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-23 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.1.3
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.1.3
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: jeweler
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 1.8.3
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.8.3
|
46
|
+
description: It's like "Guiders-JS", but easily customizable and less js-centric.
|
47
|
+
email: roman.snitko@gmail.com
|
48
|
+
executables: []
|
49
|
+
extensions: []
|
50
|
+
extra_rdoc_files:
|
51
|
+
- LICENSE.txt
|
52
|
+
- README.markdown
|
53
|
+
files:
|
54
|
+
- .document
|
55
|
+
- Gemfile
|
56
|
+
- Gemfile.lock
|
57
|
+
- LICENSE.txt
|
58
|
+
- README.markdown
|
59
|
+
- Rakefile
|
60
|
+
- Screenshot.png
|
61
|
+
- VERSION
|
62
|
+
- app/assets/images/ui_guiders/bottom_arrow.png
|
63
|
+
- app/assets/images/ui_guiders/box_bgrnd.png
|
64
|
+
- app/assets/images/ui_guiders/close_ico.png
|
65
|
+
- app/assets/images/ui_guiders/left_arrow.png
|
66
|
+
- app/assets/images/ui_guiders/right_arrow.png
|
67
|
+
- app/assets/images/ui_guiders/top_arrow.png
|
68
|
+
- app/assets/javascripts/lib/ui_guiders.js.coffee
|
69
|
+
- app/assets/stylesheets/ui_guiders.css.scss
|
70
|
+
- app/helpers/ui_guiders_helper.rb
|
71
|
+
- app/views/shared/_ui_guider.haml
|
72
|
+
- lib/ui_guiders.rb
|
73
|
+
homepage: http://github.com/snitko/ui_guiders
|
74
|
+
licenses:
|
75
|
+
- MIT
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
hash: -648122855321890561
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
requirements: []
|
96
|
+
rubyforge_project:
|
97
|
+
rubygems_version: 1.8.21
|
98
|
+
signing_key:
|
99
|
+
specification_version: 3
|
100
|
+
summary: Visual guiders for website UIs.
|
101
|
+
test_files: []
|