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.
Files changed (74) hide show
  1. data/.gitignore +15 -0
  2. data/.rvmrc +48 -0
  3. data/Gemfile +13 -0
  4. data/Gemfile.lock +95 -0
  5. data/README.md +46 -0
  6. data/app/.DS_Store +0 -0
  7. data/app/controllers/fidelity/documentations_controller.rb +14 -0
  8. data/app/fidelity/doc/_row.html.erb +8 -0
  9. data/app/fidelity/doc/index.html.erb +33 -0
  10. data/app/fidelity/doc/widgets/_alerts.html.erb +12 -0
  11. data/app/fidelity/doc/widgets/_breadcrumb.html.erb +9 -0
  12. data/app/fidelity/doc/widgets/_buttons.html.erb +4 -0
  13. data/app/fidelity/doc/widgets/_form.html.erb +14 -0
  14. data/app/fidelity/doc/widgets/_labels.html.erb +2 -0
  15. data/app/fidelity/doc/widgets/_navbar.html.erb +12 -0
  16. data/app/fidelity/doc/widgets/_pagination.html.erb +1 -0
  17. data/app/fidelity/doc/widgets/_panel.html.erb +4 -0
  18. data/app/fidelity/doc/widgets/_sub_nav.html.erb +14 -0
  19. data/app/fidelity/doc/widgets/_table.html.erb +10 -0
  20. data/app/fidelity/doc/widgets/_tabs_contained.html.erb +8 -0
  21. data/app/fidelity/doc/widgets/_tabs_nice.html.erb +8 -0
  22. data/app/fidelity/doc/widgets/_tabs_open.html.erb +8 -0
  23. data/app/fidelity/doc/widgets/_tabs_vertical.html.erb +5 -0
  24. data/app/fidelity/doc/widgets/_tooltip.html.erb +8 -0
  25. data/app/fidelity/helpers/misc_helper.rb +25 -0
  26. data/app/fidelity/widgets/alert/views/index.html.erb +4 -0
  27. data/app/fidelity/widgets/breadcrumb/breadcrumb.rb +44 -0
  28. data/app/fidelity/widgets/breadcrumb/helpers/breadcrumb_helper.rb +4 -0
  29. data/app/fidelity/widgets/breadcrumb/views/index.html.erb +7 -0
  30. data/app/fidelity/widgets/button/views/index.html.erb +4 -0
  31. data/app/fidelity/widgets/form/helpers/form_helper.rb +42 -0
  32. data/app/fidelity/widgets/form/views/_label.html.erb +1 -0
  33. data/app/fidelity/widgets/form/views/index.html.erb +1 -0
  34. data/app/fidelity/widgets/form/views/types/_checkbox.html.erb +14 -0
  35. data/app/fidelity/widgets/form/views/types/_radio.html.erb +16 -0
  36. data/app/fidelity/widgets/form/views/types/_select.html.erb +18 -0
  37. data/app/fidelity/widgets/form/views/types/_text.html.erb +4 -0
  38. data/app/fidelity/widgets/form/views/types/_textarea.html.erb +5 -0
  39. data/app/fidelity/widgets/heading/.DS_Store +0 -0
  40. data/app/fidelity/widgets/heading/views/index.html.erb +1 -0
  41. data/app/fidelity/widgets/label/views/index.html.erb +3 -0
  42. data/app/fidelity/widgets/markup/views/index.html.erb +5 -0
  43. data/app/fidelity/widgets/navbar/navbar.rb +62 -0
  44. data/app/fidelity/widgets/navbar/views/index.html.erb +17 -0
  45. data/app/fidelity/widgets/pagination/helpers/pagination_helper.rb +67 -0
  46. data/app/fidelity/widgets/pagination/views/index.html.erb +14 -0
  47. data/app/fidelity/widgets/panel/views/index.html.erb +3 -0
  48. data/app/fidelity/widgets/subnav/subnav.rb +36 -0
  49. data/app/fidelity/widgets/subnav/views/index.html.erb +8 -0
  50. data/app/fidelity/widgets/table/helpers/table_helper.rb +4 -0
  51. data/app/fidelity/widgets/table/views/index.html.erb +5 -0
  52. data/app/fidelity/widgets/tabs/helpers/tab_helper.rb +4 -0
  53. data/app/fidelity/widgets/tabs/tabs.rb +36 -0
  54. data/app/fidelity/widgets/tabs/views/index.html.erb +13 -0
  55. data/app/fidelity/widgets/tooltip/tooltip.rb +18 -0
  56. data/app/fidelity/widgets/tooltip/views/index.html.erb +3 -0
  57. data/app/helpers/fidelity_helper.rb +8 -0
  58. data/config/routes.rb +4 -0
  59. data/fidelity.gemspec +24 -0
  60. data/lib/fidelity.rb +14 -0
  61. data/lib/fidelity/builder.rb +112 -0
  62. data/lib/fidelity/engine.rb +12 -0
  63. data/lib/fidelity/generators/USAGE +9 -0
  64. data/lib/fidelity/generators/install_generator.rb +13 -0
  65. data/lib/fidelity/version.rb +3 -0
  66. data/lib/fidelity/widget_helper.rb +17 -0
  67. data/vendor/assets/images/rails.png +0 -0
  68. data/vendor/assets/javascripts/.DS_Store +0 -0
  69. data/vendor/assets/javascripts/fidelity/app.js +2 -0
  70. data/vendor/assets/stylesheets/.DS_Store +0 -0
  71. data/vendor/assets/stylesheets/fidelity/app.css +11 -0
  72. data/vendor/assets/stylesheets/fidelity/foundation_extra.css.scss +26 -0
  73. data/vendor/assets/stylesheets/fidelity/grid.css.scss +49 -0
  74. metadata +173 -0
