lucasefe-multi_helper 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 (60) hide show
  1. data/README.rdoc +11 -0
  2. data/Rakefile +14 -0
  3. data/generators/full_layout/full_layout_generator.rb +47 -0
  4. data/generators/full_layout/templates/_flash_messages.html.haml +6 -0
  5. data/generators/full_layout/templates/_main_navigation.html.haml +6 -0
  6. data/generators/full_layout/templates/_secondary_navigation.html.haml +2 -0
  7. data/generators/full_layout/templates/_sidebar.html.haml +15 -0
  8. data/generators/full_layout/templates/_theme_switch.html.erb +29 -0
  9. data/generators/full_layout/templates/_user_navigation.html.erb +10 -0
  10. data/generators/full_layout/templates/javascripts/jquery-ui.js +273 -0
  11. data/generators/full_layout/templates/javascripts/jquery.corner.js +178 -0
  12. data/generators/full_layout/templates/javascripts/jquery.form.js +601 -0
  13. data/generators/full_layout/templates/javascripts/jquery.js +19 -0
  14. data/generators/full_layout/templates/javascripts/jquery.livequery.js +250 -0
  15. data/generators/full_layout/templates/javascripts/jquery.localscroll.js +104 -0
  16. data/generators/full_layout/templates/javascripts/jquery.scrollTo.js +150 -0
  17. data/generators/full_layout/templates/javascripts/layout.js +26 -0
  18. data/generators/full_layout/templates/layout.html.haml +36 -0
  19. data/generators/full_layout/templates/stylesheets/base.css +282 -0
  20. data/generators/full_layout/templates/stylesheets/overrides.css +11 -0
  21. data/generators/full_layout/templates/stylesheets/themes/bec/style.css +279 -0
  22. data/generators/full_layout/templates/stylesheets/themes/black-grey/style.css +171 -0
  23. data/generators/full_layout/templates/stylesheets/themes/default/style.css +233 -0
  24. data/generators/full_scaffold/README +11 -0
  25. data/generators/full_scaffold/full_scaffold_generator.rb +149 -0
  26. data/generators/full_scaffold/templates/controller.rb +13 -0
  27. data/generators/full_scaffold/templates/helper.rb +2 -0
  28. data/generators/full_scaffold/templates/migration.rb +15 -0
  29. data/generators/full_scaffold/templates/model.rb +2 -0
  30. data/generators/full_scaffold/templates/rspec/unit_spec.rb +11 -0
  31. data/generators/full_scaffold/templates/view__collection.haml +23 -0
  32. data/generators/full_scaffold/templates/view__form.haml +3 -0
  33. data/generators/full_scaffold/templates/view__search.haml +11 -0
  34. data/generators/full_scaffold/templates/view_edit.haml +9 -0
  35. data/generators/full_scaffold/templates/view_index.haml +8 -0
  36. data/generators/full_scaffold/templates/view_index.js.haml +1 -0
  37. data/generators/full_scaffold/templates/view_new.haml +7 -0
  38. data/generators/full_scaffold/templates/view_show.haml +10 -0
  39. data/icons/add.png +0 -0
  40. data/icons/arrow_undo.png +0 -0
  41. data/icons/cross.png +0 -0
  42. data/icons/error.png +0 -0
  43. data/icons/exclamation.png +0 -0
  44. data/icons/pencil.png +0 -0
  45. data/icons/tick.png +0 -0
  46. data/lib/multi_helper.rb +6 -0
  47. data/lib/multi_helper/form.rb +11 -0
  48. data/lib/multi_helper/form/README.markdown +119 -0
  49. data/lib/multi_helper/form/builder.rb +346 -0
  50. data/lib/multi_helper/form/helper.rb +41 -0
  51. data/lib/multi_helper/navigation.rb +6 -0
  52. data/lib/multi_helper/navigation/group.rb +36 -0
  53. data/lib/multi_helper/navigation/helper.rb +11 -0
  54. data/lib/multi_helper/navigation/item.rb +27 -0
  55. data/lib/multi_helper/navigation/renderer.rb +35 -0
  56. data/lib/multi_helper/vendor/validation_reflection.rb +73 -0
  57. data/lib/multi_helper/view.rb +49 -0
  58. data/multi_helper.gemspec +31 -0
  59. data/rails/init.rb +2 -0
  60. metadata +129 -0
