css3buttons 0.9.0
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.
- data/.autotest +1 -0
- data/.gitignore +3 -0
- data/.gitmodules +3 -0
- data/.rspec +2 -0
- data/Gemfile +16 -0
- data/Gemfile.lock +92 -0
- data/Rakefile +2 -0
- data/css3buttons.gemspec +23 -0
- data/lib/css3buttons.rb +10 -0
- data/lib/css3buttons/.DS_Store +0 -0
- data/lib/css3buttons/button_group.rb +38 -0
- data/lib/css3buttons/helpers/button_helper.rb +55 -0
- data/lib/css3buttons/version.rb +3 -0
- data/lib/generators/css3buttons/USAGE +3 -0
- data/lib/generators/css3buttons/css3buttons_generator.rb +12 -0
- data/readme.md +94 -0
- data/spec/button_group_spec.rb +15 -0
- data/spec/button_helper_spec.rb +119 -0
- data/spec/spec_helper.rb +10 -0
- metadata +103 -0
data/.autotest
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'autotest/growl'
|
data/.gitignore
ADDED
data/.gitmodules
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in css3buttons.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
gem 'actionpack', '>= 3.0.5'
|
7
|
+
|
8
|
+
group :test do
|
9
|
+
#gem 'rails'
|
10
|
+
gem 'rspec'
|
11
|
+
#gem 'rspec-rails'
|
12
|
+
gem 'autotest'
|
13
|
+
gem 'autotest-growl'
|
14
|
+
gem 'capybara', :git => 'https://github.com/jnicklas/capybara.git'
|
15
|
+
gem 'webrat'
|
16
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
GIT
|
2
|
+
remote: https://github.com/jnicklas/capybara.git
|
3
|
+
revision: 549e67336c712a1ef2119ce5ff64dbbc7542480f
|
4
|
+
specs:
|
5
|
+
capybara (0.4.1.1)
|
6
|
+
mime-types (>= 1.16)
|
7
|
+
nokogiri (>= 1.3.3)
|
8
|
+
rack (>= 1.0.0)
|
9
|
+
rack-test (>= 0.5.4)
|
10
|
+
selenium-webdriver (>= 0.0.27)
|
11
|
+
xpath (~> 0.1.3)
|
12
|
+
|
13
|
+
PATH
|
14
|
+
remote: .
|
15
|
+
specs:
|
16
|
+
css3buttons (0.7.0)
|
17
|
+
actionpack (>= 3.0.5)
|
18
|
+
|
19
|
+
GEM
|
20
|
+
remote: http://rubygems.org/
|
21
|
+
specs:
|
22
|
+
ZenTest (4.5.0)
|
23
|
+
abstract (1.0.0)
|
24
|
+
actionpack (3.0.5)
|
25
|
+
activemodel (= 3.0.5)
|
26
|
+
activesupport (= 3.0.5)
|
27
|
+
builder (~> 2.1.2)
|
28
|
+
erubis (~> 2.6.6)
|
29
|
+
i18n (~> 0.4)
|
30
|
+
rack (~> 1.2.1)
|
31
|
+
rack-mount (~> 0.6.13)
|
32
|
+
rack-test (~> 0.5.7)
|
33
|
+
tzinfo (~> 0.3.23)
|
34
|
+
activemodel (3.0.5)
|
35
|
+
activesupport (= 3.0.5)
|
36
|
+
builder (~> 2.1.2)
|
37
|
+
i18n (~> 0.4)
|
38
|
+
activesupport (3.0.5)
|
39
|
+
autotest (4.4.6)
|
40
|
+
ZenTest (>= 4.4.1)
|
41
|
+
autotest-growl (0.2.9)
|
42
|
+
builder (2.1.2)
|
43
|
+
childprocess (0.1.7)
|
44
|
+
ffi (~> 0.6.3)
|
45
|
+
diff-lcs (1.1.2)
|
46
|
+
erubis (2.6.6)
|
47
|
+
abstract (>= 1.0.0)
|
48
|
+
ffi (0.6.3)
|
49
|
+
rake (>= 0.8.7)
|
50
|
+
i18n (0.5.0)
|
51
|
+
json_pure (1.5.1)
|
52
|
+
mime-types (1.16)
|
53
|
+
nokogiri (1.4.4)
|
54
|
+
rack (1.2.2)
|
55
|
+
rack-mount (0.6.13)
|
56
|
+
rack (>= 1.0.0)
|
57
|
+
rack-test (0.5.7)
|
58
|
+
rack (>= 1.0)
|
59
|
+
rake (0.8.7)
|
60
|
+
rspec (2.5.0)
|
61
|
+
rspec-core (~> 2.5.0)
|
62
|
+
rspec-expectations (~> 2.5.0)
|
63
|
+
rspec-mocks (~> 2.5.0)
|
64
|
+
rspec-core (2.5.1)
|
65
|
+
rspec-expectations (2.5.0)
|
66
|
+
diff-lcs (~> 1.1.2)
|
67
|
+
rspec-mocks (2.5.0)
|
68
|
+
rubyzip (0.9.4)
|
69
|
+
selenium-webdriver (0.1.3)
|
70
|
+
childprocess (~> 0.1.5)
|
71
|
+
ffi (~> 0.6.3)
|
72
|
+
json_pure
|
73
|
+
rubyzip
|
74
|
+
tzinfo (0.3.25)
|
75
|
+
webrat (0.7.2)
|
76
|
+
nokogiri (>= 1.2.0)
|
77
|
+
rack (>= 1.0)
|
78
|
+
rack-test (>= 0.5.3)
|
79
|
+
xpath (0.1.3)
|
80
|
+
nokogiri (~> 1.3)
|
81
|
+
|
82
|
+
PLATFORMS
|
83
|
+
ruby
|
84
|
+
|
85
|
+
DEPENDENCIES
|
86
|
+
actionpack (>= 3.0.5)
|
87
|
+
autotest
|
88
|
+
autotest-growl
|
89
|
+
capybara!
|
90
|
+
css3buttons!
|
91
|
+
rspec
|
92
|
+
webrat
|
data/Rakefile
ADDED
data/css3buttons.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "css3buttons/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "css3buttons"
|
7
|
+
s.version = Css3buttons::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Nicholas Bruning"]
|
10
|
+
s.email = ["nicholas@bruning.com.au"]
|
11
|
+
s.homepage = "https://github.com/thetron/css3buttons_rails_helpers"
|
12
|
+
s.summary = %q{Easy, beautiful buttons, the CSS3 way.}
|
13
|
+
s.description = %q{Rails helper methods and generators for the css3buttons by Michael Henriksen.}
|
14
|
+
|
15
|
+
s.rubyforge_project = "css3buttons"
|
16
|
+
|
17
|
+
s.add_dependency 'actionpack', '>= 3.0.0'
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
end
|
data/lib/css3buttons.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'action_controller'
|
2
|
+
require 'action_view'
|
3
|
+
|
4
|
+
module Css3buttons
|
5
|
+
module Helpers
|
6
|
+
autoload :ButtonHelper, 'css3buttons/helpers/button_helper'
|
7
|
+
end
|
8
|
+
autoload :ButtonGroup, 'css3buttons/button_group'
|
9
|
+
ActionController::Base.helper(Css3buttons::Helpers::ButtonHelper)
|
10
|
+
end
|
Binary file
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Css3buttons
|
2
|
+
class ButtonGroup
|
3
|
+
attr_reader :template, :button_count
|
4
|
+
|
5
|
+
def initialize(template)
|
6
|
+
@button_count = 0
|
7
|
+
@template = template
|
8
|
+
end
|
9
|
+
|
10
|
+
def render(&block)
|
11
|
+
add_group_classes(template.capture(self, &block)) if block_given?
|
12
|
+
end
|
13
|
+
|
14
|
+
def method_missing(method_name, *args)
|
15
|
+
name = args[0]
|
16
|
+
options = args[1] || {}
|
17
|
+
html_options = args[2] || {}
|
18
|
+
html_options[:class] ||= ""
|
19
|
+
html_options[:class] += " __css3buttons_group_#{@button_count}__"
|
20
|
+
@button_count += 1
|
21
|
+
@template.send(method_name, name, options, html_options)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def add_group_classes(html)
|
26
|
+
(0...@button_count).to_a.each do |index|
|
27
|
+
if index == 0
|
28
|
+
html.gsub! /__css3buttons_group_#{index}__/, "left"
|
29
|
+
elsif index == @button_count - 1
|
30
|
+
html.gsub! /__css3buttons_group_#{index}__/, "right"
|
31
|
+
else
|
32
|
+
html.gsub! /__css3buttons_group_#{index}__/, "middle"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
html
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Css3buttons
|
2
|
+
module Helpers
|
3
|
+
module ButtonHelper
|
4
|
+
|
5
|
+
def css3buttons_stylesheets(options = {})
|
6
|
+
options[:include_reset] = true unless options.has_key?(:include_reset)
|
7
|
+
if options[:include_reset] == true
|
8
|
+
stylesheet_link_tag "css3buttons/reset", "css3buttons/css3buttons"
|
9
|
+
else
|
10
|
+
stylesheet_link_tag "css3buttons/css3buttons"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def button_group(&block)
|
15
|
+
group = Css3buttons::ButtonGroup.new(self)
|
16
|
+
group.render(&block) if block_given?
|
17
|
+
end
|
18
|
+
|
19
|
+
# add the dynamic methods for all button types
|
20
|
+
def self.included(base)
|
21
|
+
qualifiers = ["", "positive", "negative", "pill", "positive_pill", "negative_pill"]
|
22
|
+
icons = ["link", "book","calendar","chat","check","clock","cog","comment","cross","downarrow","fork","heart","home","key","leftarrow","lock","loop","magnifier","mail","move","pen","pin","plus","reload","rightarrow","rss","tag","trash","unlock","uparrow","user"]
|
23
|
+
qualifiers.each do |qualifier|
|
24
|
+
icons.each do |icon|
|
25
|
+
method_name = (qualifier.split("_") + [icon, "button", "to"]).join("_")
|
26
|
+
define_method(:"#{method_name}") do |*args, &block|
|
27
|
+
icon_tag = (icon != icons.first) ? content_tag(:span, "", :class => "icon #{icon}") : ""
|
28
|
+
if block_given?
|
29
|
+
options = args.first || {}
|
30
|
+
html_options = args.second
|
31
|
+
html_options = add_classes_to_html_options [qualifier.split("_"), 'button'], html_options
|
32
|
+
link_to(icon_tag + capture(&block).html_safe, options, html_options)
|
33
|
+
else
|
34
|
+
name = args[0]
|
35
|
+
options = args[1] || {}
|
36
|
+
html_options = args[2] || {}
|
37
|
+
html_options = add_classes_to_html_options [qualifier.split("_"), 'button'], html_options
|
38
|
+
link_to(icon_tag + name.html_safe, options, html_options)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
protected
|
46
|
+
def add_classes_to_html_options(classes, html_options = {})
|
47
|
+
classes = classes.delete_if{|c| c.blank?}
|
48
|
+
html_options ||= {}
|
49
|
+
html_options[:class] ||= ""
|
50
|
+
html_options[:class] = (html_options[:class].split(" ") + classes).join(" ")
|
51
|
+
html_options
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class Css3buttonsGenerator < Rails::Generators::Base
|
2
|
+
desc "Copies css3buttons stylesheets and images"
|
3
|
+
source_root File.expand_path('../templates', __FILE__)
|
4
|
+
|
5
|
+
def copy_stylesheets_and_images
|
6
|
+
copy_file "public/images/css3buttons_backgrounds.png", "public/images/css3buttons/css3buttons_backgrounds.png"
|
7
|
+
copy_file "public/images/css3buttons_icons.png", "public/images/css3buttons/css3buttons_icons.png"
|
8
|
+
copy_file "public/stylesheets/css3buttons.css", "public/stylesheets/css3buttons/css3buttons.css"
|
9
|
+
copy_file "public/stylesheets/reset.css", "public/stylesheets/css3buttons/reset.css"
|
10
|
+
gsub_file "public/stylesheets/css3buttons/css3buttons.css", /\.\.\/images/, "/images/css3buttons"
|
11
|
+
end
|
12
|
+
end
|
data/readme.md
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
# css3buttons gem - helper methods for css3buttons
|
2
|
+
|
3
|
+
The css3buttons gem is a small set of helper methods designed to work in
|
4
|
+
conjunction with the __awesome__ [css3buttons by Michael Henriksen](http://css3buttons.michaelhenriksen.dk).
|
5
|
+
|
6
|
+
The helpers allow rails developers to quickly and easily leverage this
|
7
|
+
fantastic CSS library - without cluttering up your views and calls to
|
8
|
+
`link_to`.
|
9
|
+
|
10
|
+
# Getting started
|
11
|
+
|
12
|
+
Include the gem in your gemfile:
|
13
|
+
|
14
|
+
gem 'css3buttons'
|
15
|
+
|
16
|
+
Run the generators
|
17
|
+
|
18
|
+
$ rails g css3buttons
|
19
|
+
|
20
|
+
Which will copy the stylesheets and icon/button images into your public
|
21
|
+
directory.
|
22
|
+
|
23
|
+
In your layout, add the following:
|
24
|
+
|
25
|
+
<%= css3buttons_stylesheets %>
|
26
|
+
|
27
|
+
Which will add both the `reset.css` and the `css3buttons.css` stylesheet
|
28
|
+
link tags.
|
29
|
+
|
30
|
+
_Please note_ since this helper includes the css3buttons
|
31
|
+
reset stylesheet, it's advisable to place this helper before all your
|
32
|
+
other stylsheet declarations. However, if you'd like to use your own
|
33
|
+
reset, you can skip it with:
|
34
|
+
|
35
|
+
<%= css3buttons_stylesheets :include_reset => false %>
|
36
|
+
|
37
|
+
# The basics
|
38
|
+
|
39
|
+
To change your `link_to` calls to buttons, simply use `link_button_to`.
|
40
|
+
For example:
|
41
|
+
|
42
|
+
<%= link_button_to "Search", search_path %>
|
43
|
+
|
44
|
+
The helper method accept all the same parameters as `link_to` to
|
45
|
+
upgrading and downgrading so css3buttons should be a snap.
|
46
|
+
|
47
|
+
|
48
|
+
# Icons and pills and colours, oh my!
|
49
|
+
|
50
|
+
The gem also creates a huge stack of dynamic helpers, to assist in adding
|
51
|
+
icons, colours and styles to your buttons.
|
52
|
+
|
53
|
+
## Icons
|
54
|
+
|
55
|
+
To add an icon from [the current icon list](http://css3buttons.michaelhenriksen.dk/), simply replace `link` in the helper method with the name of the icon you'd like to use. For example:
|
56
|
+
|
57
|
+
<%= magnifier_button_to "Search", search_path %>
|
58
|
+
<%= user_button_to "Account", edit_current_user_path %>
|
59
|
+
<%= pin_button_to "Mark on map", edit_map_path %>
|
60
|
+
|
61
|
+
## Styles
|
62
|
+
|
63
|
+
Just like the icons, simply prepend your button calls with `pill_`:
|
64
|
+
|
65
|
+
<%= pill_link_button_to "Archive", archive_path %>
|
66
|
+
|
67
|
+
## Colors
|
68
|
+
|
69
|
+
Again with colors - simply add `positive_` or `negative_` to the front
|
70
|
+
of your method call:
|
71
|
+
|
72
|
+
<%= negative_trash_button_to "Delete", delete_path %>
|
73
|
+
<%= positive_pill_reload_button_to "Reload", reload_path %>
|
74
|
+
|
75
|
+
## Button groups
|
76
|
+
|
77
|
+
There's also a helper to automatically add the `left`, `middle` and
|
78
|
+
`right` classes for grouped buttons.
|
79
|
+
|
80
|
+
<%= button_group do |group| %>
|
81
|
+
<%= group.link_button_to "Show", @post %>
|
82
|
+
<%= group.link_button_to "Edit", edit_post_path(@post) %>
|
83
|
+
<%= group.negative_trash_button_to "Delete", @post %>
|
84
|
+
<% end >
|
85
|
+
|
86
|
+
# What's missing?
|
87
|
+
|
88
|
+
There's a couple of things I've noticed are still missing from the gem,
|
89
|
+
namely the `big` and `primary` options - which I will add very soon, for
|
90
|
+
the next release.
|
91
|
+
|
92
|
+
The `button_group` helper needs some proper tests, if anyone can point me
|
93
|
+
as to how to stub out a rails request template in RSpec, that would be much
|
94
|
+
appreciated!
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include ActionView::Helpers::UrlHelper
|
4
|
+
include Css3buttons::Helpers::ButtonHelper
|
5
|
+
|
6
|
+
describe Css3buttons::ButtonGroup do
|
7
|
+
before :each do
|
8
|
+
stub_template "posts/_actions.html.erb" => "<= button_group do\nlink_button_to 'show', '/post/345'\nlink_button_to 'edit', '/post/345/edit'\nlink_button_to 'delete', '/post/345'"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should add a class of first to the first link" do
|
12
|
+
render
|
13
|
+
puts rendered
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,119 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
include ActionView::Helpers::UrlHelper
|
3
|
+
include Css3buttons::Helpers::ButtonHelper
|
4
|
+
|
5
|
+
describe Css3buttons::Helpers::ButtonHelper do
|
6
|
+
before :each do
|
7
|
+
@icons = ["book","calendar","chat","check","clock","cog","comment","cross","downarrow","fork","heart","home","key","leftarrow","lock","loop","magnifier","mail","move","pen","pin","plus","reload","rightarrow","rss","tag","trash","unlock","uparrow","user"]
|
8
|
+
@qualifiers = ['pill', 'negative', 'positive']
|
9
|
+
@label = "Search this site"
|
10
|
+
@path = "/search/site"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should create basic buttons" do
|
14
|
+
link = html(link_button_to(@label, @path))
|
15
|
+
|
16
|
+
link.should have_selector("a.button[href='#{@path}']")
|
17
|
+
@qualifiers.each do |qualifier|
|
18
|
+
link.should_not have_selector("a.#{qualifier}")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should create basic buttons with valid icons" do
|
23
|
+
@icons.each do |icon|
|
24
|
+
link = html(send(:"#{icon}_button_to", @label, @path))
|
25
|
+
link.should have_selector("a.button[href='#{@path}']")
|
26
|
+
link.should have_selector("a.button span.icon.#{icon}")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
it "should create positive buttons" do
|
30
|
+
link = html(positive_link_button_to(@label, @path))
|
31
|
+
link.should have_selector("a.button.positive[href='#{@path}']")
|
32
|
+
@qualifiers.each do |qualifier|
|
33
|
+
link.should_not have_selector("a.#{qualifier}") unless qualifier == "positive"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should create negative buttons" do
|
38
|
+
link = html(negative_link_button_to(@label, @path))
|
39
|
+
link.should have_selector("a.button.negative[href='#{@path}']")
|
40
|
+
@qualifiers.each do |qualifier|
|
41
|
+
link.should_not have_selector("a.#{qualifier}") unless qualifier == "negative"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should create positive buttons with valid icons" do
|
46
|
+
@icons.each do |icon|
|
47
|
+
link = html(send(:"positive_#{icon}_button_to", @label, @path))
|
48
|
+
link.should have_selector("a.button.positive[href='#{@path}']")
|
49
|
+
link.should have_selector("a.button.positive span.icon.#{icon}")
|
50
|
+
@qualifiers.each do |qualifier|
|
51
|
+
link.should_not have_selector("a.#{qualifier}") unless qualifier == "positive"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should create negative buttons with valid icons" do
|
57
|
+
@icons.each do |icon|
|
58
|
+
link = html(send(:"negative_#{icon}_button_to", @label, @path))
|
59
|
+
link.should have_selector("a.button.negative[href='#{@path}']")
|
60
|
+
link.should have_selector("a.button.negative span.icon.#{icon}")
|
61
|
+
@qualifiers.each do |qualifier|
|
62
|
+
link.should_not have_selector("a.#{qualifier}") unless qualifier == "negative"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should create pill buttons" do
|
68
|
+
link = html(pill_link_button_to(@label, @path))
|
69
|
+
link.should have_selector("a.button.pill[href='#{@path}']")
|
70
|
+
@qualifiers.each do |qualifier|
|
71
|
+
link.should_not have_selector("a.#{qualifier}") unless qualifier == "pill"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should create pill buttons with valid icons" do
|
76
|
+
@icons.each do |icon|
|
77
|
+
link = html(send(:"pill_#{icon}_button_to", @label, @path))
|
78
|
+
link.should have_selector("a.button.pill[href='#{@path}']")
|
79
|
+
link.should have_selector("a.button.pill span.icon.#{icon}")
|
80
|
+
@qualifiers.each do |qualifier|
|
81
|
+
link.should_not have_selector("a.#{qualifier}") unless qualifier == "pill"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should create positive pill buttons" do
|
87
|
+
link = html(positive_pill_link_button_to(@label, @path))
|
88
|
+
link.should have_selector("a.button.pill.positive[href='#{@path}']")
|
89
|
+
link.should_not have_selector("a.negative")
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should create negative pill buttons" do
|
93
|
+
link = html(negative_pill_link_button_to(@label, @path))
|
94
|
+
link.should have_selector("a.button.pill.negative[href='#{@path}']")
|
95
|
+
link.should_not have_selector("a.positive")
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should create positive pill buttons with valid icons" do
|
99
|
+
@icons.each do |icon|
|
100
|
+
link = html(send(:"positive_pill_#{icon}_button_to", @label, @path))
|
101
|
+
link.should have_selector("a.button.positive.pill[href='#{@path}']")
|
102
|
+
link.should have_selector("a.button.positive.pill span.icon.#{icon}")
|
103
|
+
link.should_not have_selector("a.negative")
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should create negative pill buttons with valid icons" do
|
108
|
+
@icons.each do |icon|
|
109
|
+
link = html(send(:"negative_pill_#{icon}_button_to", @label, @path))
|
110
|
+
link.should have_selector("a.button.negative.pill[href='#{@path}']")
|
111
|
+
link.should have_selector("a.button.negative.pill span.icon.#{icon}")
|
112
|
+
link.should_not have_selector("a.positive")
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def html(text)
|
117
|
+
Capybara::string(text)
|
118
|
+
end
|
119
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: css3buttons
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 59
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 9
|
9
|
+
- 0
|
10
|
+
version: 0.9.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Nicholas Bruning
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-03-21 00:00:00 +11:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: actionpack
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
version: 3.0.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
description: Rails helper methods and generators for the css3buttons by Michael Henriksen.
|
38
|
+
email:
|
39
|
+
- nicholas@bruning.com.au
|
40
|
+
executables: []
|
41
|
+
|
42
|
+
extensions: []
|
43
|
+
|
44
|
+
extra_rdoc_files: []
|
45
|
+
|
46
|
+
files:
|
47
|
+
- .autotest
|
48
|
+
- .gitignore
|
49
|
+
- .gitmodules
|
50
|
+
- .rspec
|
51
|
+
- Gemfile
|
52
|
+
- Gemfile.lock
|
53
|
+
- Rakefile
|
54
|
+
- css3buttons.gemspec
|
55
|
+
- lib/css3buttons.rb
|
56
|
+
- lib/css3buttons/.DS_Store
|
57
|
+
- lib/css3buttons/button_group.rb
|
58
|
+
- lib/css3buttons/helpers/button_helper.rb
|
59
|
+
- lib/css3buttons/version.rb
|
60
|
+
- lib/generators/css3buttons/USAGE
|
61
|
+
- lib/generators/css3buttons/css3buttons_generator.rb
|
62
|
+
- readme.md
|
63
|
+
- spec/button_group_spec.rb
|
64
|
+
- spec/button_helper_spec.rb
|
65
|
+
- spec/spec_helper.rb
|
66
|
+
has_rdoc: true
|
67
|
+
homepage: https://github.com/thetron/css3buttons_rails_helpers
|
68
|
+
licenses: []
|
69
|
+
|
70
|
+
post_install_message:
|
71
|
+
rdoc_options: []
|
72
|
+
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
hash: 3
|
81
|
+
segments:
|
82
|
+
- 0
|
83
|
+
version: "0"
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 3
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
version: "0"
|
93
|
+
requirements: []
|
94
|
+
|
95
|
+
rubyforge_project: css3buttons
|
96
|
+
rubygems_version: 1.3.7
|
97
|
+
signing_key:
|
98
|
+
specification_version: 3
|
99
|
+
summary: Easy, beautiful buttons, the CSS3 way.
|
100
|
+
test_files:
|
101
|
+
- spec/button_group_spec.rb
|
102
|
+
- spec/button_helper_spec.rb
|
103
|
+
- spec/spec_helper.rb
|