spurs 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/README.rdoc +27 -0
- data/app/assets/javascripts/spurs.js +0 -1
- data/app/assets/stylesheets/spurs/subnav.sass +144 -0
- data/app/assets/stylesheets/spurs/vcenter.css.sass +1 -0
- data/app/assets/stylesheets/spurs.css +1 -0
- data/app/views/spurs/modals/spawn.js.erb +2 -1
- data/lib/spurs/badge.rb +13 -0
- data/lib/spurs/flash/helper.rb +2 -1
- data/lib/spurs/modal/controller_mods.rb +5 -9
- data/lib/spurs/modal/helper.rb +1 -1
- data/lib/spurs/nav/builder.rb +45 -22
- data/lib/spurs/nav/helper.rb +1 -1
- data/lib/spurs/section/helper.rb +1 -1
- data/lib/spurs/version.rb +1 -1
- data/lib/spurs.rb +2 -0
- data/test/dummy/log/test.log +0 -0
- metadata +13 -3
- data/README.markdown +0 -118
data/README.rdoc
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
== Spurs
|
2
|
+
|
3
|
+
|
4
|
+
Rails is a web-application framework that includes everything needed to create
|
5
|
+
database-backed web applications according to the Model-View-Control pattern.
|
6
|
+
|
7
|
+
This pattern splits the view (also called the presentation) into "dumb"
|
8
|
+
templates that are primarily responsible for inserting pre-built data in between
|
9
|
+
HTML tags. The model contains the "smart" domain objects (such as Account,
|
10
|
+
Product, Person, Post) that holds all the business logic and knows how to
|
11
|
+
persist themselves to a database. The controller handles the incoming requests
|
12
|
+
(such as Save New Account, Update Product, Show Post) by manipulating the model
|
13
|
+
and directing data to the view.
|
14
|
+
|
15
|
+
In Rails, the model is handled by what's called an object-relational mapping
|
16
|
+
layer entitled Active Record. This layer allows you to present the data from
|
17
|
+
database rows as objects and embellish these data objects with business logic
|
18
|
+
methods. You can read more about Active Record in
|
19
|
+
link:files/vendor/rails/activerecord/README.html.
|
20
|
+
|
21
|
+
The controller and view are handled by the Action Pack, which handles both
|
22
|
+
layers by its two parts: Action View and Action Controller. These two layers
|
23
|
+
are bundled in a single package due to their heavy interdependence. This is
|
24
|
+
unlike the relationship between the Active Record and Action Pack that is much
|
25
|
+
more separate. Each of these packages can be used independently outside of
|
26
|
+
Rails. You can read more about Action Pack in
|
27
|
+
link:files/vendor/rails/actionpack/README.html.
|
@@ -0,0 +1,144 @@
|
|
1
|
+
.subnav
|
2
|
+
width: 100%
|
3
|
+
height: 36px
|
4
|
+
background-color: #eeeeee
|
5
|
+
//Old browsers
|
6
|
+
background-repeat: repeat-x
|
7
|
+
// Repeat the gradient
|
8
|
+
background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
|
9
|
+
// FF3.6+
|
10
|
+
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #eeeeee))
|
11
|
+
// Chrome,Safari4+
|
12
|
+
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
|
13
|
+
// Chrome 10+,Safari 5.1+
|
14
|
+
background-image: -ms-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
|
15
|
+
// IE10+
|
16
|
+
background-image: -o-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
|
17
|
+
// Opera 11.10+
|
18
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 )
|
19
|
+
// IE6-9
|
20
|
+
background-image: linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
|
21
|
+
// W3C
|
22
|
+
border: 1px solid #e5e5e5
|
23
|
+
-webkit-border-radius: 4px
|
24
|
+
-moz-border-radius: 4px
|
25
|
+
border-radius: 4px
|
26
|
+
.nav
|
27
|
+
margin-bottom: 0
|
28
|
+
>
|
29
|
+
li > a
|
30
|
+
margin: 0
|
31
|
+
padding-top: 11px
|
32
|
+
padding-bottom: 11px
|
33
|
+
border-left: 1px solid #f5f5f5
|
34
|
+
border-right: 1px solid #e5e5e5
|
35
|
+
-webkit-border-radius: 0
|
36
|
+
-moz-border-radius: 0
|
37
|
+
border-radius: 0
|
38
|
+
.active > a
|
39
|
+
padding-left: 13px
|
40
|
+
color: #777
|
41
|
+
background-color: #e9e9e9
|
42
|
+
border-right-color: #ddd
|
43
|
+
border-left: 0
|
44
|
+
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
|
45
|
+
-moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
|
46
|
+
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
|
47
|
+
&:hover
|
48
|
+
padding-left: 13px
|
49
|
+
color: #777
|
50
|
+
background-color: #e9e9e9
|
51
|
+
border-right-color: #ddd
|
52
|
+
border-left: 0
|
53
|
+
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
|
54
|
+
-moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
|
55
|
+
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
|
56
|
+
.caret, &:hover .caret
|
57
|
+
border-top-color: #777
|
58
|
+
li
|
59
|
+
&:first-child > a
|
60
|
+
border-left: 0
|
61
|
+
padding-left: 12px
|
62
|
+
-webkit-border-radius: 4px 0 0 4px
|
63
|
+
-moz-border-radius: 4px 0 0 4px
|
64
|
+
border-radius: 4px 0 0 4px
|
65
|
+
&:hover
|
66
|
+
border-left: 0
|
67
|
+
padding-left: 12px
|
68
|
+
-webkit-border-radius: 4px 0 0 4px
|
69
|
+
-moz-border-radius: 4px 0 0 4px
|
70
|
+
border-radius: 4px 0 0 4px
|
71
|
+
&:last-child > a
|
72
|
+
border-right: 0
|
73
|
+
.dropdown-menu
|
74
|
+
-webkit-border-radius: 0 0 4px 4px
|
75
|
+
-moz-border-radius: 0 0 4px 4px
|
76
|
+
border-radius: 0 0 4px 4px
|
77
|
+
|
78
|
+
// Fixed subnav on scroll, but only for 980px and up (sorry IE!)
|
79
|
+
@media (min-width: 980px)
|
80
|
+
.subnav-fixed
|
81
|
+
position: fixed
|
82
|
+
top: 40px
|
83
|
+
left: 0
|
84
|
+
right: 0
|
85
|
+
z-index: 999
|
86
|
+
border-color: #d5d5d5
|
87
|
+
border-width: 0 0 1px
|
88
|
+
// drop the border on the fixed edges
|
89
|
+
-webkit-border-radius: 0
|
90
|
+
-moz-border-radius: 0
|
91
|
+
border-radius: 0
|
92
|
+
-webkit-box-shadow: inset 0 1px 0 white, 0 1px 5px rgba(0, 0, 0, 0.1)
|
93
|
+
-moz-box-shadow: inset 0 1px 0 white, 0 1px 5px rgba(0, 0, 0, 0.1)
|
94
|
+
box-shadow: inset 0 1px 0 white, 0 1px 5px rgba(0, 0, 0, 0.1)
|
95
|
+
.nav
|
96
|
+
width: 938px
|
97
|
+
margin: 0 auto
|
98
|
+
padding: 0 1px
|
99
|
+
.subnav .nav > li:first-child > a
|
100
|
+
-webkit-border-radius: 0
|
101
|
+
-moz-border-radius: 0
|
102
|
+
border-radius: 0
|
103
|
+
&:hover
|
104
|
+
-webkit-border-radius: 0
|
105
|
+
-moz-border-radius: 0
|
106
|
+
border-radius: 0
|
107
|
+
|
108
|
+
// LARGE DESKTOP SCREENS
|
109
|
+
@media (min-width: 1210px)
|
110
|
+
// Update subnav container
|
111
|
+
.subnav-fixed .nav
|
112
|
+
width: 1168px
|
113
|
+
// 2px less to account for left/right borders being removed when in fixed mode
|
114
|
+
|
115
|
+
@media (max-width: 768px)
|
116
|
+
.subnav
|
117
|
+
margin: 5px
|
118
|
+
position: static
|
119
|
+
top: auto
|
120
|
+
z-index: auto
|
121
|
+
width: auto
|
122
|
+
height: auto
|
123
|
+
background: #fff /* whole background property since we use a background-image for gradient */
|
124
|
+
-webkit-box-shadow: none
|
125
|
+
-moz-box-shadow: none
|
126
|
+
box-shadow: none
|
127
|
+
.nav > li
|
128
|
+
float: none
|
129
|
+
a
|
130
|
+
border: 0
|
131
|
+
&:first-child > a, &:first-child > a:hover
|
132
|
+
-webkit-border-radius: 4px 4px 0 0
|
133
|
+
-moz-border-radius: 4px 4px 0 0
|
134
|
+
border-radius: 4px 4px 0 0
|
135
|
+
|
136
|
+
.responsive_nav
|
137
|
+
&.nav > li
|
138
|
+
float: none
|
139
|
+
a
|
140
|
+
border: 0
|
141
|
+
&:first-child > a, &:first-child > a:hover
|
142
|
+
-webkit-border-radius: 4px 4px 0 0
|
143
|
+
-moz-border-radius: 4px 4px 0 0
|
144
|
+
border-radius: 4px 4px 0 0
|
data/lib/spurs/badge.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
module Spurs
|
2
|
+
module Badge
|
3
|
+
module Helper
|
4
|
+
def spurs_badge(content, options={})
|
5
|
+
class_str ="badge"
|
6
|
+
if options[:type]
|
7
|
+
class_str.concat(" badge-#{options[:type]}")
|
8
|
+
end
|
9
|
+
content_tag(:span,content.html_safe,:class => class_str)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/spurs/flash/helper.rb
CHANGED
@@ -42,6 +42,7 @@ module Spurs
|
|
42
42
|
content_tag(:div, alert_content.html_safe, :class => "alert alert-block #{extra_class}")
|
43
43
|
end
|
44
44
|
|
45
|
+
|
45
46
|
##
|
46
47
|
# Generate HTML for flash messages
|
47
48
|
# = Examples
|
@@ -65,7 +66,7 @@ module Spurs
|
|
65
66
|
end
|
66
67
|
flash.clear
|
67
68
|
|
68
|
-
|
69
|
+
Rails.logger.info("MESSAGE HASH >>#{message_hash.to_json}")
|
69
70
|
|
70
71
|
|
71
72
|
#process the message hash now
|
@@ -10,28 +10,24 @@ module Spurs
|
|
10
10
|
{ :name => :save, :position => :right, :action => :submit_form_and_close_modal, :class => "btn-primary btn-large" },
|
11
11
|
]
|
12
12
|
}.merge(options)
|
13
|
-
logger.debug("spawn_form_modal options = #{opts.to_json}")
|
14
|
-
|
15
13
|
spawn_modal(title, partial, object, opts)
|
16
14
|
end
|
17
15
|
|
18
16
|
|
19
17
|
|
20
18
|
def spawn_close_modal(title, file, options={ })
|
21
|
-
opts[:content_options] = options
|
22
19
|
opts = {
|
23
20
|
:actions => [
|
24
21
|
{ :name => :cancel, :position => :left, :action => :close_modal, :class => "btn-large" }
|
25
22
|
]
|
26
23
|
}.merge(options)
|
27
|
-
logger.debug("spawn_close_modal options = #{opts.to_json}")
|
28
24
|
spawn_modal(title, file, nil, opts)
|
29
25
|
end
|
30
26
|
|
31
27
|
|
32
28
|
|
33
29
|
def spawn_modal(title, partial, object, options={ })
|
34
|
-
|
30
|
+
|
35
31
|
opts = {
|
36
32
|
:header => {
|
37
33
|
:title => title.titlecase,
|
@@ -39,10 +35,10 @@ module Spurs
|
|
39
35
|
},
|
40
36
|
|
41
37
|
}.merge(options)
|
42
|
-
|
43
|
-
render :file => "spurs/modals/spawn", :locals => {
|
44
|
-
|
45
|
-
|
38
|
+
|
39
|
+
render :file => "spurs/modals/spawn", :locals => { :modal_file_or_partial => partial,
|
40
|
+
:modal_object => object,
|
41
|
+
:modal_options => opts }
|
46
42
|
end
|
47
43
|
end
|
48
44
|
end
|
data/lib/spurs/modal/helper.rb
CHANGED
@@ -10,7 +10,7 @@ module Spurs
|
|
10
10
|
modal_id = "modal_#{SecureRandom::hex(5)}"
|
11
11
|
|
12
12
|
options_for_content = options[:content_options] ? options.delete(:content_options) : { }
|
13
|
-
|
13
|
+
logger.debug "ContentOptions: #{options_for_content}"
|
14
14
|
if object == nil
|
15
15
|
content = render :file => file_or_partial, :locals => options_for_content
|
16
16
|
else
|
data/lib/spurs/nav/builder.rb
CHANGED
@@ -2,6 +2,8 @@ module Spurs
|
|
2
2
|
module Nav
|
3
3
|
class Builder
|
4
4
|
include ActionView::Helpers::TagHelper
|
5
|
+
include ActionView::Helpers::ControllerHelper
|
6
|
+
include ActionView::Helpers::UrlHelper
|
5
7
|
|
6
8
|
@@default_tab_options = {
|
7
9
|
:icon_only => false
|
@@ -9,13 +11,15 @@ module Spurs
|
|
9
11
|
|
10
12
|
@@default_dropdown_options = {
|
11
13
|
:href => "#",
|
14
|
+
:method => :get,
|
12
15
|
:icon_only => false
|
13
16
|
}
|
14
17
|
|
15
18
|
@args_from_helper
|
16
19
|
|
17
|
-
def initialize(opts={ })
|
20
|
+
def initialize(controller, opts={ })
|
18
21
|
@args_from_helper = opts.clone
|
22
|
+
assign_controller(controller)
|
19
23
|
end
|
20
24
|
|
21
25
|
# Create a tab
|
@@ -44,11 +48,13 @@ module Spurs
|
|
44
48
|
|
45
49
|
end
|
46
50
|
|
47
|
-
|
51
|
+
private
|
48
52
|
|
49
53
|
def tab_tag(name, content_inside_a, content_inside_li=nil, options={ })
|
50
54
|
|
51
|
-
if options.is_a?(Array) then
|
55
|
+
if options.is_a?(Array) then
|
56
|
+
raise "opts should be a hash! #{opts.to_json}"
|
57
|
+
end
|
52
58
|
|
53
59
|
opts = @@default_tab_options.merge(@args_from_helper.merge(options))
|
54
60
|
|
@@ -70,18 +76,26 @@ module Spurs
|
|
70
76
|
{ :class => 'dropdown', 'data-dropdown' => :dropdown } :
|
71
77
|
{ }
|
72
78
|
|
79
|
+
if li_opts[:class] == nil then
|
80
|
+
li_opts[:class] = ""
|
81
|
+
end
|
82
|
+
if a_opts[:class] == nil then
|
83
|
+
a_opts[:class] = ""
|
84
|
+
end
|
85
|
+
|
73
86
|
## The icon for this tab
|
74
87
|
if opts[:icon]
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
88
|
+
if opts[:icon_only]
|
89
|
+
old_dn = display_name.clone
|
90
|
+
display_name = content_tag_string(:i, nil, :class => "icon-#{opts[:icon].to_s}")
|
91
|
+
#add the tooltip
|
92
|
+
li_opts[:class].concat(" has_tooltip ")
|
93
|
+
li_opts['data-original-title'] = old_dn
|
94
|
+
else
|
95
|
+
display_name = content_tag_string(:i, nil, :class => "icon-#{opts[:icon].to_s}").concat(display_name)
|
96
|
+
end
|
80
97
|
end
|
81
98
|
|
82
|
-
if li_opts[:class] == nil then li_opts[:class] = "" end
|
83
|
-
if a_opts[:class] == nil then a_opts[:class] = "" end
|
84
|
-
|
85
99
|
|
86
100
|
if opts[:dynamic] && (opts[:dropdown] == nil || opts[:dropdown] == false)
|
87
101
|
a_opts['data-toggle'] = :tab
|
@@ -91,6 +105,9 @@ module Spurs
|
|
91
105
|
# Process :href and :onclick
|
92
106
|
if opts[:href] then
|
93
107
|
a_opts[:href] = opts[:href]
|
108
|
+
if opts[:method] then
|
109
|
+
a_opts[:method] = opts[:method]
|
110
|
+
end
|
94
111
|
end
|
95
112
|
if opts[:onclick]
|
96
113
|
a_opts[:onclick] = opts[:onclick]
|
@@ -98,9 +115,12 @@ module Spurs
|
|
98
115
|
a_opts[:href] = "#"
|
99
116
|
end
|
100
117
|
end
|
118
|
+
if opts[:confirm] then
|
119
|
+
a_opts[:confirm] = opts[:confirm]
|
120
|
+
end
|
101
121
|
|
102
122
|
|
103
|
-
|
123
|
+
# process active option
|
104
124
|
if opts[:active] != nil
|
105
125
|
is_active = nil
|
106
126
|
# check to see if many conditions are specified
|
@@ -114,7 +134,7 @@ module Spurs
|
|
114
134
|
condition_found = true
|
115
135
|
end
|
116
136
|
else
|
117
|
-
if
|
137
|
+
if process_controller_action_active_condition(a)
|
118
138
|
condition_found = true
|
119
139
|
end
|
120
140
|
end
|
@@ -150,13 +170,16 @@ module Spurs
|
|
150
170
|
display_name = display_name.concat(content_inside_a)
|
151
171
|
end
|
152
172
|
|
153
|
-
|
154
|
-
#
|
155
|
-
|
173
|
+
link_dest = a_opts[:href] ? a_opts.delete(:href) : "#"
|
174
|
+
a_content = link_to(display_name.html_safe, link_dest, a_opts) #content_tag_string(:a, display_name.html_safe, a_opts)
|
175
|
+
#Rails.logger.debug("a_hash #{a_opts}\t#{a_content}")
|
176
|
+
# the <a> tag goes in the <li>
|
156
177
|
li_content = a_content
|
157
178
|
if content_inside_li # is there extra stuff to throw in there?
|
158
179
|
li_content = li_content.concat(content_inside_li)
|
159
180
|
end
|
181
|
+
|
182
|
+
|
160
183
|
content_tag_string(:li, li_content, li_opts)
|
161
184
|
end
|
162
185
|
|
@@ -166,14 +189,14 @@ module Spurs
|
|
166
189
|
end
|
167
190
|
menu_items = ""
|
168
191
|
dat.each do |item|
|
169
|
-
display_name
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
192
|
+
display_name = if item[:label] then
|
193
|
+
item[:label]
|
194
|
+
else
|
195
|
+
item[:id] ? item[:id].to_s.titlecase : "No Name"
|
196
|
+
end
|
174
197
|
item[:dropdown] = false
|
175
198
|
|
176
|
-
menu_items.concat(tab_tag(display_name, nil, nil, item.merge({:toggle => :none})))
|
199
|
+
menu_items.concat(tab_tag(display_name, nil, nil, item.merge({ :toggle => :none })))
|
177
200
|
end
|
178
201
|
menu = content_tag_string(:ul, menu_items.html_safe, :class => "dropdown-menu")
|
179
202
|
return menu
|
data/lib/spurs/nav/helper.rb
CHANGED
data/lib/spurs/section/helper.rb
CHANGED
@@ -12,7 +12,7 @@ module Spurs
|
|
12
12
|
options_to_pass_to_builder = {}
|
13
13
|
builder = opts[:builder].new(options_to_pass_to_builder)
|
14
14
|
section_content = capture(nil,&block)
|
15
|
-
builder.build_collapsible_section(title,section_content)
|
15
|
+
builder.build_collapsible_section(title.html_safe,section_content.html_safe)
|
16
16
|
end
|
17
17
|
|
18
18
|
def spurs_vcenter(options={}, &block)
|
data/lib/spurs/version.rb
CHANGED
data/lib/spurs.rb
CHANGED
@@ -16,11 +16,13 @@ require "spurs/flash"
|
|
16
16
|
require "spurs/nav"
|
17
17
|
require "spurs/section"
|
18
18
|
require "spurs/engine"
|
19
|
+
require "spurs/badge"
|
19
20
|
|
20
21
|
ActionView::Base.send :include, Spurs::Flash::Helper
|
21
22
|
ActionView::Base.send :include, Spurs::Nav::Helper
|
22
23
|
ActionView::Base.send :include, Spurs::Section::Helper
|
23
24
|
ActionView::Base.send :include, Spurs::Modal::Helper
|
25
|
+
ActionView::Base.send :include, Spurs::Badge::Helper
|
24
26
|
|
25
27
|
ActionController::Base.send :include, Spurs::Flash::ControllerMods
|
26
28
|
ActionController::Base.send :include, Spurs::Modal::ControllerMods
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spurs
|
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: 2012-05-
|
12
|
+
date: 2012-05-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- app/assets/stylesheets/spurs/jquery_ui_theme/jquery-ui-1.8.16.custom.css
|
97
97
|
- app/assets/stylesheets/spurs/jquery_ui_theme/jquery.ui.1.8.16.ie.css
|
98
98
|
- app/assets/stylesheets/spurs/sections.css.sass
|
99
|
+
- app/assets/stylesheets/spurs/subnav.sass
|
99
100
|
- app/assets/stylesheets/spurs/vcenter.css.sass
|
100
101
|
- app/assets/stylesheets/spurs.css
|
101
102
|
- app/controllers/spurs/application_controller.rb
|
@@ -107,6 +108,7 @@ files:
|
|
107
108
|
- app/views/spurs/modals/spawn.js.erb
|
108
109
|
- config/locales/en.yml
|
109
110
|
- config/routes.rb
|
111
|
+
- lib/spurs/badge.rb
|
110
112
|
- lib/spurs/engine.rb
|
111
113
|
- lib/spurs/flash/builder.rb
|
112
114
|
- lib/spurs/flash/controller_mods.rb
|
@@ -130,7 +132,7 @@ files:
|
|
130
132
|
- lib/tasks/spurs_tasks.rake
|
131
133
|
- MIT-LICENSE
|
132
134
|
- Rakefile
|
133
|
-
- README.
|
135
|
+
- README.rdoc
|
134
136
|
- test/dummy/app/assets/javascripts/application.js
|
135
137
|
- test/dummy/app/assets/stylesheets/application.css
|
136
138
|
- test/dummy/app/controllers/application_controller.rb
|
@@ -152,6 +154,7 @@ files:
|
|
152
154
|
- test/dummy/config/locales/en.yml
|
153
155
|
- test/dummy/config/routes.rb
|
154
156
|
- test/dummy/config.ru
|
157
|
+
- test/dummy/log/test.log
|
155
158
|
- test/dummy/public/404.html
|
156
159
|
- test/dummy/public/422.html
|
157
160
|
- test/dummy/public/500.html
|
@@ -176,12 +179,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
176
179
|
- - ! '>='
|
177
180
|
- !ruby/object:Gem::Version
|
178
181
|
version: '0'
|
182
|
+
segments:
|
183
|
+
- 0
|
184
|
+
hash: 1151912235834294858
|
179
185
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
186
|
none: false
|
181
187
|
requirements:
|
182
188
|
- - ! '>='
|
183
189
|
- !ruby/object:Gem::Version
|
184
190
|
version: '0'
|
191
|
+
segments:
|
192
|
+
- 0
|
193
|
+
hash: 1151912235834294858
|
185
194
|
requirements: []
|
186
195
|
rubyforge_project:
|
187
196
|
rubygems_version: 1.8.24
|
@@ -210,6 +219,7 @@ test_files:
|
|
210
219
|
- test/dummy/config/locales/en.yml
|
211
220
|
- test/dummy/config/routes.rb
|
212
221
|
- test/dummy/config.ru
|
222
|
+
- test/dummy/log/test.log
|
213
223
|
- test/dummy/public/404.html
|
214
224
|
- test/dummy/public/422.html
|
215
225
|
- test/dummy/public/500.html
|
data/README.markdown
DELETED
@@ -1,118 +0,0 @@
|
|
1
|
-
# Spurs
|
2
|
-
|
3
|
-
Spurs is a library that adds some bells and whistles to the Twitter Bootstrap GUI framework. I consists mostly of helpers and javascript, and thus is ORM agnostic.
|
4
|
-
|
5
|
-
## Flash Messages
|
6
|
-
|
7
|
-
Put this in your layout file wherever you want to render the flash messages
|
8
|
-
|
9
|
-
<%= spurs_flash_helper %>
|
10
|
-
|
11
|
-
and flash messages will be automatically rendered on page loads
|
12
|
-
|
13
|
-
### From the rails side
|
14
|
-
|
15
|
-
By default, you can create four types of messages
|
16
|
-
|
17
|
-
flash_addItem(:notices,"A message about something successfully happening!")
|
18
|
-
flash_addItem(:warnings, "Something is unusual, but not absolutely critical")
|
19
|
-
flash_addItem(:errors, "Something critical has happened")
|
20
|
-
flash_addItem(:infos, "Here's some information")
|
21
|
-
|
22
|
-
You can also create multiple messages for each type
|
23
|
-
|
24
|
-
flash_addItem(:errors, "Problem validating phone number")
|
25
|
-
flash_addItem(:errors, "Problem validating street address")
|
26
|
-
|
27
|
-
### From the javascript side
|
28
|
-
|
29
|
-
You can also create matching flash messages via javascript
|
30
|
-
|
31
|
-
spurs.flash.alert("Something has gone wrong!","error");
|
32
|
-
|
33
|
-
for the singular versions of each of the four types above ("info", "warning", "error", "notice")
|
34
|
-
|
35
|
-
## Navigation
|
36
|
-
|
37
|
-
Spurs makes creation of bootstrap navigation easy!.
|
38
|
-
|
39
|
-
spurs_nav :type => :pills do |nav|
|
40
|
-
|
41
|
-
# a simple nav item as a regular link
|
42
|
-
nav.tab :user, :icon => :user, :href => "#user"
|
43
|
-
|
44
|
-
# a nav item that runs some javascript
|
45
|
-
nav.tab :settings, :icon => :cog, :onclick => "alert('hello');"
|
46
|
-
|
47
|
-
# a nav item that only shows its icon (not its name)
|
48
|
-
nav.tab :secure, :icon => :lock, :icon_only => true
|
49
|
-
|
50
|
-
# a dropdown menu with two actions
|
51
|
-
nav.dropdown :menu,
|
52
|
-
:icon => :cog,
|
53
|
-
:icon_only => true,
|
54
|
-
:actions => [ {:name => "one", :icon => :plus, :href => "#one"},
|
55
|
-
{:name => "two", :icon => :minus, :href => "#two"}]
|
56
|
-
|
57
|
-
will generate a menu like this...
|
58
|
-
|
59
|
-

|
60
|
-
|
61
|
-
or in HTML...
|
62
|
-
|
63
|
-
<ul class="nav nav-pills ">
|
64
|
-
<li>
|
65
|
-
<a href="#user">
|
66
|
-
<i class="icon-user"></i>User
|
67
|
-
</a>
|
68
|
-
</li>
|
69
|
-
<li>
|
70
|
-
<a onclick="alert('hello');">
|
71
|
-
<i class="icon-cog"></i>Settings
|
72
|
-
</a>
|
73
|
-
</li>
|
74
|
-
<li>
|
75
|
-
<a>
|
76
|
-
<i class="icon-lock"></i>Secure
|
77
|
-
</a>
|
78
|
-
</li>
|
79
|
-
<li class="dropdown" data-dropdown="dropdown">
|
80
|
-
<a class="dropdown-toggle" data-toggle="dropdown">
|
81
|
-
<i class="icon-cog"></i>
|
82
|
-
<b class="caret"></b>
|
83
|
-
</a>
|
84
|
-
<ul class="dropdown-menu">
|
85
|
-
<li>
|
86
|
-
<a href="#one">
|
87
|
-
<i class="icon-plus"></i>No Name
|
88
|
-
</a>
|
89
|
-
</li>
|
90
|
-
<li>
|
91
|
-
<a href="#two">
|
92
|
-
<i class="icon-minus"></i>No Name
|
93
|
-
</a>
|
94
|
-
</li>
|
95
|
-
</ul>
|
96
|
-
</li>
|
97
|
-
</ul>
|
98
|
-
|
99
|
-
You can specify some active criteria for menu items
|
100
|
-
|
101
|
-
spurs_nav :type => :pills do |nav|
|
102
|
-
|
103
|
-
# force this to be active with a boolean
|
104
|
-
nav.tab :user, :icon => :user, :href => "#user",
|
105
|
-
:active => true
|
106
|
-
|
107
|
-
# controller criteria (if controller_name == :settings)
|
108
|
-
nav.tab :settings, :icon => :cog, :onclick => "alert('hello');",
|
109
|
-
:active => {:controller => :settings}
|
110
|
-
|
111
|
-
# controller and action criteria (if controller_name == :settings && action_name == ;edit)
|
112
|
-
nav.tab :settings, :icon => :cog, :onclick => "alert('hello');",
|
113
|
-
:active => {:controller => :settings, :action => :edit}
|
114
|
-
|
115
|
-
# multiple controller/action criteria (if (controller_name == :settings && action_name == :edit) || (controller_name == :user && action_name == :edit)
|
116
|
-
nav.tab :settings, :icon => :cog, :onclick => "alert('hello');",
|
117
|
-
:active => [{:controller => :settings, :action => :edit},
|
118
|
-
{:controller => :users, :action => :edit}]
|