@@ -0,0 +1,4 @@
1
+ <div class="<%= fidelity_helper.to_class_name('alert-box', options[:type]) %>">
2
+ <%= fidelity_helper.select_first(block, options[:text]) %>
3
+ <a href="" class="close">&times;</a>
4
+ </div>
@@ -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,4 @@
1
+ module Fidelity
2
+ module BreadcrumbHelper
3
+ end
4
+ 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,4 @@
1
+
2
+ <a href="#" class="<%=fidelity_helper.to_class_name(options[:color], options[:style], options[:size], options[:corners], 'button') %>">
3
+ <%= fidelity_helper.select_first(block, options[:text], 'Button Text') %>
4
+ </a>
@@ -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 %>
@@ -0,0 +1,4 @@
1
+ <%= form_field_with_error(options) do %>
2
+ <%= with_label(options) %>
3
+ <input type="text"<%= to_html_attributes(options, :placeholder) %>>
4
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <%= form_field_with_error(options) do %>
2
+ <%= with_label(options) do |id| %>
3
+ <textarea<%= to_html_attributes(options, :placeholder, :id => id) %>><%= block %></textarea>
4
+ <% end %>
5
+ <% end %>
@@ -0,0 +1 @@
1
+ <h4 style="text-align:right"><%= options %></h4>
@@ -0,0 +1,3 @@
1
+ <span class="<%= fidelity_helper.to_class_name(options[:color], options[:corners], 'label') %>">
2
+ <%= fidelity_helper.select_first(block, options[:text], 'Label Text') %>
3
+ </span>
@@ -0,0 +1,5 @@
1
+ <% if RDiscount %>
2
+ <%= RDiscount.new(block).to_html.html_safe %>
3
+ <% else %>
4
+ <pre>No markup installed</pre>
5
+ <% end %>
@@ -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="">&laquo;</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="">&hellip;</a>
10
+ <% end %>
11
+ </li>
12
+ <% end %>
13
+ <li class="<%= fidelity_helper.class_name_if?(pagination.next?, 'unavailable') %>"><a href="">&raquo;</a></li>
14
+ </ul>
@@ -0,0 +1,3 @@
1
+ <div class="panel">
2
+ <%= fidelity_helper.select_first(block, options[:text]) %>
3
+ </div>
@@ -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,8 @@
1
+ <dl class="sub-nav">
2
+ <%- if subnav.title -%>
3
+ <dt><%= subnav.read_title %></dt>
4
+ <%- end -%>
5
+ <%- subnav.each do |item| %>
6
+ <dd class="<%= fidelity_helper.class_name_if?(item.state, 'active') %>"><a href="#"><%= item.label %></a></dd>
7
+ <%- end %>
8
+ </dl>
@@ -0,0 +1,4 @@
1
+ module Fidelity
2
+ module TableHelper
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ <% if RDiscount %>
2
+ <%= RDiscount.new(block).to_html.html_safe %>
3
+ <% else %>
4
+ <%= block %>
5
+ <% end %>
@@ -0,0 +1,4 @@
1
+ module Fidelity
2
+ module TabHelper
3
+ end
4
+ 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