rails-bootstrap-widgets 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +1 -1
- data/README.md +6 -6
- data/app/helpers/rails-bootstrap-widgets/filters_helper.rb +123 -54
- data/app/helpers/rails-bootstrap-widgets/modal_helper.rb +125 -58
- data/lib/rails-bootstrap-widgets/version.rb +1 -1
- data/spec/dummy/log/test.log +142 -0
- data/spec/spec_helper.rb +3 -0
- metadata +15 -15
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# About [![Build Status](https://travis-ci.org/nepalez/widgets.png
|
1
|
+
# About [![Build Status](https://travis-ci.org/nepalez/rails-bootstrap-widgets.png)](https://travis-ci.org/nepalez/rails-bootstrap-widgets) [![Dependency Status](https://gemnasium.com/nepalez/rails-bootstrap-widgets.png)](https://gemnasium.com/nepalez/rails-bootstrap-widgets) [![Code Climate](https://codeclimate.com/github/nepalez/rails-bootstrap-widgets.png)](https://codeclimate.com/github/nepalez/rails-bootstrap-widgets) [![Coverage Status](https://coveralls.io/repos/nepalez/rails-bootstrap-widgets/badge.png)](https://coveralls.io/r/nepalez/rails-bootstrap-widgets)
|
2
2
|
|
3
3
|
The project defines a collection of widgets to be used inside views. It also contains some js files to provide additional behavior for html elemets, created by those widgets. Both helpers and js are compatible with Twitter Bootstrap framework.
|
4
4
|
|
@@ -23,15 +23,15 @@ This group consists of two widgets to be used in views that contain items lists.
|
|
23
23
|
```Ruby
|
24
24
|
pagination_widget(items, options = {})
|
25
25
|
```
|
26
|
-
The widget simply wraps pager (from the ```will-paginate``` gem) into the aside tag
|
26
|
+
The widget simply wraps pager (from the ```will-paginate``` gem) into the ```<aside>``` tag.
|
27
27
|
#### Example
|
28
28
|
```Ruby
|
29
|
-
pagination_widget @items, class: '
|
29
|
+
pagination_widget @items, class: 'span4'
|
30
30
|
```
|
31
31
|
This will create
|
32
32
|
```Html
|
33
|
-
<aside class="
|
34
|
-
<!-- Standard result of 'will_paginate(items, inner_window: 0, outer_window: 0)' call -->
|
33
|
+
<aside class="span4">
|
34
|
+
<!-- Standard result of 'will_paginate(@items, inner_window: 0, outer_window: 0)' call -->
|
35
35
|
</aside>
|
36
36
|
```
|
37
37
|
### filters_widget (helper method)
|
@@ -217,4 +217,4 @@ showModal('<%= post_path(@item) %>', "<%= j render 'modal/show' %>")
|
|
217
217
|
5. Create new Pull Request
|
218
218
|
|
219
219
|
# License
|
220
|
-
This project rocks and uses MIT-LICENSE
|
220
|
+
This project rocks and uses <a href='MIT-LICENSE'>MIT-LICENSE</a>.
|
@@ -1,58 +1,127 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module RailsBootstrapWidgets
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
3
|
+
module FiltersHelper
|
4
|
+
|
5
|
+
# To add pager to a view call <tt>pagination_widget(items, options = {})</tt> with parameters:
|
6
|
+
#
|
7
|
+
# pagination_widget items, class: 'class name'
|
8
|
+
#
|
9
|
+
# This will simply wrap standard pagination from the 'will-paginate' gem into <tt><aside class='class name'></tt> tag
|
10
|
+
#
|
11
|
+
# <aside class='class name'>
|
12
|
+
# <!-- Standard result of 'will_paginate(items, inner_window: 0, outer_window: 0)' call -->
|
13
|
+
# </aside>
|
14
|
+
def pagination_widget(items, options = {})
|
15
|
+
if items.present?
|
16
|
+
content_tag(:aside, (options[:class].to_s.present? ? { class: options[:class] } : {})) do
|
17
|
+
will_paginate(items, inner_window: 0, outer_window: 0).html_safe
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# To create html header for filtering, ordering and paging a list of items call <tt>filters_widget(items, options = {})</tt> with parameters:
|
23
|
+
#
|
24
|
+
# filters_widget (
|
25
|
+
# @items, # list of items (required)
|
26
|
+
# filters: { published: :Published, unpublished: :Unpublished}, # list of filters to select from in a format { key: :name }
|
27
|
+
# filter: 'published', # key of the current filter to apply to items
|
28
|
+
# orders: { tree: :Tree, feed: :Feed }, # list of types of items ordering to select from
|
29
|
+
# order: 'tree' # key of the current order type
|
30
|
+
# )
|
31
|
+
#
|
32
|
+
# This will provide html, that contains:
|
33
|
+
# 1. Input field to select filter from those are available
|
34
|
+
# 2. Input field to select order from those are available
|
35
|
+
# 3. Hidden button to reset filter values (it will authomatically displayed via js)
|
36
|
+
# 4. Button to reload the page with new filter values (it will authomatically removed via js)
|
37
|
+
# 5. Items pager
|
38
|
+
#
|
39
|
+
# <b>Use only one such a call on the page</p>
|
40
|
+
#
|
41
|
+
# For example, the call of the code above will provide html:
|
42
|
+
#
|
43
|
+
# <form accept-charset="UTF-8" action="/" class="span8" id="filters" method="get">
|
44
|
+
# <div style="margin:0;padding:0;display:inline">
|
45
|
+
# <input name="utf8" type="hidden" value="✓" />
|
46
|
+
# </div>
|
47
|
+
# <div class="input-prepend">
|
48
|
+
# <span class="add-on">
|
49
|
+
# <i class="icon-filter"></i>
|
50
|
+
# </span>
|
51
|
+
# <select id="filter" name="filter">
|
52
|
+
# <option value="published" selected="selected">Published</option>
|
53
|
+
# <option value="unpublished">Unpublished</option>
|
54
|
+
# </select>
|
55
|
+
# </div>
|
56
|
+
# <div class="input-prepend">
|
57
|
+
# <span class="add-on">
|
58
|
+
# <i class="icon-order"></i>
|
59
|
+
# </span>
|
60
|
+
# <select id="order" name="order">
|
61
|
+
# <option value="tree" selected="selected">Tree</option>
|
62
|
+
# <option value="feed">Feed</option>
|
63
|
+
# </select>
|
64
|
+
# </div>
|
65
|
+
# <a href="#" class="btn add-on hide" id="reset">
|
66
|
+
# <i class="icon-reset"></i>
|
67
|
+
# </a>
|
68
|
+
# <div class="input-prepend" id="reload">
|
69
|
+
# <span class="add-on">
|
70
|
+
# <i class="icon-reload"></i>
|
71
|
+
# </span>
|
72
|
+
# <input class="btn" name="commit" type="submit" value="Reload" />
|
73
|
+
# </div>
|
74
|
+
# </form>
|
75
|
+
# <aside class="span4">
|
76
|
+
# <!-- Standard result of 'will_paginate(items, inner_window: 0, outer_window: 0)' call -->
|
77
|
+
# </aside>
|
78
|
+
#
|
79
|
+
# This code provides basic html functionality for browsers with js suppord disabled.
|
80
|
+
# For those with js support is enabled, the file <tt>app/assets/javascripts/rails-bootstrap-widgets/filters.js.coffee</tt> turns on extended ajax behavior.
|
81
|
+
def filters_widget(items, options = {})
|
82
|
+
if (options = _prepare(options)).present?
|
83
|
+
form_tag(url_for("/"), method: :get, id: :filters, class: :span8) do
|
84
|
+
(_selector(:filter, options[:filters], options[:filter]) << _selector(:order, options[:orders], options[:order]) << _reset << _reload).html_safe
|
85
|
+
end
|
18
86
|
else
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
87
|
+
""
|
88
|
+
end << pagination_widget(items, class: :span4)
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
def _prepare(options = {})
|
94
|
+
_check(_check(options, :filters, :filter), :orders, :order)
|
95
|
+
end
|
96
|
+
|
97
|
+
def _check(options, key_list, key_item)
|
98
|
+
if (options[key_list].class != Hash && options[key_item].to_s.blank?) || !options[key_list].keys.collect{ |key| key.to_s }.include?(options[key_item].to_s)
|
99
|
+
options.delete(key_list)
|
100
|
+
options.delete(key_item)
|
101
|
+
end
|
102
|
+
options
|
103
|
+
end
|
104
|
+
|
105
|
+
def _selector(type, list, item)
|
106
|
+
if list
|
107
|
+
content_tag(:div, class: "input-prepend") do
|
108
|
+
content_tag(:span, class: "add-on") { "<i class=\"icon-#{ type }\"></i>".html_safe } <<
|
109
|
+
select_tag(type, options_for_select(list.to_a.collect{ |i| i.reverse }, item))
|
110
|
+
end
|
111
|
+
else
|
112
|
+
""
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def _reset
|
117
|
+
link_to("<i class=\"icon-reset\"></i>".html_safe, '#', class: "btn add-on hide", id: :reset)
|
118
|
+
end
|
119
|
+
|
120
|
+
def _reload
|
121
|
+
content_tag(:div, id: :reload, class: "input-prepend") do
|
122
|
+
content_tag(:span, class: "add-on") { "<i class=\"icon-reload\"></i>".html_safe } <<
|
123
|
+
submit_tag(I18n.t("buttons.reload"), class: "btn")
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
58
127
|
end
|
@@ -1,61 +1,128 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module RailsBootstrapWidgets
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
3
|
+
module ModalHelper
|
4
|
+
|
5
|
+
# To create modal form in a view, put your fields into <tt>modal_form_widget(options = {}, &block)</tt>.
|
6
|
+
#
|
7
|
+
# modal_form_widget (
|
8
|
+
# title: 'modal window title', # required
|
9
|
+
# action: 'path to corresponding route', # required
|
10
|
+
# method: 'request method for the form', # "post" by default, "post", "get", "put" or "delete" extected
|
11
|
+
# button: 'text on the submit button', # I18n.t("buttons.submit") by default
|
12
|
+
# cancel: 'text on the cancel form button' # I18n.t("buttons.cancel") by default
|
13
|
+
# ) { "" } # html code of form fields
|
14
|
+
#
|
15
|
+
# The widget puts a list of fields (inputs, selectors etc.) into a modal form window (presented by <tt><form id='modal' class='modal fade'...></tt>)
|
16
|
+
# For example, the call
|
17
|
+
#
|
18
|
+
# modal_form_widget(title: 'Title', button: 'Button', method: :put, action: '/some_addr', cancel: "Cancel") { "content" }
|
19
|
+
#
|
20
|
+
# Will provide html:
|
21
|
+
#
|
22
|
+
# <form accept-charset="UTF-8" action="/some_addr" class="modal fade" data-remote="true" id="modal" method="post">
|
23
|
+
# <div style="margin:0;padding:0;display:inline">
|
24
|
+
# <input name="utf8" type="hidden" value="✓" />
|
25
|
+
# </div>
|
26
|
+
# <input id="_method" name="_method" type="hidden" value="put" />
|
27
|
+
# <header class="modal-header">
|
28
|
+
# <button aria-hidden="true" class="close" data-dismiss="modal" type="button">×</button>
|
29
|
+
# <h1>Title</h1>
|
30
|
+
# </header>
|
31
|
+
# <div class="modal-body">content</div>
|
32
|
+
# <div class="modal-footer">
|
33
|
+
# <a href="#" aria-hidden="true" class="btn" data-dismiss="modal">Cancel</a>
|
34
|
+
# <input class="btn btn-primary" id="submit" name="commit" type="submit" value="Button" />
|
35
|
+
# </div>
|
36
|
+
# </form>
|
37
|
+
def modal_form_widget(options = {}, &block)
|
38
|
+
if (options = _prepare(options, :form)) && (content = block_given? ? capture(&block) : nil)
|
39
|
+
form_tag(options[:action], method: :post, id: "modal", class: "modal fade", remote: true) do
|
40
|
+
(_hidden(options[:method]) << _header(options[:title]) << _body(content) << _footer(:submit, options[:button], options[:cancel])).html_safe
|
41
|
+
end
|
42
|
+
else
|
43
|
+
''
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# To create modal window in a view, put its content into <tt>modal_view_widget(options = {}, &block)</tt>.
|
48
|
+
#
|
49
|
+
# modal_view_widget (
|
50
|
+
# title: 'modal window title', # required
|
51
|
+
# href: 'path for redirection to details', # required
|
52
|
+
# redirect: true|false, # whether redirect button should be shown in the modal window footer (true by default),
|
53
|
+
# button: 'text on the redirect button', # I18n.t("buttons.details") by default
|
54
|
+
# cancel: 'text on the cancel form button' # I18n.t("buttons.cancel") by default
|
55
|
+
# ) { "" } # html code of form fields
|
56
|
+
#
|
57
|
+
# The widget puts html code into a modal window (presented by <tt><div id='modal' class='modal fade'></tt>)
|
58
|
+
# For example, the call
|
59
|
+
#
|
60
|
+
# modal_view_widget(title: 'Title', button: 'Button', href: '/some_addr', cancel: "Cancel") { "content" }
|
61
|
+
#
|
62
|
+
# Will provide html:
|
63
|
+
#
|
64
|
+
# <div class="modal fade" id="modal">
|
65
|
+
# <header class="modal-header">
|
66
|
+
# <button aria-hidden="true" class="close" data-dismiss="modal" type="button">×</button>
|
67
|
+
# <h1>Title</h1>
|
68
|
+
# </header>
|
69
|
+
# <div class="modal-body">content</div>
|
70
|
+
# <div class="modal-footer">
|
71
|
+
# <a href="#" aria-hidden="true" class="btn" data-dismiss="modal">Cancel</a>
|
72
|
+
# <a href="/some_addr" class="btn btn-primary">Button</a>
|
73
|
+
# </div>
|
74
|
+
# </div>
|
75
|
+
def modal_view_widget(options = {}, &block)
|
76
|
+
content = block_given? ? capture(&block) : nil
|
77
|
+
if (options = _prepare(options, :view)) && content
|
78
|
+
content_tag(:div, id: "modal", class: "modal fade") do
|
79
|
+
(_header(options[:title]) << _body(content) << _footer(:button, options[:button], options[:cancel], options[:href], options[:redirect])).html_safe
|
80
|
+
end
|
81
|
+
else
|
82
|
+
''
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
def _prepare(options, type)
|
89
|
+
if (options.class == Hash) && %w(form view).include?(type.to_s) && options[:title].present?
|
90
|
+
options[:redirect] = true unless options[:redirect] == false
|
91
|
+
options[:method] = 'post' unless %w(get put delete).include?(options[:method].to_s)
|
92
|
+
options[:cancel] ||= I18n.t('buttons.cancel')
|
93
|
+
options[:button] ||= (type == :form ? I18n.t('buttons.submit') : I18n.t('buttons.details'))
|
94
|
+
_filter(options, type)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def _filter(options, type)
|
99
|
+
if type == :view
|
100
|
+
options[:href].present? ? options : nil
|
101
|
+
else
|
102
|
+
options[:action].present? && options[:cancel].present? ? options : nil
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def _hidden(method)
|
107
|
+
method.to_s == "post" ? "" : hidden_field_tag(:_method, method.to_s)
|
108
|
+
end
|
109
|
+
|
110
|
+
def _header(title)
|
111
|
+
content_tag(:header, class: 'modal-header') do
|
112
|
+
button_tag(type: :button, class: :close, "data-dismiss" => :modal, "aria-hidden" => 'true') { "\×".html_safe } <<
|
113
|
+
content_tag(:h1, title)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def _body(content)
|
118
|
+
content_tag(:div, class: "modal-body") { content }
|
119
|
+
end
|
120
|
+
|
121
|
+
def _footer(type, button, cancel, href = nil, redirect = true)
|
122
|
+
content_tag(:div, class: 'modal-footer') do
|
123
|
+
link_to(cancel, "#", class: "btn", "data-dismiss" => "modal", "aria-hidden" => "true") <<
|
124
|
+
(type == :submit ? submit_tag(button, id: :submit, class: "btn btn-primary") : (redirect ? link_to(button, href, class: "btn btn-primary") : ""))
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
61
128
|
end
|
data/spec/dummy/log/test.log
CHANGED
@@ -45,3 +45,145 @@ Connecting to database specified by database.yml
|
|
45
45
|
[1m[35m (0.0ms)[0m rollback transaction
|
46
46
|
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
47
47
|
[1m[35m (0.0ms)[0m rollback transaction
|
48
|
+
Connecting to database specified by database.yml
|
49
|
+
Connecting to database specified by database.yml
|
50
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
51
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
52
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
53
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
54
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
55
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
56
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
57
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
58
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
59
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
60
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
61
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
62
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
63
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
64
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
65
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
66
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
67
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
68
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
69
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
70
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
71
|
+
[1m[35m (1.0ms)[0m rollback transaction
|
72
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
73
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
74
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
75
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
76
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
77
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
78
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
79
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
80
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
81
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
82
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
83
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
84
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
85
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
86
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
87
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
88
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
89
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
90
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
91
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
92
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
93
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
94
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
95
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
96
|
+
Connecting to database specified by database.yml
|
97
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
98
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
99
|
+
[1m[36m (1.0ms)[0m [1mbegin transaction[0m
|
100
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
101
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
102
|
+
[1m[35m (1.0ms)[0m rollback transaction
|
103
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
104
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
105
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
106
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
107
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
108
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
109
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
110
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
111
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
112
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
113
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
114
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
115
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
116
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
117
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
118
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
119
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
120
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
121
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
122
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
123
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
124
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
125
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
126
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
127
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
128
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
129
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
130
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
131
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
132
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
133
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
134
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
135
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
136
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
137
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
138
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
139
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
140
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
141
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
142
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
143
|
+
Connecting to database specified by database.yml
|
144
|
+
[1m[36m (1.0ms)[0m [1mbegin transaction[0m
|
145
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
146
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
147
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
148
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
149
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
150
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
151
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
152
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
153
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
154
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
155
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
156
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
157
|
+
[1m[35m (1.0ms)[0m rollback transaction
|
158
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
159
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
160
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
161
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
162
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
163
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
164
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
165
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
166
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
167
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
168
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
169
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
170
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
171
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
172
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
173
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
174
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
175
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
176
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
177
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
178
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
179
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
180
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
181
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
182
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
183
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
184
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
185
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
186
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
187
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
188
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
189
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-bootstrap-widgets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -188,39 +188,39 @@ dependencies:
|
|
188
188
|
- !ruby/object:Gem::Version
|
189
189
|
version: '0'
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
|
-
name:
|
191
|
+
name: rspec-rails
|
192
192
|
requirement: !ruby/object:Gem::Requirement
|
193
193
|
none: false
|
194
194
|
requirements:
|
195
|
-
- -
|
195
|
+
- - ~>
|
196
196
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
197
|
+
version: 2.11.0
|
198
198
|
type: :development
|
199
199
|
prerelease: false
|
200
200
|
version_requirements: !ruby/object:Gem::Requirement
|
201
201
|
none: false
|
202
202
|
requirements:
|
203
|
-
- -
|
203
|
+
- - ~>
|
204
204
|
- !ruby/object:Gem::Version
|
205
|
-
version:
|
205
|
+
version: 2.11.0
|
206
206
|
- !ruby/object:Gem::Dependency
|
207
|
-
name:
|
207
|
+
name: sqlite3
|
208
208
|
requirement: !ruby/object:Gem::Requirement
|
209
209
|
none: false
|
210
210
|
requirements:
|
211
|
-
- -
|
211
|
+
- - ! '>='
|
212
212
|
- !ruby/object:Gem::Version
|
213
|
-
version:
|
213
|
+
version: '0'
|
214
214
|
type: :development
|
215
215
|
prerelease: false
|
216
216
|
version_requirements: !ruby/object:Gem::Requirement
|
217
217
|
none: false
|
218
218
|
requirements:
|
219
|
-
- -
|
219
|
+
- - ! '>='
|
220
220
|
- !ruby/object:Gem::Version
|
221
|
-
version:
|
221
|
+
version: '0'
|
222
222
|
- !ruby/object:Gem::Dependency
|
223
|
-
name:
|
223
|
+
name: coveralls
|
224
224
|
requirement: !ruby/object:Gem::Requirement
|
225
225
|
none: false
|
226
226
|
requirements:
|
@@ -304,7 +304,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
304
304
|
version: '0'
|
305
305
|
segments:
|
306
306
|
- 0
|
307
|
-
hash:
|
307
|
+
hash: 488228417
|
308
308
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
309
309
|
none: false
|
310
310
|
requirements:
|
@@ -313,7 +313,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
313
|
version: '0'
|
314
314
|
segments:
|
315
315
|
- 0
|
316
|
-
hash:
|
316
|
+
hash: 488228417
|
317
317
|
requirements: []
|
318
318
|
rubyforge_project:
|
319
319
|
rubygems_version: 1.8.24
|