@@ -0,0 +1,41 @@
1
+ module MultiHelper
2
+ module Form
3
+ module Helper
4
+ # Define form helpers that use our form builder.
5
+ [ :form_for, :fields_for, :remote_form_for ].each do |method|
6
+ code = <<-END
7
+ def next_#{method}(name, *args, &block)
8
+ options = args.last.is_a?(Hash) ? args.pop : {}
9
+ options = options.merge :builder => MultiHelper::Form::Builder
10
+ #{method}(name, *(args << options), &block)
11
+ end
12
+ END
13
+ module_eval code, __FILE__, __LINE__
14
+ end
15
+
16
+ def link_to_form(purpose, options = {}, html_options = nil)
17
+ icon = options.delete(:icon) if options.respond_to?(:has_key?)
18
+ icon ||= case purpose
19
+ when :new then 'add'
20
+ when :edit then 'pencil'
21
+ when :delete then 'cross' # TODO: delete should be a button, not a link
22
+ when :cancel then 'arrow_undo'
23
+ end
24
+ if options.kind_of? String
25
+ url = options
26
+ else
27
+ url = options.delete :url
28
+ label = options.delete :label
29
+ end
30
+ label ||= purpose.to_s.capitalize
31
+ legend = ( icon.nil? ?
32
+ '' :
33
+ "<img src='/images/icons/#{icon}.png' alt=''></img> " ) + label
34
+
35
+ '<div class="buttons">' +
36
+ link_to(legend, (url || options), html_options) +
37
+ '</div>'
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,6 @@
1
+ require "multi_helper/navigation/item"
2
+ require "multi_helper/navigation/group"
3
+ require "multi_helper/navigation/helper"
4
+ require "multi_helper/navigation/renderer"
5
+ ActionView::Base.send :include, MultiHelper::Navigation::Helper
6
+
@@ -0,0 +1,36 @@
1
+ module MultiHelper
2
+ module Navigation
3
+ module Exceptions
4
+ class FieldRequired < Exception
5
+ def initialize(field)
6
+ @message = "A #{field} is required!"
7
+ end
8
+ end
9
+ end
10
+ class Group
11
+ attr_reader :name, :options
12
+ attr_accessor :items, :logger
13
+ def initialize(name, options = {})
14
+ @name = name
15
+ @options = options
16
+ @options[:id] ||= "#{name.to_s.underscore.gsub('_', '-')}-navigation"
17
+ @options[:class] ||= @options[:id]
18
+ @items = []
19
+ end
20
+ def add(name, options = {})
21
+ item = Item.new(name, options)
22
+ yield(item) if block_given?
23
+ @items ||= []
24
+ @items << item
25
+ end
26
+ def name=(value)
27
+ raise MultiHelper::Navigation::Exceptions::FieldRequired.new("name") if value.blank?
28
+ @name = value
29
+ end
30
+ def options=(opts)
31
+ @options = opts
32
+ end
33
+ end
34
+ end
35
+ end
36
+
@@ -0,0 +1,11 @@
1
+ module MultiHelper
2
+ module Navigation
3
+ module Helper
4
+ def navigation(name, options = {}, &block)
5
+ @navigation = MultiHelper::Navigation::Group.new(name, options)
6
+ yield(@navigation) if block_given?
7
+ MultiHelper::Navigation::Renderer.new(@navigation, params, request).to_html
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,27 @@
1
+ module MultiHelper
2
+ module Navigation
3
+ class Item
4
+ attr_reader :name, :options
5
+ attr_accessor :links_to, :active
6
+ attr_reader :logger
7
+ def initialize(name, options = {})
8
+ self.name = name
9
+ self.options = { :class => "", :id => ""}.merge(options)
10
+ self.links_to = options[:links_to] if options[:links_to].present?
11
+ end
12
+ def name=(value)
13
+ raise MultiHelper::Navigation::Exceptions::FieldRequired.new("name") if value.blank?
14
+ @name = value
15
+ end
16
+ def options=(opts)
17
+ @options = opts
18
+ end
19
+ def active!
20
+ @active = true
21
+ end
22
+ def active?
23
+ @active || false
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,35 @@
1
+ module MultiHelper
2
+ module Navigation
3
+ class Renderer
4
+ include ActionView::Helpers::UrlHelper
5
+ include ActionView::Helpers::TagHelper
6
+ def initialize(nav, params, request)
7
+ @params = params
8
+ @request = request
9
+ @navigation = nav
10
+ end
11
+ def to_html(options = {})
12
+ render_navigation(@navigation)
13
+ end
14
+ def render_navigation(nav)
15
+ content_tag(:div, content_tag(:ul, render_navigation_items(nav)) + content_tag(:div, "", :class => 'clear'), {:id => nav.options[:id], :class => nav.options[:class]})
16
+ end
17
+ def render_navigation_items(nav)
18
+ nav.items.collect { |item|
19
+ name = item.name
20
+ link = item.links_to || "#"
21
+ classes = item.options[:class]
22
+ if item.active? or item_is_the_current_one?(item)
23
+ classes += "active"
24
+ end
25
+ content_tag(:li, link_to(name, link), item.options.merge(:class => classes))
26
+ }.join("\n")
27
+ end
28
+ private
29
+ def item_is_the_current_one?(item)
30
+ current = @request.request_uri.split("?").first
31
+ item.links_to == current
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,73 @@
1
+ #--
2
+ # Copyright (c) 2006, Michael Schuerig, michael@schuerig.de
3
+ #
4
+ # == License
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ # See http://www.gnu.org/copyleft/lesser.html
10
+ #++
11
+
12
+
13
+ require 'active_record/reflection'
14
+
15
+ # Based on code by Sebastian Kanthak
16
+ # See http://dev.rubyonrails.org/ticket/861
17
+ module ValidationReflection # :nodoc:
18
+ VALIDATIONS = %w(
19
+ validates_acceptance_of
20
+ validates_associated
21
+ validates_confirmation_of
22
+ validates_exclusion_of
23
+ validates_format_of
24
+ validates_inclusion_of
25
+ validates_length_of
26
+ validates_numericality_of
27
+ validates_presence_of
28
+ validates_uniqueness_of
29
+ ).freeze
30
+
31
+ def self.included(base)
32
+ base.extend(ClassMethods)
33
+
34
+ for validation_type in VALIDATIONS
35
+ base.module_eval <<-"end_eval"
36
+ class << self
37
+ alias_method :#{validation_type}_without_reflection, :#{validation_type}
38
+
39
+ def #{validation_type}_with_reflection(*attr_names)
40
+ #{validation_type}_without_reflection(*attr_names)
41
+ configuration = attr_names.last.is_a?(Hash) ? attr_names.pop : nil
42
+ for attr_name in attr_names
43
+ write_inheritable_array "validations", [ ActiveRecord::Reflection::MacroReflection.new(:#{validation_type}, attr_name, configuration, self) ]
44
+ end
45
+ end
46
+
47
+ alias_method :#{validation_type}, :#{validation_type}_with_reflection
48
+ end
49
+ end_eval
50
+ end
51
+ end
52
+
53
+ module ClassMethods
54
+
55
+ # Returns an array of MacroReflection objects for all validations in the class
56
+ def reflect_on_all_validations
57
+ read_inheritable_attribute("validations") || []
58
+ end
59
+
60
+ # Returns an array of MacroReflection objects for all validations defined for the field +attr_name+ (expects a symbol)
61
+ def reflect_on_validations_for(attr_name)
62
+ reflect_on_all_validations.find_all do |reflection|
63
+ reflection.name.to_s == attr_name.to_s
64
+ end
65
+ end
66
+
67
+ end
68
+
69
+ end
70
+
71
+ ActiveRecord::Base.class_eval do
72
+ include ValidationReflection
73
+ end
@@ -0,0 +1,49 @@
1
+ module MultiHelper
2
+ module View
3
+ module LayoutMethods
4
+ def show_content_if(content, &block)
5
+ if content.present?
6
+ yield(content)
7
+ end
8
+ end
9
+ def table_block(options, &block)
10
+ body = content_tag(:div, capture(&block), :class=> 'content')
11
+ general_block(body, options.merge({:id => 'block-list', :class => 'block'}))
12
+ end
13
+ def list_block(options, &block)
14
+ body = content_tag(:div, capture(&block), :class=> 'content')
15
+ general_block(body, options.merge({:id => 'block-list', :class => 'block'}))
16
+ end
17
+ def text_block(options, &block)
18
+ body = content_tag(:div, capture(&block), :class=> 'content')
19
+ general_block(body, options.merge({:id => 'block-text', :class => 'block'}))
20
+ end
21
+ def sidebar_link(name, options = {}, html_options = nil)
22
+ content_tag(:li, link_to(name, options, html_options))
23
+ end
24
+ def navigation_block()
25
+ render(:partial => 'shared/secondary_navigation')
26
+ end
27
+ private
28
+ def general_block(content, options)
29
+ options = {:nav => true}.merge(options)
30
+ body = if options[:nav]
31
+ navigation_block + render(:partial => 'shared/flash_messages')
32
+ else
33
+ ""
34
+ end
35
+ if options[:title].present?
36
+ body += title_tag(options[:title])
37
+ options.delete(:title)
38
+ end
39
+ body += content
40
+ concat(content_tag(:div, body, options))
41
+ end
42
+ def title_tag(title)
43
+ content_tag(:br) + content_tag(:h2, title, :class => 'title')
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ ActionView::Base.send :include, MultiHelper::View::LayoutMethods
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{multi_helper}
5
+ s.version = "0.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Lucas Florio"]
9
+ s.date = %q{2009-02-16}
10
+ s.description = %q{Group of custim helpers for rails.}
11
+ s.email = %q{lucasefe@gmail.com}
12
+ s.extra_rdoc_files = ["lib/multi_helper/form/builder.rb", "lib/multi_helper/form/helper.rb", "lib/multi_helper/form/README.markdown", "lib/multi_helper/form.rb", "lib/multi_helper/navigation/group.rb", "lib/multi_helper/navigation/helper.rb", "lib/multi_helper/navigation/item.rb", "lib/multi_helper/navigation/renderer.rb", "lib/multi_helper/navigation.rb", "lib/multi_helper/vendor/validation_reflection.rb", "lib/multi_helper/view.rb", "lib/multi_helper.rb", "README.rdoc"]
13
+ s.files = ["generators/full_layout/full_layout_generator.rb", "generators/full_layout/templates/_flash_messages.html.haml", "generators/full_layout/templates/_main_navigation.html.haml", "generators/full_layout/templates/_secondary_navigation.html.haml", "generators/full_layout/templates/_sidebar.html.haml", "generators/full_layout/templates/_theme_switch.html.erb", "generators/full_layout/templates/_user_navigation.html.erb", "generators/full_layout/templates/javascripts/jquery-ui.js", "generators/full_layout/templates/javascripts/jquery.corner.js", "generators/full_layout/templates/javascripts/jquery.form.js", "generators/full_layout/templates/javascripts/jquery.js", "generators/full_layout/templates/javascripts/jquery.livequery.js", "generators/full_layout/templates/javascripts/jquery.localscroll.js", "generators/full_layout/templates/javascripts/jquery.scrollTo.js", "generators/full_layout/templates/javascripts/layout.js", "generators/full_layout/templates/layout.html.haml", "generators/full_layout/templates/stylesheets/base.css", "generators/full_layout/templates/stylesheets/overrides.css", "generators/full_layout/templates/stylesheets/themes/bec/style.css", "generators/full_layout/templates/stylesheets/themes/black-grey/style.css", "generators/full_layout/templates/stylesheets/themes/default/style.css", "generators/full_scaffold/full_scaffold_generator.rb", "generators/full_scaffold/README", "generators/full_scaffold/templates/controller.rb", "generators/full_scaffold/templates/helper.rb", "generators/full_scaffold/templates/migration.rb", "generators/full_scaffold/templates/model.rb", "generators/full_scaffold/templates/rspec/unit_spec.rb", "generators/full_scaffold/templates/view__collection.haml", "generators/full_scaffold/templates/view__form.haml", "generators/full_scaffold/templates/view__search.haml", "generators/full_scaffold/templates/view_edit.haml", "generators/full_scaffold/templates/view_index.haml", "generators/full_scaffold/templates/view_index.js.haml", "generators/full_scaffold/templates/view_new.haml", "generators/full_scaffold/templates/view_show.haml", "icons/add.png", "icons/arrow_undo.png", "icons/cross.png", "icons/error.png", "icons/exclamation.png", "icons/pencil.png", "icons/tick.png", "lib/multi_helper/form/builder.rb", "lib/multi_helper/form/helper.rb", "lib/multi_helper/form/README.markdown", "lib/multi_helper/form.rb", "lib/multi_helper/navigation/group.rb", "lib/multi_helper/navigation/helper.rb", "lib/multi_helper/navigation/item.rb", "lib/multi_helper/navigation/renderer.rb", "lib/multi_helper/navigation.rb", "lib/multi_helper/vendor/validation_reflection.rb", "lib/multi_helper/view.rb", "lib/multi_helper.rb", "rails/init.rb", "Rakefile", "README.rdoc", "Manifest", "multi_helper.gemspec"]
14
+ s.has_rdoc = true
15
+ s.homepage = %q{http://github.com/lucasefe/multi_helper}
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Multi_helper", "--main", "README.rdoc"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = %q{multi_helper}
19
+ s.rubygems_version = %q{1.3.1}
20
+ s.summary = %q{Group of custim helpers for rails.}
21
+
22
+ if s.respond_to? :specification_version then
23
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
+ s.specification_version = 2
25
+
26
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
+ else
28
+ end
29
+ else
30
+ end
31
+ end
data/rails/init.rb ADDED
@@ -0,0 +1,2 @@
1
+ config.gem 'searchlogic'
2
+ require "multi_helper"
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lucasefe-multi_helper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Lucas Florio
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-16 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Group of custim helpers for rails.
17
+ email: lucasefe@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - lib/multi_helper/form/builder.rb
24
+ - lib/multi_helper/form/helper.rb
25
+ - lib/multi_helper/form/README.markdown
26
+ - lib/multi_helper/form.rb
27
+ - lib/multi_helper/navigation/group.rb
28
+ - lib/multi_helper/navigation/helper.rb
29
+ - lib/multi_helper/navigation/item.rb
30
+ - lib/multi_helper/navigation/renderer.rb
31
+ - lib/multi_helper/navigation.rb
32
+ - lib/multi_helper/vendor/validation_reflection.rb
33
+ - lib/multi_helper/view.rb
34
+ - lib/multi_helper.rb
35
+ - README.rdoc
36
+ files:
37
+ - generators/full_layout/full_layout_generator.rb
38
+ - generators/full_layout/templates/_flash_messages.html.haml
39
+ - generators/full_layout/templates/_main_navigation.html.haml
40
+ - generators/full_layout/templates/_secondary_navigation.html.haml
41
+ - generators/full_layout/templates/_sidebar.html.haml
42
+ - generators/full_layout/templates/_theme_switch.html.erb
43
+ - generators/full_layout/templates/_user_navigation.html.erb
44
+ - generators/full_layout/templates/javascripts/jquery-ui.js
45
+ - generators/full_layout/templates/javascripts/jquery.corner.js
46
+ - generators/full_layout/templates/javascripts/jquery.form.js
47
+ - generators/full_layout/templates/javascripts/jquery.js
48
+ - generators/full_layout/templates/javascripts/jquery.livequery.js
49
+ - generators/full_layout/templates/javascripts/jquery.localscroll.js
50
+ - generators/full_layout/templates/javascripts/jquery.scrollTo.js
51
+ - generators/full_layout/templates/javascripts/layout.js
52
+ - generators/full_layout/templates/layout.html.haml
53
+ - generators/full_layout/templates/stylesheets/base.css
54
+ - generators/full_layout/templates/stylesheets/overrides.css
55
+ - generators/full_layout/templates/stylesheets/themes/bec/style.css
56
+ - generators/full_layout/templates/stylesheets/themes/black-grey/style.css
57
+ - generators/full_layout/templates/stylesheets/themes/default/style.css
58
+ - generators/full_scaffold/full_scaffold_generator.rb
59
+ - generators/full_scaffold/README
60
+ - generators/full_scaffold/templates/controller.rb
61
+ - generators/full_scaffold/templates/helper.rb
62
+ - generators/full_scaffold/templates/migration.rb
63
+ - generators/full_scaffold/templates/model.rb
64
+ - generators/full_scaffold/templates/rspec/unit_spec.rb
65
+ - generators/full_scaffold/templates/view__collection.haml
66
+ - generators/full_scaffold/templates/view__form.haml
67
+ - generators/full_scaffold/templates/view__search.haml
68
+ - generators/full_scaffold/templates/view_edit.haml
69
+ - generators/full_scaffold/templates/view_index.haml
70
+ - generators/full_scaffold/templates/view_index.js.haml
71
+ - generators/full_scaffold/templates/view_new.haml
72
+ - generators/full_scaffold/templates/view_show.haml
73
+ - icons/add.png
74
+ - icons/arrow_undo.png
75
+ - icons/cross.png
76
+ - icons/error.png
77
+ - icons/exclamation.png
78
+ - icons/pencil.png
79
+ - icons/tick.png
80
+ - lib/multi_helper/form/builder.rb
81
+ - lib/multi_helper/form/helper.rb
82
+ - lib/multi_helper/form/README.markdown
83
+ - lib/multi_helper/form.rb
84
+ - lib/multi_helper/navigation/group.rb
85
+ - lib/multi_helper/navigation/helper.rb
86
+ - lib/multi_helper/navigation/item.rb
87
+ - lib/multi_helper/navigation/renderer.rb
88
+ - lib/multi_helper/navigation.rb
89
+ - lib/multi_helper/vendor/validation_reflection.rb
90
+ - lib/multi_helper/view.rb
91
+ - lib/multi_helper.rb
92
+ - rails/init.rb
93
+ - Rakefile
94
+ - README.rdoc
95
+ - Manifest
96
+ - multi_helper.gemspec
97
+ has_rdoc: true
98
+ homepage: http://github.com/lucasefe/multi_helper
99
+ post_install_message:
100
+ rdoc_options:
101
+ - --line-numbers
102
+ - --inline-source
103
+ - --title
104
+ - Multi_helper
105
+ - --main
106
+ - README.rdoc
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: "0"
114
+ version:
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: "1.2"
120
+ version:
121
+ requirements: []
122
+
123
+ rubyforge_project: multi_helper
124
+ rubygems_version: 1.2.0
125
+ signing_key:
126
+ specification_version: 2
127
+ summary: Group of custim helpers for rails.
128
+ test_files: []
129
+