bootstrap_helpers 0.0.1 → 0.0.2
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/lib/bootstrap_helpers/flash_message_proccessor.rb +27 -0
- data/lib/bootstrap_helpers/version.rb +1 -1
- data/lib/bootstrap_helpers/view_helpers.rb +31 -4
- data/test_app/Gemfile +1 -1
- data/test_app/app/controllers/samples_controller.rb +7 -0
- data/test_app/app/views/samples/bootstrap_flash_messages.html.erb +1 -0
- data/test_app/app/views/samples/index.html.erb +7 -0
- data/test_app/chromedriver.log +0 -0
- data/test_app/config/routes.rb +1 -0
- data/test_app/spec/requests/bootstrap_form_input_spec.rb +14 -4
- data/test_app/spec/spec_helper.rb +5 -0
- metadata +6 -3
@@ -0,0 +1,27 @@
|
|
1
|
+
module BootstrapHelpers
|
2
|
+
|
3
|
+
module FlashMessageProccessor
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
def equal_bootstrap_class(flash_type)
|
8
|
+
case flash_type.to_s.downcase
|
9
|
+
when 'alert'
|
10
|
+
'error'
|
11
|
+
when 'notice'
|
12
|
+
'success'
|
13
|
+
when 'info'
|
14
|
+
'info'
|
15
|
+
else 'warning'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def flash_message_template(message,type)
|
20
|
+
content_tag :div, :class=>"alert-message #{equal_bootstrap_class(type)} fade in", 'data-alert'=>'alert' do
|
21
|
+
content_tag(:a, :href=>'#', :class=>'close'){"×"} + content_tag(:p) {message}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -1,20 +1,47 @@
|
|
1
|
+
require 'bootstrap_helpers/flash_message_proccessor'
|
1
2
|
module BootstrapHelpers
|
2
3
|
|
3
4
|
module ViewHelpers
|
4
5
|
|
6
|
+
include FlashMessageProccessor
|
7
|
+
|
5
8
|
def bootstrap_form_tag(path,legend='',params={})
|
6
9
|
form_tag path, params do
|
7
|
-
concat
|
8
|
-
|
10
|
+
concat(content_tag(:fieldset) do
|
11
|
+
concat content_tag(:legend, legend)
|
12
|
+
yield
|
13
|
+
end)
|
9
14
|
end
|
10
15
|
end
|
11
16
|
|
12
|
-
def bootstrap_form_input(title)
|
13
|
-
|
17
|
+
def bootstrap_form_input(title, params={})
|
18
|
+
params[:class]="clearfix #{params[:class]}"
|
19
|
+
content_tag :div, params do
|
14
20
|
content_tag(:label, title) + content_tag(:div, :class=>'input') { yield }
|
15
21
|
end
|
16
22
|
end
|
17
23
|
|
24
|
+
def bootstrap_form_actions(params={})
|
25
|
+
params[:class]="actions #{params[:class]}"
|
26
|
+
content_tag :div, params do
|
27
|
+
yield
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def bootstrap_flash_messages(params={})
|
32
|
+
params[:class]="bootstrap_flash_messages #{params[:class]}"
|
33
|
+
content_tag :div, params do
|
34
|
+
flash.each do |type, content|
|
35
|
+
case content
|
36
|
+
when Array
|
37
|
+
content.each {|message| concat flash_message_template(message, type)}
|
38
|
+
when String
|
39
|
+
concat flash_message_template(content, type)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
18
45
|
end
|
19
46
|
|
20
47
|
end
|
data/test_app/Gemfile
CHANGED
@@ -4,4 +4,11 @@ class SamplesController < ApplicationController
|
|
4
4
|
|
5
5
|
def bootstrap_form_input;end
|
6
6
|
|
7
|
+
def bootstrap_flash_messages
|
8
|
+
flash[:notice]='Example of notice'
|
9
|
+
flash[:alert]='Example of error'
|
10
|
+
flash[:info] = "Example of info"
|
11
|
+
flash[:just_another_type]=['Example of warning(default flash message)', 'Another warning info']
|
12
|
+
end
|
13
|
+
|
7
14
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= bootstrap_flash_messages :class=>'customer_bootstrap_class' %>
|
@@ -1,3 +1,10 @@
|
|
1
1
|
<%= bootstrap_form_tag "#", "Sample form", :class=>'sample_form' do%>
|
2
2
|
<%= bootstrap_form_input ("Sample input"){ text_field "sample", "input", :class=>'xlarge'}%>
|
3
|
+
<%= bootstrap_form_input ("Custom class", :class=>'custom_class') do%>
|
4
|
+
<h2>nvsdnsksdn</h2>
|
5
|
+
<%end%>
|
6
|
+
<%= bootstrap_form_actions(:class=>'another_action') do%>
|
7
|
+
<%= link_to 'Foo', '#', :class=>'btn'%>
|
8
|
+
<%= link_to 'Boo', '#', :class=>'btn info'%>
|
9
|
+
<%end%>
|
3
10
|
<%end%>
|
File without changes
|
data/test_app/config/routes.rb
CHANGED
@@ -2,5 +2,6 @@ TestApp::Application.routes.draw do
|
|
2
2
|
root :to=>'Samples#index'
|
3
3
|
controller :samples do
|
4
4
|
get '/bootstrap_form_input'=>:bootstrap_form_input, :as=>:bootstrap_form_input
|
5
|
+
get '/bootstrap_flash_messages'=>:bootstrap_flash_messages, :as=>:bootstrap_flash_messages
|
5
6
|
end
|
6
7
|
end
|
@@ -6,13 +6,23 @@ describe SamplesController do
|
|
6
6
|
visit root_path
|
7
7
|
page.should have_selector("form.sample_form")
|
8
8
|
page.should have_selector(".sample_form legend", :text=>'Sample form')
|
9
|
-
page.should have_selector('.sample_form .clearfix')
|
9
|
+
page.should have_selector('.sample_form .clearfix.custom_class')
|
10
10
|
page.should have_selector('.sample_form .clearfix label', :text=>'Sample input')
|
11
|
+
page.should have_selector(".sample_form .actions")
|
12
|
+
page.should have_selector('.sample_form .actions a', :count=>2)
|
11
13
|
end
|
12
14
|
|
13
|
-
it 'should
|
14
|
-
visit
|
15
|
-
page.should have_selector("div.
|
15
|
+
it 'should have several kind of flash' do
|
16
|
+
visit bootstrap_flash_messages_path
|
17
|
+
page.should have_selector("div.customer_bootstrap_class")
|
18
|
+
page.should have_selector("div.alert-message", :count=>5)
|
19
|
+
page.should have_selector("div.alert-message.error", :text=>'Example of error')
|
20
|
+
page.should have_selector("div.alert-message.success", :text=>'Example of notice')
|
21
|
+
page.should have_selector("div.alert-message.info", :text=>'Example of info')
|
22
|
+
page.should have_selector("div.alert-message.warning", :text=>'Example of warning(default flash message)')
|
23
|
+
page.should have_selector("div.alert-message.warning", :text=>'Another warning info')
|
24
|
+
find("div.info a").click
|
25
|
+
page.should_not have_selector("div.alert-message.info")
|
16
26
|
end
|
17
27
|
|
18
28
|
end
|
@@ -5,6 +5,10 @@ require 'rspec/rails'
|
|
5
5
|
require 'rspec/autorun'
|
6
6
|
require 'capybara/rspec'
|
7
7
|
|
8
|
+
Capybara.register_driver :selenium_chrome do |app|
|
9
|
+
Capybara::Selenium::Driver.new(app, :browser => :chrome)
|
10
|
+
end
|
11
|
+
|
8
12
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
9
13
|
# in spec/support/ and its subdirectories.
|
10
14
|
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
|
@@ -31,4 +35,5 @@ RSpec.configure do |config|
|
|
31
35
|
# automatically. This will be the default behavior in future versions of
|
32
36
|
# rspec-rails.
|
33
37
|
config.infer_base_class_for_anonymous_controllers = false
|
38
|
+
Capybara.default_driver = :selenium_chrome
|
34
39
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sergey Pchelincev
|
@@ -34,6 +34,7 @@ files:
|
|
34
34
|
- Rakefile
|
35
35
|
- bootstrap_helpers.gemspec
|
36
36
|
- lib/bootstrap_helpers.rb
|
37
|
+
- lib/bootstrap_helpers/flash_message_proccessor.rb
|
37
38
|
- lib/bootstrap_helpers/railtie.rb
|
38
39
|
- lib/bootstrap_helpers/version.rb
|
39
40
|
- lib/bootstrap_helpers/view_helpers.rb
|
@@ -47,8 +48,10 @@ files:
|
|
47
48
|
- test_app/app/controllers/samples_controller.rb
|
48
49
|
- test_app/app/helpers/application_helper.rb
|
49
50
|
- test_app/app/views/layouts/application.html.erb
|
51
|
+
- test_app/app/views/samples/bootstrap_flash_messages.html.erb
|
50
52
|
- test_app/app/views/samples/bootstrap_form_input.html.erb
|
51
53
|
- test_app/app/views/samples/index.html.erb
|
54
|
+
- test_app/chromedriver.log
|
52
55
|
- test_app/config.ru
|
53
56
|
- test_app/config/application.rb
|
54
57
|
- test_app/config/boot.rb
|