fidelity 0.0.1
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/.gitignore +15 -0
- data/.rvmrc +48 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +95 -0
- data/README.md +46 -0
- data/app/.DS_Store +0 -0
- data/app/controllers/fidelity/documentations_controller.rb +14 -0
- data/app/fidelity/doc/_row.html.erb +8 -0
- data/app/fidelity/doc/index.html.erb +33 -0
- data/app/fidelity/doc/widgets/_alerts.html.erb +12 -0
- data/app/fidelity/doc/widgets/_breadcrumb.html.erb +9 -0
- data/app/fidelity/doc/widgets/_buttons.html.erb +4 -0
- data/app/fidelity/doc/widgets/_form.html.erb +14 -0
- data/app/fidelity/doc/widgets/_labels.html.erb +2 -0
- data/app/fidelity/doc/widgets/_navbar.html.erb +12 -0
- data/app/fidelity/doc/widgets/_pagination.html.erb +1 -0
- data/app/fidelity/doc/widgets/_panel.html.erb +4 -0
- data/app/fidelity/doc/widgets/_sub_nav.html.erb +14 -0
- data/app/fidelity/doc/widgets/_table.html.erb +10 -0
- data/app/fidelity/doc/widgets/_tabs_contained.html.erb +8 -0
- data/app/fidelity/doc/widgets/_tabs_nice.html.erb +8 -0
- data/app/fidelity/doc/widgets/_tabs_open.html.erb +8 -0
- data/app/fidelity/doc/widgets/_tabs_vertical.html.erb +5 -0
- data/app/fidelity/doc/widgets/_tooltip.html.erb +8 -0
- data/app/fidelity/helpers/misc_helper.rb +25 -0
- data/app/fidelity/widgets/alert/views/index.html.erb +4 -0
- data/app/fidelity/widgets/breadcrumb/breadcrumb.rb +44 -0
- data/app/fidelity/widgets/breadcrumb/helpers/breadcrumb_helper.rb +4 -0
- data/app/fidelity/widgets/breadcrumb/views/index.html.erb +7 -0
- data/app/fidelity/widgets/button/views/index.html.erb +4 -0
- data/app/fidelity/widgets/form/helpers/form_helper.rb +42 -0
- data/app/fidelity/widgets/form/views/_label.html.erb +1 -0
- data/app/fidelity/widgets/form/views/index.html.erb +1 -0
- data/app/fidelity/widgets/form/views/types/_checkbox.html.erb +14 -0
- data/app/fidelity/widgets/form/views/types/_radio.html.erb +16 -0
- data/app/fidelity/widgets/form/views/types/_select.html.erb +18 -0
- data/app/fidelity/widgets/form/views/types/_text.html.erb +4 -0
- data/app/fidelity/widgets/form/views/types/_textarea.html.erb +5 -0
- data/app/fidelity/widgets/heading/.DS_Store +0 -0
- data/app/fidelity/widgets/heading/views/index.html.erb +1 -0
- data/app/fidelity/widgets/label/views/index.html.erb +3 -0
- data/app/fidelity/widgets/markup/views/index.html.erb +5 -0
- data/app/fidelity/widgets/navbar/navbar.rb +62 -0
- data/app/fidelity/widgets/navbar/views/index.html.erb +17 -0
- data/app/fidelity/widgets/pagination/helpers/pagination_helper.rb +67 -0
- data/app/fidelity/widgets/pagination/views/index.html.erb +14 -0
- data/app/fidelity/widgets/panel/views/index.html.erb +3 -0
- data/app/fidelity/widgets/subnav/subnav.rb +36 -0
- data/app/fidelity/widgets/subnav/views/index.html.erb +8 -0
- data/app/fidelity/widgets/table/helpers/table_helper.rb +4 -0
- data/app/fidelity/widgets/table/views/index.html.erb +5 -0
- data/app/fidelity/widgets/tabs/helpers/tab_helper.rb +4 -0
- data/app/fidelity/widgets/tabs/tabs.rb +36 -0
- data/app/fidelity/widgets/tabs/views/index.html.erb +13 -0
- data/app/fidelity/widgets/tooltip/tooltip.rb +18 -0
- data/app/fidelity/widgets/tooltip/views/index.html.erb +3 -0
- data/app/helpers/fidelity_helper.rb +8 -0
- data/config/routes.rb +4 -0
- data/fidelity.gemspec +24 -0
- data/lib/fidelity.rb +14 -0
- data/lib/fidelity/builder.rb +112 -0
- data/lib/fidelity/engine.rb +12 -0
- data/lib/fidelity/generators/USAGE +9 -0
- data/lib/fidelity/generators/install_generator.rb +13 -0
- data/lib/fidelity/version.rb +3 -0
- data/lib/fidelity/widget_helper.rb +17 -0
- data/vendor/assets/images/rails.png +0 -0
- data/vendor/assets/javascripts/.DS_Store +0 -0
- data/vendor/assets/javascripts/fidelity/app.js +2 -0
- data/vendor/assets/stylesheets/.DS_Store +0 -0
- data/vendor/assets/stylesheets/fidelity/app.css +11 -0
- data/vendor/assets/stylesheets/fidelity/foundation_extra.css.scss +26 -0
- data/vendor/assets/stylesheets/fidelity/grid.css.scss +49 -0
- metadata +173 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
module Fidelity
|
2
|
+
module Widget
|
3
|
+
class Breadcrumb
|
4
|
+
|
5
|
+
attr_accessor :template, :items
|
6
|
+
def initialize template, options={}
|
7
|
+
@template = template
|
8
|
+
@items = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def item label='Item', options={}, &block
|
12
|
+
content = template.capture(&block) if block_given?
|
13
|
+
state = options[:state] || :default
|
14
|
+
@items << Item.new(label, content, state, options[:path])
|
15
|
+
end
|
16
|
+
|
17
|
+
def each
|
18
|
+
@items.each do |item|
|
19
|
+
yield item
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class Item
|
24
|
+
attr_accessor :label, :content, :state, :path
|
25
|
+
def initialize label='Item', content=nil, state=:default, path='#'
|
26
|
+
@label = label
|
27
|
+
@content = content
|
28
|
+
@state = state
|
29
|
+
@path = path
|
30
|
+
end
|
31
|
+
|
32
|
+
def current?
|
33
|
+
@state == :current
|
34
|
+
end
|
35
|
+
|
36
|
+
def unavailable?
|
37
|
+
@state == :unavailable
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<ul class="breadcrumbs">
|
2
|
+
<% breadcrumb.each do |item| %>
|
3
|
+
<li class="<%= fidelity_helper.class_name_if?(item.current?, 'current') %> <%= fidelity_helper.class_name_if?(item.unavailable?, 'unavailable') %>"><%- if item.content -%>
|
4
|
+
<%= item.content %>
|
5
|
+
<%- else -%><a href="<%= item.path %>"><%= item.label %></a><%- end -%></li>
|
6
|
+
<% end %>
|
7
|
+
</ul>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Fidelity
|
2
|
+
module FormHelper
|
3
|
+
|
4
|
+
def with_label options={}, &block
|
5
|
+
uid = "uid_#{options.object_id}"
|
6
|
+
label = if options[:label]
|
7
|
+
content_tag(:label, options[:label], :for => uid)
|
8
|
+
else
|
9
|
+
''
|
10
|
+
end
|
11
|
+
if block_given?
|
12
|
+
''.html_safe.tap do |output|
|
13
|
+
capture do
|
14
|
+
output << label
|
15
|
+
output << yield(uid)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
else
|
19
|
+
label
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def form_field_with_error options={}, &block
|
24
|
+
if block_given?
|
25
|
+
if options[:error]
|
26
|
+
content = ''.html_safe.tap do |output|
|
27
|
+
capture do
|
28
|
+
output << yield
|
29
|
+
output << content_tag(:small, options[:error])
|
30
|
+
end
|
31
|
+
end
|
32
|
+
content_tag(:div, content, :class => 'form-field error')
|
33
|
+
else
|
34
|
+
content_tag(:div, :class => 'form-field') do
|
35
|
+
yield
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= with_label() %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => "#{view_path}/types/#{(options[:type]||:text).to_s}", :locals => { :options => options, :block => block, :view_path => view_path }%>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% selected_indexes = options.delete(:checked) || [] %>
|
2
|
+
<%= form_field_with_error(options) do %>
|
3
|
+
<% options[:collection].each_with_index do |name, i| %>
|
4
|
+
<%= with_label({:label => name}) do |uid| %>
|
5
|
+
<%
|
6
|
+
attributes = { :id => uid }
|
7
|
+
if selected_indexes.include?(i)
|
8
|
+
attributes.merge!(:checked => true)
|
9
|
+
end
|
10
|
+
%>
|
11
|
+
<input type="checkbox"<%= to_html_attributes(options, attributes) %>>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<% selected_index = options.delete(:checked) %>
|
2
|
+
<%= form_field_with_error(options) do %>
|
3
|
+
<% options[:collection].each_with_index do |name, i| %>
|
4
|
+
<%= with_label({:label => name}) do |uid| %>
|
5
|
+
<%
|
6
|
+
attributes = { :id => uid }
|
7
|
+
if selected_index != false
|
8
|
+
if (!selected_index and i==0) or i==selected_index
|
9
|
+
attributes.merge!(:checked => true)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
%>
|
13
|
+
<input type="radio"<%= to_html_attributes(options, attributes) %> name="radio_<%= options.object_id %>">
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% selected_index = options.delete(:checked) %>
|
2
|
+
<%= form_field_with_error(options) do %>
|
3
|
+
<%= with_label(options) do |uid| %>
|
4
|
+
<select<%= to_html_attributes(options, :id => uid ) %>>
|
5
|
+
<% options[:collection].each_with_index do |name, i| %>
|
6
|
+
<%
|
7
|
+
attributes = { }
|
8
|
+
if selected_index != false
|
9
|
+
if (!selected_index and i==0) or i==selected_index
|
10
|
+
attributes.merge!(:selected => true)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
%>
|
14
|
+
<option <%= to_html_attributes(options, attributes) %>><%= name %></option>
|
15
|
+
<% end %>
|
16
|
+
</select>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<h4 style="text-align:right"><%= options %></h4>
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Fidelity
|
2
|
+
module Widget
|
3
|
+
class Navbar
|
4
|
+
|
5
|
+
attr_accessor :template
|
6
|
+
def initialize template, options={}
|
7
|
+
@template = template
|
8
|
+
@items = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def item options={}, &block
|
12
|
+
navbar_item(:default, options, &block)
|
13
|
+
end
|
14
|
+
|
15
|
+
def link options={}, &block
|
16
|
+
navbar_item(:link, options, &block)
|
17
|
+
end
|
18
|
+
|
19
|
+
def flyout options={}, &block
|
20
|
+
navbar_item(:flyout, options, &block)
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def each
|
25
|
+
@items.each do |item|
|
26
|
+
yield item
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def navbar_item type=:default, options={}, &block
|
33
|
+
label = options[:text] || options[:label]
|
34
|
+
content = block_given? ? template.capture(&block) : ''
|
35
|
+
@items << Item.new(type, label, content)
|
36
|
+
''
|
37
|
+
end
|
38
|
+
|
39
|
+
class Item
|
40
|
+
attr_accessor :type, :label, :content
|
41
|
+
def initialize type=:default, label='Item', content=''
|
42
|
+
@type = type
|
43
|
+
@label = label || content
|
44
|
+
@content = content
|
45
|
+
end
|
46
|
+
|
47
|
+
def item?
|
48
|
+
@type == :default
|
49
|
+
end
|
50
|
+
|
51
|
+
def link?
|
52
|
+
@type == :link
|
53
|
+
end
|
54
|
+
|
55
|
+
def flyout?
|
56
|
+
@type == :flyout
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<ul class="nav-bar">
|
2
|
+
<%- navbar.each do |item| -%>
|
3
|
+
<%- if item.flyout? -%>
|
4
|
+
<li class="has-flyout">
|
5
|
+
<a href="#" class="main"><%= item.label %></a>
|
6
|
+
<a href="#" class="flyout-toggle"><span></span></a>
|
7
|
+
<div class="<%= fidelity_helper.to_class_name('flyout', options[:size], options[:position]) %>">
|
8
|
+
<%= item.content %>
|
9
|
+
</div>
|
10
|
+
</li>
|
11
|
+
<%- elsif item.link? -%>
|
12
|
+
<li><a href="#" class="main"><%= item.label %></a></li>
|
13
|
+
<%- else -%>
|
14
|
+
<li><%= item.label %></li>
|
15
|
+
<%- end -%>
|
16
|
+
<%- end -%>
|
17
|
+
</ul>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Fidelity
|
2
|
+
module PaginationHelper
|
3
|
+
def paginate options={}
|
4
|
+
Pagination.new(options)
|
5
|
+
end
|
6
|
+
|
7
|
+
class Pagination
|
8
|
+
|
9
|
+
attr_accessor :options, :range, :page, :size
|
10
|
+
attr_reader :items
|
11
|
+
def initialize options={}
|
12
|
+
@options = options
|
13
|
+
@range = (options[:range] || (1..10)).to_a
|
14
|
+
@page = options[:page] || 1
|
15
|
+
@size = options[:size] || 7
|
16
|
+
@next = options[:next] || true
|
17
|
+
@offset_lenght = [0, @range.size - @size].max.to_i
|
18
|
+
@offset_start = ((@range.size / 2) - (@offset_lenght / 2)).ceil.to_i
|
19
|
+
@items = init_items(@offset_start, @offset_lenght)
|
20
|
+
end
|
21
|
+
|
22
|
+
def back?
|
23
|
+
range.first > 1
|
24
|
+
end
|
25
|
+
|
26
|
+
def next?
|
27
|
+
@next
|
28
|
+
end
|
29
|
+
|
30
|
+
def each
|
31
|
+
@items.each do |item|
|
32
|
+
yield item
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def init_items start, length
|
39
|
+
@range.fill(nil, start, length)
|
40
|
+
@range.slice!(start, [0, length-1].max)
|
41
|
+
[].tap do |a|
|
42
|
+
@range.each do |i|
|
43
|
+
a << Item.new(i, @page)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class Item
|
49
|
+
attr_accessor :page, :current
|
50
|
+
def initialize page=1, current=1
|
51
|
+
@page = page
|
52
|
+
@current = current==page
|
53
|
+
end
|
54
|
+
|
55
|
+
def show?
|
56
|
+
!@page.nil?
|
57
|
+
end
|
58
|
+
|
59
|
+
def current?
|
60
|
+
@current
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<ul class="pagination">
|
2
|
+
<% pagination = paginate(options) %>
|
3
|
+
<li class="<%= fidelity_helper.class_name_if?(!pagination.back?, 'unavailable') %>"><a href="">«</a></li>
|
4
|
+
<% pagination.each do |item| %>
|
5
|
+
<li class="<%= fidelity_helper.class_name_if?(item.current?, 'current') %> <%= fidelity_helper.class_name_if?(!item.page, 'unavailable') %>">
|
6
|
+
<% if item.page %>
|
7
|
+
<a href=""><%= item.page %></a>
|
8
|
+
<% else %>
|
9
|
+
<a href="">…</a>
|
10
|
+
<% end %>
|
11
|
+
</li>
|
12
|
+
<% end %>
|
13
|
+
<li class="<%= fidelity_helper.class_name_if?(pagination.next?, 'unavailable') %>"><a href="">»</a></li>
|
14
|
+
</ul>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Fidelity
|
2
|
+
module Widget
|
3
|
+
class Subnav
|
4
|
+
|
5
|
+
attr_accessor :template, :items, :title
|
6
|
+
def initialize template, options={}
|
7
|
+
@template = template
|
8
|
+
@items = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def item options={}, &block
|
12
|
+
label = Proc.new{ options[:text] }
|
13
|
+
label = template.capture(&block) if block_given?
|
14
|
+
state = :active if options[:state]
|
15
|
+
@items << Item.new(label, state)
|
16
|
+
end
|
17
|
+
|
18
|
+
def each
|
19
|
+
@items.each do |item|
|
20
|
+
yield item
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
class Item
|
27
|
+
attr_accessor :label, :state
|
28
|
+
def initialize label='Item', state=nil
|
29
|
+
@label = label
|
30
|
+
@state = state
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Fidelity
|
2
|
+
module Widget
|
3
|
+
class Tab
|
4
|
+
|
5
|
+
attr_accessor :template, :tabs, :vertical
|
6
|
+
def initialize template, options={}
|
7
|
+
@template = template
|
8
|
+
@vertical = true if options[:orientation] and options[:orientation].to_sym == :vertical
|
9
|
+
@tabs = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def tab label='Tab', options={}, &block
|
13
|
+
panel = Proc.new{ options[:text] }
|
14
|
+
panel = template.capture(&block) if block_given?
|
15
|
+
state = :active if options[:state]
|
16
|
+
@tabs << TabPanel.new(label, panel, state)
|
17
|
+
end
|
18
|
+
|
19
|
+
def each
|
20
|
+
@tabs.each do |tab|
|
21
|
+
yield tab
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class TabPanel
|
26
|
+
attr_accessor :label, :panel, :state
|
27
|
+
def initialize label='Tab', panel='', state=nil
|
28
|
+
@label = label
|
29
|
+
@panel = panel
|
30
|
+
@state = state
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|