flexa_lib 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,33 @@
1
+ module FlexaLib
2
+ module Helpers
3
+ module TableHelpers
4
+
5
+ #TABLE_HELPERS
6
+ def flexa_table_for(collection, *args, &proc)
7
+ options = args.extract_options!
8
+ options[:html]={:class=>'table table-striped table-bordered table-condensed'}
9
+ table_for collection, options do |t|
10
+ if options[:actions].present? && options[:actions].count > 0
11
+ t.column :title=>"",:html => { :th => { :width => ((options[:actions].count.to_i*21)).to_s }, :td=>{:class=>"btn_actions"}} do |resource|
12
+ options[:actions].each do |action|
13
+ if [:show,:edit,:delete].include? action
14
+ concat(send("flexa_grid_button_#{action}_to",resource))
15
+ elsif [:select].include? action
16
+ concat(send("flexa_grid_button_select_to",resource,params[:fill]))
17
+ else
18
+ send("#{action}",resource)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ begin
24
+ t.instance_eval(&proc)
25
+ rescue
26
+ concat("")
27
+ end
28
+ end
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,28 @@
1
+ require 'flexa_lib/helpers/button_grid_helpers'
2
+ require 'flexa_lib/helpers/button_helpers'
3
+ require 'flexa_lib/helpers/link_helpers'
4
+ require 'flexa_lib/helpers/other_helpers'
5
+ require 'flexa_lib/helpers/paginate_helpers'
6
+ require 'flexa_lib/helpers/table_helpers'
7
+ require 'flexa_lib/helpers/lookup_helpers'
8
+ require 'flexa_lib/helpers/tab_helpers'
9
+
10
+ module FlexaLib
11
+ module Helpers
12
+ include ButtonGridHelpers
13
+
14
+ include ButtonHelpers
15
+
16
+ include LinkHelpers
17
+
18
+ include OtherHelpers
19
+
20
+ include PaginateHelpers
21
+
22
+ include TableHelpers
23
+
24
+ include LookupHelpers
25
+
26
+ include TabHelpers
27
+ end
28
+ end
@@ -0,0 +1,36 @@
1
+ module FlexaLib
2
+ module Inputs
3
+ class DatePickerInput < Formtastic::Inputs::StringInput
4
+
5
+ def to_html
6
+ input_wrapping do
7
+ options[:lookup].inspect if options[:lookup].present?
8
+ label_html <<
9
+ builder.text_field(options[:lookup][:display], input_html_options) <<
10
+ template.link_to(options[:lookup][:display],options[:lookup][:path],{:target=>"_blank",:class=>"btn"})<<
11
+ builder.hidden_field(method, {})
12
+ end
13
+ end
14
+
15
+ def label_html_options
16
+ {}.tap do |opts|
17
+ opts[:for] ||= input_html_options[:id]
18
+ opts[:class] = [opts[:class]]
19
+ end
20
+ end
21
+
22
+ #def input_html_options
23
+ # super.reject { |k, v| [:min, :max, :step].include?(k) }
24
+ #end
25
+
26
+ def wrapper_html_options
27
+ super.merge(:class => "#{super[:class]} datePicker" )
28
+ end
29
+
30
+ def input_html_options
31
+ super.merge(:class => "datePicker")
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,51 @@
1
+ module FlexaLib
2
+ module Inputs
3
+ class LookupInput < Formtastic::Inputs::StringInput
4
+
5
+ def to_html
6
+ lookup_feedback_fields = Array.new
7
+ lookup_feedback_fields<<method
8
+ lookup_feedback_fields<<options[:lookup][:display]
9
+ lookup_feedback_fields = lookup_feedback_fields+options[:lookup][:fill].to_a if (options[:lookup][:fill].present?&&options[:lookup][:fill].count>0)
10
+ lookup_url = options[:lookup][:route]+"?fill="+lookup_feedback_fields.join(",")
11
+ input_wrapping do
12
+ #options[:lookup].inspect if options[:lookup].present?
13
+ #ihtml_display = input_html_options
14
+ ihtml_display = input_html_options
15
+ ihtml_display[:readonly]=true
16
+ ihtml_display[:style]="background-color: white;border: 1px solid #CCC;" if !input_html_options[:readonly]
17
+ ihtml_display[:id]=options[:lookup][:display]
18
+ str = builder.text_field(options[:lookup][:display], ihtml_display) <<
19
+ template.link_to(template.content_tag("i", "",:class=>"icon-search icon-white"),"#"+'div_'+method.to_s,{:target=>"_blank",:class=>"btn btn-info btnlookup","data-toggle"=>"modal"})<<
20
+ builder.hidden_field(method, {:id=>method})
21
+
22
+ iframe = template.content_tag(:iframe,"",:src=>lookup_url,:marginheight=>0,:height=>"350",:width=>"100%",:frameborder=>"0")
23
+ str = str + template.content_tag(:div,iframe,:id=>'div_'+method.to_s,:class=>"modal hide fade",:style=>"display: none; ")
24
+
25
+
26
+ label_html << template.content_tag(:div,str,:style=>"margin:0;padding:0;display:inline")
27
+ end
28
+ end
29
+
30
+ def label_html_options
31
+ {}.tap do |opts|
32
+ opts[:for] ||= input_html_options[:id]
33
+ opts[:class] = [opts[:class]]
34
+ end
35
+ end
36
+
37
+ #def input_html_options
38
+ # super.reject { |k, v| [:min, :max, :step].include?(k) }
39
+ #end
40
+
41
+ def wrapper_html_options
42
+ super.merge(:class => "#{super[:class]}" )
43
+ end
44
+
45
+ #def input_html_options
46
+ #super.merge(:class => "datePicker")
47
+ #end
48
+
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,8 @@
1
+ require 'flexa_lib/inputs/lookup_input'
2
+ require 'flexa_lib/inputs/date_picker_input'
3
+
4
+ module FlexaLib
5
+ module Inputs
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module FlexaLib
2
+ MAJOR = 0
3
+ MINOR = 1
4
+ PATCH = 0
5
+ #BUILD = 'final'
6
+
7
+ VERSION = [MAJOR, MINOR, PATCH].compact.join('.')
8
+ end
data/lib/flexa_lib.rb ADDED
@@ -0,0 +1,47 @@
1
+ ########################################
2
+ ###### BIBLIOTECAS DE TERCEIROS #########
3
+ ########################################
4
+
5
+ #WILL_PAGINATE
6
+ require 'will_paginate'
7
+ require 'will_paginate_twitter_bootstrap'
8
+
9
+ #TABLE_FOR
10
+ require 'table_for_collection'
11
+
12
+ #FORMTASTIC
13
+ require 'formtastic'
14
+ require 'formtastic-bootstrap'
15
+
16
+
17
+ #require 'bootstrap-sass'
18
+
19
+ ########################################
20
+ ############## FLEXA LIB ###############
21
+ ########################################
22
+ require 'flexa_lib/engine' if defined?(::Rails) # For tests
23
+ require 'flexa_lib/version'
24
+
25
+ #inputs flexa
26
+ require 'flexa_lib/inputs'
27
+
28
+ module FormtasticBootstrap
29
+ module Inputs
30
+ include FlexaLib::Inputs
31
+ end
32
+ end
33
+
34
+
35
+ #helpers flexa
36
+ require 'flexa_lib/helpers'
37
+
38
+ module ActionView
39
+ class Base
40
+ include FlexaLib::Helpers
41
+ end
42
+ end
43
+
44
+
45
+ #validacoes de CPF e CNPJ
46
+ require 'flexa_lib/brcpfcnpj'
47
+
@@ -0,0 +1,139 @@
1
+ require 'rails/generators/generated_attribute'
2
+
3
+ module FlexaLib
4
+ class FlexaGenerator < Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ argument :controller_path, :type => :string
8
+ argument :model_name, :type => :string, :required => false
9
+
10
+ class_option :layout, :type => :string, :desc => 'Specify the layout name'
11
+ class_option :engine, :type => :string, :default => 'erb', :desc => 'Specify the template engine'
12
+ class_option :will_paginate, :type => :boolean, :default => false, :desc => 'Specify if you use will_paginate'
13
+ class_option :themed_type, :type => :string, :default => 'crud', :desc => 'Specify the themed type, crud or text. Default is crud'
14
+
15
+ def initialize(args, *options)
16
+ super(args, *options)
17
+ initialize_views_variables
18
+ end
19
+
20
+ def copy_views
21
+ generate_views
22
+ unless options.layout.blank?
23
+ if options.engine =~ /erb/
24
+ gsub_file(File.join('app/views/layouts', "#{options[:layout]}.html.#{options.engine}"), /\<div\s+id=\"main-navigation\">.*\<\/ul\>/mi) do |match|
25
+ match.gsub!(/\<\/ul\>/, "")
26
+ %|#{match} <li class="<%= controller.controller_path == '#{@controller_file_path}' ? 'active' : '' %>"><a href="<%= #{controller_routing_path}_path %>">#{plural_model_name}</a></li></ul>|
27
+ end
28
+ elsif options.engine =~ /haml/
29
+ gsub_file(File.join('app/views/layouts', "#{options[:layout]}.html.#{options.engine}"), /#main-navigation.*#wrapper.wat-cf/mi) do |match|
30
+ match.gsub!(/ #wrapper.wat-cf/, "")
31
+ %|#{match}| +
32
+ " "*6 + %|%li{:class => controller.controller_path == '#{@controller_file_path}' ? 'active' : '' }\n| +
33
+ " "*7 + %|%a{:href => #{controller_routing_path}_path} #{plural_model_name}\n| +
34
+ " "*3 + %|#wrapper.wat-cf|
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ protected
41
+
42
+ def initialize_views_variables
43
+ @base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(controller_path)
44
+ @controller_routing_path = @controller_file_path.gsub(/\//, '_')
45
+ @model_name = @base_name.singularize unless @model_name
46
+ @model_name = @model_name.camelize
47
+ end
48
+
49
+ def controller_routing_path
50
+ @controller_routing_path
51
+ end
52
+
53
+ def singular_controller_routing_path
54
+ @controller_routing_path.singularize
55
+ end
56
+
57
+ def model_name
58
+ @model_name
59
+ end
60
+
61
+ def plural_model_name
62
+ @model_name.pluralize
63
+ end
64
+
65
+ def resource_name
66
+ @model_name.underscore
67
+ end
68
+
69
+ def plural_resource_name
70
+ resource_name.pluralize
71
+ end
72
+
73
+ ##
74
+ # Attempts to call #columns on the model's class
75
+ # If the (Active Record) #columns method does not exist, it attempts to
76
+ # perform the (Mongoid) #fields method instead
77
+ def columns
78
+ begin
79
+ excluded_column_names = %w[id created_at updated_at]
80
+ Kernel.const_get(@model_name).columns.reject{|c| excluded_column_names.include?(c.name) }.collect{|c| Rails::Generators::GeneratedAttribute.new(c.name, c.type)}
81
+ rescue NoMethodError
82
+ Kernel.const_get(@model_name).fields.collect{|c| c[1]}.reject{|c| excluded_column_names.include?(c.name) }.collect{|c| Rails::Generators::GeneratedAttribute.new(c.name, c.type.to_s)}
83
+ end
84
+ end
85
+
86
+ def extract_modules(name)
87
+ modules = name.include?('/') ? name.split('/') : name.split('::')
88
+ name = modules.pop
89
+ path = modules.map { |m| m.underscore }
90
+ file_path = (path + [name.underscore]).join('/')
91
+ nesting = modules.map { |m| m.camelize }.join('::')
92
+ [name, path, file_path, nesting, modules.size]
93
+ end
94
+
95
+ def generate_views
96
+ views = {
97
+ 'crud' => {
98
+ 'view_tables.html.erb' => File.join('app/views', @controller_file_path, "index.html.#{options.engine}"),
99
+ 'view_new.html.erb' => File.join('app/views', @controller_file_path, "new.html.#{options.engine}"),
100
+ 'view_edit.html.erb' => File.join('app/views', @controller_file_path, "edit.html.#{options.engine}"),
101
+ 'view_form.html.erb' => File.join('app/views', @controller_file_path, "_form.html.#{options.engine}"),
102
+ 'view_show.html.erb' => File.join('app/views', @controller_file_path, "show.html.#{options.engine}")
103
+ },
104
+ 'print' => {
105
+ 'view_print.html.erb' => File.join('app/views', @controller_file_path, "print.html.#{options.engine}")
106
+ },
107
+ 'text' => {
108
+ 'view_text.html.erb' => File.join('app/views', @controller_file_path, "show.html.#{options.engine}"),
109
+ 'view_sidebar.html.erb' => File.join('app/views', @controller_file_path, "_sidebar.html.#{options.engine}")
110
+ }
111
+ }
112
+ selected_views = views[options.themed_type]
113
+ options.engine == 'haml' ? generate_haml_views(selected_views) : generate_erb_views(selected_views)
114
+ end
115
+
116
+ def generate_erb_views(views)
117
+ views.each do |template_name, output_path|
118
+ template template_name, output_path
119
+ end
120
+ end
121
+
122
+ def generate_haml_views(views)
123
+ require 'haml'
124
+ Dir.mktmpdir('web-app-theme-haml') do |haml_root|
125
+ views.each do |template_name, output_path|
126
+ tmp_html_path = "#{haml_root}/#{template_name}"
127
+ tmp_haml_path = "#{haml_root}/#{template_name}.haml"
128
+ template template_name, tmp_html_path, :verbose => false
129
+ `html2haml --erb --xhtml #{tmp_html_path} #{tmp_haml_path}`
130
+ copy_file tmp_haml_path, output_path
131
+ end
132
+ end
133
+
134
+ rescue LoadError
135
+ say "HAML is not installed, or it is not specified in your Gemfile."
136
+ exit
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,21 @@
1
+ module FlexaLib
2
+
3
+ class LookupGenerator < Rails::Generators::NamedBase
4
+ argument :colunas, :type => :array
5
+
6
+ source_root File.expand_path('../templates', __FILE__)
7
+ class_option :orm
8
+ def generate_lookup
9
+ template "lookup_controller.rb", "app/controllers/lookups/#{plural_file_name}_controller.rb"
10
+ template "lookup_view.erb", "app/views/lookups/#{plural_file_name}/index.html.erb"
11
+ route("match 'lookups/#{plural_file_name}' => 'lookups/#{plural_file_name}#index', :as => :lookups_#{plural_file_name}")
12
+ end
13
+ hook_for :test_framework, :in => :rails, :as => :controller do |instance, controller|
14
+ instance.invoke controller, [ "lookups/"<<instance.name.pluralize ]
15
+ end
16
+ #hook_for :test_framework, :in => :rails, :as => :controller
17
+ #hook_for :test_framework, :in => :rails, :as => :view
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,11 @@
1
+
2
+ module FlexaLib
3
+
4
+ class LookupGeneratorTest < Rails::Generators::TestCase
5
+ tests LookupGenerator
6
+ destination File.expand_path("../tmp", File.dirname(__FILE__))
7
+ setup :prepare_destination
8
+ run_generator
9
+ end
10
+
11
+ end
@@ -0,0 +1,19 @@
1
+ class Lookups::<%= class_name.pluralize %>Controller < ApplicationController
2
+ #created by <%=ENV['SUDO_USER']||ENV['USERNAME']%> at <%=Time.now.strftime('%d/%m/%Y %H:%M')%>
3
+
4
+ # GET <%= route_url %>
5
+ # GET <%= route_url %>.xml
6
+ def index
7
+ <% colunas_like = colunas.dup
8
+ colunas_param = colunas.dup
9
+ colunas_like.collect! {|x| "("+x+" like ?)"}
10
+ colunas_param.collect! {|y| '"%"<<params[:search].to_s<<"%"'} %>
11
+ @<%= plural_table_name %> = <%= class_name%>.paginate(:page => params[:page], :per_page => 25,:conditions=>["<%= colunas_like.join(' or ') %>",<%=colunas_param.join(',')%>])
12
+
13
+ respond_to do |format|
14
+ format.html # index.html.erb
15
+ format.xml { render :xml => @<%= plural_table_name %> }
16
+ end
17
+ end
18
+
19
+ end
metadata ADDED
@@ -0,0 +1,267 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flexa_lib
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Allan Freitas
14
+ - Marcio Sfalsin
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2012-03-13 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rails
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 5
30
+ segments:
31
+ - 3
32
+ - 1
33
+ - 3
34
+ version: 3.1.3
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: thor
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 23
46
+ segments:
47
+ - 0
48
+ - 14
49
+ version: "0.14"
50
+ type: :runtime
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: formtastic
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - "="
59
+ - !ruby/object:Gem::Version
60
+ hash: 11
61
+ segments:
62
+ - 2
63
+ - 0
64
+ - 2
65
+ version: 2.0.2
66
+ type: :runtime
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
69
+ name: actionpack
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">"
75
+ - !ruby/object:Gem::Version
76
+ hash: 7
77
+ segments:
78
+ - 3
79
+ - 0
80
+ version: "3.0"
81
+ type: :runtime
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: activemodel
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ">"
90
+ - !ruby/object:Gem::Version
91
+ hash: 7
92
+ segments:
93
+ - 3
94
+ - 0
95
+ version: "3.0"
96
+ type: :runtime
97
+ version_requirements: *id005
98
+ - !ruby/object:Gem::Dependency
99
+ name: bootstrap-sass
100
+ prerelease: false
101
+ requirement: &id006 !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
110
+ type: :runtime
111
+ version_requirements: *id006
112
+ - !ruby/object:Gem::Dependency
113
+ name: formtastic-bootstrap
114
+ prerelease: false
115
+ requirement: &id007 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - "="
119
+ - !ruby/object:Gem::Version
120
+ hash: 31
121
+ segments:
122
+ - 1
123
+ - 2
124
+ - 0
125
+ version: 1.2.0
126
+ type: :runtime
127
+ version_requirements: *id007
128
+ - !ruby/object:Gem::Dependency
129
+ name: devise
130
+ prerelease: false
131
+ requirement: &id008 !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - "="
135
+ - !ruby/object:Gem::Version
136
+ hash: 5
137
+ segments:
138
+ - 1
139
+ - 5
140
+ - 3
141
+ version: 1.5.3
142
+ type: :runtime
143
+ version_requirements: *id008
144
+ - !ruby/object:Gem::Dependency
145
+ name: table_for_collection
146
+ prerelease: false
147
+ requirement: &id009 !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - "="
151
+ - !ruby/object:Gem::Version
152
+ hash: 27
153
+ segments:
154
+ - 1
155
+ - 0
156
+ - 6
157
+ version: 1.0.6
158
+ type: :runtime
159
+ version_requirements: *id009
160
+ - !ruby/object:Gem::Dependency
161
+ name: will_paginate
162
+ prerelease: false
163
+ requirement: &id010 !ruby/object:Gem::Requirement
164
+ none: false
165
+ requirements:
166
+ - - "="
167
+ - !ruby/object:Gem::Version
168
+ hash: 3
169
+ segments:
170
+ - 3
171
+ - 0
172
+ - 2
173
+ version: 3.0.2
174
+ type: :runtime
175
+ version_requirements: *id010
176
+ - !ruby/object:Gem::Dependency
177
+ name: will_paginate_twitter_bootstrap
178
+ prerelease: false
179
+ requirement: &id011 !ruby/object:Gem::Requirement
180
+ none: false
181
+ requirements:
182
+ - - "="
183
+ - !ruby/object:Gem::Version
184
+ hash: 23
185
+ segments:
186
+ - 1
187
+ - 0
188
+ - 0
189
+ version: 1.0.0
190
+ type: :runtime
191
+ version_requirements: *id011
192
+ description: Helpers, Geradores(de controllers, views, Scaffolds Personalizados).
193
+ email:
194
+ - allan.freitas@flexait.com.br
195
+ executables: []
196
+
197
+ extensions: []
198
+
199
+ extra_rdoc_files: []
200
+
201
+ files:
202
+ - lib/flexa_lib/inputs.rb
203
+ - lib/flexa_lib/brcpfcnpj.rb
204
+ - lib/flexa_lib/engine.rb
205
+ - lib/flexa_lib/brcpfcnpj/cpf_cnpj.rb
206
+ - lib/flexa_lib/brcpfcnpj/cpf_cnpj_activerecord.rb
207
+ - lib/flexa_lib/brcpfcnpj/version.rb
208
+ - lib/flexa_lib/brcpfcnpj/cnpj_validator.rb
209
+ - lib/flexa_lib/brcpfcnpj/cpf.rb
210
+ - lib/flexa_lib/brcpfcnpj/cnpj.rb
211
+ - lib/flexa_lib/brcpfcnpj/cpf_validator.rb
212
+ - lib/flexa_lib/version.rb
213
+ - lib/flexa_lib/helpers/table_helpers.rb
214
+ - lib/flexa_lib/helpers/paginate_helpers.rb
215
+ - lib/flexa_lib/helpers/button_helpers.rb
216
+ - lib/flexa_lib/helpers/button_grid_helpers.rb
217
+ - lib/flexa_lib/helpers/tab_helpers.rb
218
+ - lib/flexa_lib/helpers/other_helpers.rb
219
+ - lib/flexa_lib/helpers/lookup_helpers.rb
220
+ - lib/flexa_lib/helpers/link_helpers.rb
221
+ - lib/flexa_lib/inputs/date_picker_input.rb
222
+ - lib/flexa_lib/inputs/lookup_input.rb
223
+ - lib/flexa_lib/helpers.rb
224
+ - lib/generators/flexa_lib/crud/flexa_generator.rb
225
+ - lib/generators/flexa_lib/lookup/lookup_generator.rb
226
+ - lib/generators/flexa_lib/lookup/templates/lookup_controller.rb
227
+ - lib/generators/flexa_lib/lookup/lookup_generator_test.rb
228
+ - lib/flexa_lib.rb
229
+ - LICENSE
230
+ - README.txt
231
+ homepage: http://flexait.com.br/
232
+ licenses: []
233
+
234
+ post_install_message:
235
+ rdoc_options: []
236
+
237
+ require_paths:
238
+ - lib
239
+ required_ruby_version: !ruby/object:Gem::Requirement
240
+ none: false
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ hash: 3
245
+ segments:
246
+ - 0
247
+ version: "0"
248
+ required_rubygems_version: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ hash: 23
254
+ segments:
255
+ - 1
256
+ - 3
257
+ - 6
258
+ version: 1.3.6
259
+ requirements: []
260
+
261
+ rubyforge_project: flexa_lib
262
+ rubygems_version: 1.8.15
263
+ signing_key:
264
+ specification_version: 3
265
+ summary: "Implementa\xC3\xA7\xC3\xB5es feitas para RubyOnRails 3.1+"
266
+ test_files: []
267
+