useful_functionality 0.1.0

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/Manifest ADDED
@@ -0,0 +1,22 @@
1
+ init.rb
2
+ lib/extensions/generator_base.rb
3
+ lib/generators_helpers/insert_commands.rb
4
+ lib/useful_functionality.rb
5
+ Manifest
6
+ rails_generators/article_like/article_like_generator.rb
7
+ rails_generators/article_like/templates/article.rb
8
+ rails_generators/article_like/templates/articles_controller.rb
9
+ rails_generators/article_like/templates/article_methods.rb
10
+ rails_generators/article_like/templates/migration.rb
11
+ rails_generators/article_like/templates/show.html.erb
12
+ rails_generators/news_like/news_like_generator.rb
13
+ rails_generators/news_like/templates/migration.rb
14
+ rails_generators/news_like/templates/news_post.rb
15
+ rails_generators/news_like/templates/news_posts_controller.rb
16
+ rails_generators/news_like/templates/news_posts_helper.rb
17
+ rails_generators/news_like/templates/views/index.html.erb
18
+ rails_generators/news_like/templates/views/new.html.erb
19
+ rails_generators/news_like/templates/views/show.html.erb
20
+ Rakefile
21
+ README
22
+ useful_functionality.gemspec
data/README ADDED
@@ -0,0 +1,15 @@
1
+ 1)News like functionality generation.Example:
2
+
3
+ ruby script/generate news_like post
4
+
5
+ Generates 3 views,controller,helper,model,migration and add nessesary resource routes
6
+
7
+ 2) Inplace Articles like fuctionality generation.
8
+
9
+ Example: ruby script/generate article_like clients
10
+
11
+ 3) useful_generators depends on ryanb's nifty_generators gem. so you've got it's fuctions too.
12
+
13
+
14
+
15
+
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ # Rakefile
2
+ require 'rubygems'
3
+ require 'rake'
4
+ require 'echoe'
5
+
6
+ Echoe.new('useful_functionality', '0.1.0') do |p|
7
+ p.description = "useful_functionality "
8
+ p.url = "http://7studio.ru"
9
+ p.author = "Vesov Ilya"
10
+ p.email = "strikeroff@gmail.com"
11
+ p.ignore_pattern = ["tmp/*", "script/*",".svn",".git"]
12
+ p.runtime_dependencies = ['nifty-generators']
13
+ p.need_tar_gz = false
14
+ p.retain_gemspec = true
15
+ p.gemspec_name = 'useful_functionality.gemspec'
16
+ p.test_pattern = ["test/**/*_test.rb"]
17
+ p.rdoc_pattern = ["README", "CHANGELOG", "lib/**/*.rb"]
18
+ p.rdoc_options << "-c utf-8"
19
+ p.ignore_pattern = [".gitignore", "doc", ".idea", "*.bat","*.sh"]
20
+ end
21
+
22
+ Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require 'lib/inplace.rb'
@@ -0,0 +1,11 @@
1
+ Rails::Generator::Base.class_eval do
2
+ # Return true if file exists
3
+ def file_exist?(relative_destination)
4
+ File.exist?(destination_path(relative_destination))
5
+ end
6
+
7
+ # Return true if directory exists and exists relative_destination is a directory
8
+ def directory_exists?(relative_destination)
9
+ File.exist?(destination_path(relative_destination))&& File.directory?(destination_path(relative_destination))
10
+ end
11
+ end
@@ -0,0 +1,109 @@
1
+ Rails::Generator::Commands::Create.class_eval do
2
+ def route_resource(*resources)
3
+ resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
4
+ sentinel = 'ActionController::Routing::Routes.draw do |map|'
5
+ logger.route "map.resource #{resource_list}"
6
+ unless options[:pretend]
7
+ gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
8
+ "#{match}\n map.resource #{resource_list}\n"
9
+ end
10
+ end
11
+ end
12
+
13
+ def route_resource_with_options(name, options={})
14
+ sentinel = 'ActionController::Routing::Routes.draw do |map|'
15
+
16
+ logger.route "map.resource #{name}#{", "<<options.inspect unless options.blank?}"
17
+ unless options[:pretend]
18
+ gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
19
+ "#{match}\n map.resource #{","<<options.inspect unless options.blank?}\n"
20
+ end
21
+ end
22
+ end
23
+
24
+ def route_name(name, path, route_options = {})
25
+ sentinel = 'ActionController::Routing::Routes.draw do |map|'
26
+
27
+ variable = "map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
28
+
29
+ variable << ", :requirements => #{route_options[:requirements].inspect}" unless route_options[:requirements].blank?
30
+
31
+ logger.route variable
32
+ unless options[:pretend]
33
+ gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
34
+ "#{match}\n #{variable}"
35
+ end
36
+ end
37
+ end
38
+
39
+ def insert_into(file, line)
40
+ logger.insert "#{line} into #{file}"
41
+ unless options[:pretend]
42
+ gsub_file file, /^(class|module) .+$/ do |match|
43
+ "#{match}\n #{line}"
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ Rails::Generator::Commands::Destroy.class_eval do
50
+ def route_resource(*resources)
51
+ resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
52
+ look_for = "\n map.resource #{resource_list}\n"
53
+ logger.route "map.resource #{resource_list}"
54
+ unless options[:pretend]
55
+ gsub_file 'config/routes.rb', /(#{look_for})/mi, ''
56
+ end
57
+ end
58
+
59
+
60
+ def route_resource_with_options(name, options={})
61
+ sentinel = 'ActionController::Routing::Routes.draw do |map|'
62
+ look_for = "\n map.resource #{name}#{", "<<options.inspect unless options.blank?}\n"
63
+ logger.route look_for
64
+ unless options[:pretend]
65
+ gsub_file 'config/routes.rb', /(#{look_for})/mi, ''
66
+ end
67
+ end
68
+
69
+ def route_name(name, path, route_options = {})
70
+ variable = "map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
71
+ variable << ", :requirements => #{route_options[:requirements].inspect}" unless route_options[:requirements].blank?
72
+
73
+ look_for = "\n #{variable}"
74
+ logger.route variable
75
+ unless options[:pretend]
76
+ gsub_file 'config/routes.rb', /(#{look_for})/mi, ''
77
+ end
78
+ end
79
+
80
+ def insert_into(file, line)
81
+ logger.remove "#{line} from #{file}"
82
+ unless options[:pretend]
83
+ gsub_file file, "\n #{line}", ''
84
+ end
85
+ end
86
+ end
87
+
88
+ Rails::Generator::Commands::List.class_eval do
89
+ def route_resource(*resources)
90
+ resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
91
+ logger.route "map.resource #{resource_list}"
92
+ end
93
+
94
+ def route_resource_with_options(name, options={})
95
+ sentinel = 'ActionController::Routing::Routes.draw do |map|'
96
+ look_for = "\n map.resource #{name}#{", "<<options.inspect unless options.blank?}\n"
97
+ logger.route look_for
98
+ end
99
+
100
+ def route_name(name, path, options = {})
101
+ variable = "map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
102
+ variable << ", :requirements => #{route_options[:requirements].inspect}" unless route_options[:requirements].blank?
103
+ variable
104
+ end
105
+
106
+ def insert_into(file, line)
107
+ logger.insert "#{line} into #{file}"
108
+ end
109
+ end
@@ -0,0 +1,10 @@
1
+ module UsefulFunctionality
2
+
3
+ end
4
+
5
+
6
+ #Dir[File.join(File.dirname(__FILE__), "generators_helpers","*.rb")].each do |file|
7
+ #require file
8
+ #end
9
+
10
+ #require File.join(File.dirname(__FILE__), "extensions", "generator_base.rb")
@@ -0,0 +1,72 @@
1
+ require "generators_helpers/insert_commands.rb"
2
+ require "extensions/generator_base.rb"
3
+
4
+ class ArticleLikeGenerator < Rails::Generator::Base
5
+
6
+ attr_accessor :article_like
7
+
8
+ def initialize(runtime_args, runtime_options = {})
9
+ super
10
+ #usage if @args.empty?
11
+ @article_like = @args.first || "article"
12
+ end
13
+
14
+ def manifest
15
+ record do |m|
16
+ m.directory "app/models"
17
+ m.directory "app/controllers"
18
+ m.directory "app/views"
19
+ m.directory "lib"
20
+
21
+
22
+ unless file_exist?("lib/article_methods.rb")
23
+ m.template "article_methods.rb", "lib/article_methods.rb"
24
+ end
25
+
26
+ unless file_exist?("app/controllers/articles_controller.rb")
27
+ m.template "articles_controller.rb", "app/controllers/articles_controller.rb"
28
+ m.route_resources :articles
29
+ end
30
+
31
+ unless directory_exists?("app/views/articles")
32
+ m.directory "app/views/articles"
33
+ end
34
+
35
+ unless file_exist?("app/views/articles/show.html.erb")
36
+ m.template "show.html.erb", "app/views/articles/show.html.erb"
37
+ end
38
+
39
+ unless file_exist?("app/models/article.rb")
40
+ m.template "article.rb", "app/models/article.rb"
41
+ m.migration_template "migration.rb", "db/migrate", :migration_file_name => "create_articles"
42
+ end
43
+
44
+ unless article_like.blank?
45
+
46
+ m.template "show.html.erb", "app/views/articles/#{article_like}.html.erb"
47
+
48
+ m.route_name article_like, article_like, :controller => 'articles', :action => 'article_show',
49
+ :requirements=>{
50
+ :alias=>"#{article_like}"
51
+ }
52
+ end
53
+
54
+ end
55
+ end
56
+
57
+ def singular_name
58
+ article_like.underscore.singularize
59
+ end
60
+
61
+ def plural_name
62
+ article_like.underscore.pluralize
63
+ end
64
+
65
+ def singular_class_name
66
+ singular_name.camelize
67
+ end
68
+
69
+ def plural_class_name
70
+ plural_name.camelize
71
+ end
72
+ end
@@ -0,0 +1,2 @@
1
+ class Article < ActiveRecord::Base
2
+ end
@@ -0,0 +1,10 @@
1
+ module ArticleMethods
2
+ def article_show
3
+ @article = Article.find_or_create_by_alias_and_locale params[:alias], I18n.locale.to_s
4
+ #@article ||= Article.create(:alias => params[:alias],
5
+ # :title=> I18n.t(params[:alias]),
6
+ # :locale => I18n.locale.to_s )
7
+ view = params[:default_view]? "show" : params[:alias]
8
+ render :template => "articles/#{view}"
9
+ end
10
+ end
@@ -0,0 +1,4 @@
1
+ class ArticlesController < ResourceController::Base
2
+ protect_from_forgery :except=>[:update_attribute]
3
+ include ArticleMethods
4
+ end
@@ -0,0 +1,14 @@
1
+ class CreateArticles < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :articles do |t|
4
+ t.text :description
5
+ t.string :alias
6
+ t.string :locale
7
+ t.timestamps
8
+ end
9
+ end
10
+
11
+ def self.down
12
+ drop_table :articles
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ <%%= inplace_textareafield("description", show_unblanked(@article.description, "Введите текст"),
2
+ attribute_article_url(:id=>@article.id,:attribute=>"description"),
3
+ :width => "700px",
4
+ :height => "450px",
5
+ :identifier => "description",
6
+ :value => @article.description,
7
+ :default_value => 'Добавить текст статьи',
8
+ :enable => admin?)
9
+ %>
@@ -0,0 +1,60 @@
1
+ require "generators_helpers/insert_commands.rb"
2
+ class NewsLikeGenerator < Rails::Generator::Base
3
+
4
+ attr_accessor :news_like,:generator_options
5
+
6
+ def initialize(runtime_args, runtime_options = {})
7
+ super
8
+ usage if @args.empty?
9
+ @news_like = @args.first
10
+ @generator_options = @args.second || {}
11
+ end
12
+
13
+ def manifest
14
+ record do |m|
15
+ m.directory "app/models"
16
+ m.directory "app/controllers"
17
+ m.directory "app/helpers"
18
+ m.directory "app/views"
19
+ m.directory "lib"
20
+
21
+ m.directory "app/views/#{plural_name}"
22
+
23
+ m.template "views/index.html.erb", "app/views/#{plural_name}/index.html.erb"
24
+ m.template "views/show.html.erb", "app/views/#{plural_name}/show.html.erb"
25
+ m.template "views/new.html.erb", "app/views/#{plural_name}/new.html.erb"
26
+
27
+
28
+ m.template "news_post.rb", "app/models/#{singular_name}.rb"
29
+ m.template "news_posts_controller.rb", "app/controllers/#{plural_name}_controller.rb"
30
+ m.template "news_posts_helper.rb", "app/helpers/#{plural_name}_helper.rb"
31
+ m.migration_template "migration.rb", "db/migrate", :migration_file_name => "create_#{plural_name}"
32
+
33
+ m.route_resources plural_name
34
+
35
+ #m.route_name article_like, article_like, :controller => 'articles', :action => 'articles_show',
36
+ # :requirements=>{
37
+ # :alias=>"#{article_like}"
38
+ # }
39
+ #
40
+
41
+
42
+ end
43
+ end
44
+
45
+ def singular_name
46
+ news_like.underscore.singularize
47
+ end
48
+
49
+ def plural_name
50
+ news_like.underscore.pluralize
51
+ end
52
+
53
+ def singular_class_name
54
+ singular_name.camelize
55
+ end
56
+
57
+ def plural_class_name
58
+ plural_name.camelize
59
+ end
60
+ end
@@ -0,0 +1,14 @@
1
+ class Create<%= plural_class_name %> < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :<%= plural_name %> do |t|
4
+ t.string :title
5
+ t.text :body
6
+ t.boolean :delta, :default => true, :null => false
7
+ t.timestamps
8
+ end
9
+ end
10
+
11
+ def self.down
12
+ drop_table :<%= plural_name %>
13
+ end
14
+ end
@@ -0,0 +1,2 @@
1
+ class <%= singular_class_name %> < ActiveRecord::Base
2
+ end
@@ -0,0 +1,13 @@
1
+ class <%= plural_class_name %>Controller < ResourceController::Base
2
+
3
+ protect_from_forgery :except=>[:update_attributes]
4
+
5
+ create.wants.html do
6
+ redirect_to :action=>"show"
7
+ end
8
+
9
+ destroy.wants.html do
10
+ redirect_to :action => "index"
11
+ end
12
+
13
+ end
@@ -0,0 +1,3 @@
1
+ module <%= plural_class_name %>Helper
2
+
3
+ end
@@ -0,0 +1,21 @@
1
+ <%% unless @<%= plural_name%>.blank? %>
2
+ <div class="news-post">
3
+ <%% @<%= plural_name%>.each do |post| %>
4
+ <div class="post-item">
5
+ <div class="news-date">
6
+ <%%= post.created_at.strftime("%d.%m.%Y") %>
7
+ </div>
8
+ <div class="list-posts">
9
+
10
+ <%%= title(post.title, :link => <%= singular_name%>_url(:id => post.id))%>
11
+ </div>
12
+ </div>
13
+
14
+ <%% end %>
15
+ </div>
16
+ <%% end %>
17
+ <%% if admin? %>
18
+ <div class="post-operations">
19
+ <%%= link_to I18n.t('<%= plural_name%>.add_post'), new_<%= singular_name%>_url %>
20
+ </div>
21
+ <%% end %>
@@ -0,0 +1,37 @@
1
+ <%% form_id = "new_<%= singular_name%>_form" %>
2
+ <%% form_for :<%= singular_name%>, @object, :url =>{:action => "create"}, :html => { :id => form_id} do |form| %>
3
+
4
+ <%%= form.error_messages %>
5
+
6
+ <%%= inplace_textfield("title",
7
+ show_unblanked(@object.title, "Введите текст заголовка"),
8
+ "",
9
+ :width => "440px",
10
+ :height => "20px",
11
+ :identifier => "title",
12
+ :value => @object.title,
13
+ :default_value => 'Введите текст заголовка',
14
+ :adapter => true,
15
+ :form_id => form_id,
16
+ :form_name => "title",
17
+ :wrapperPattern => "<%= singular_name%>[*]",
18
+ :enable => admin?) %>
19
+
20
+ <%%= inplace_textareafield("body", show_unblanked(@object.body, "Добавить текст статьи"), "",
21
+ :width => "527px",
22
+ :height => "450px",
23
+ :identifier => "body",
24
+ :value => @object.body,
25
+ :default_value => 'Добавить текст статьи',
26
+ :adapter => true,
27
+ :form_id => form_id,
28
+ :form_name => "body",
29
+ :wrapperPattern => "<%= singular_name%>[*]",
30
+ :enable => admin?)
31
+ %>
32
+
33
+
34
+ <%%= submit_tag "Публикация", :class=>"publ" %>
35
+
36
+
37
+ <%% end %>
@@ -0,0 +1,24 @@
1
+ <div class="post">
2
+ <div class="post-attribute post-title">
3
+ <%%= title @object.title,
4
+ :update_to => attribute_<%=singular_name%>_url(:id=>@object.id,:attribute=>"title"),
5
+ :enable => admin?, :mode=>:edit %>
6
+ </div>
7
+
8
+
9
+ <div class="post-attribute">
10
+
11
+ <%%= textarea @object.body, :update_to => attribute_<%=singular_name%>_url(:id=>@object.id,:attribute=>"body"),
12
+ :width => "627px",
13
+ :height => "450px",
14
+ :editable => admin?%>
15
+
16
+ </div>
17
+ <div class="post-operations">
18
+ <%%= show_link_to_if I18n.t("<%=plural_name%>.delete_post"), <%=singular_name%>_url(@object), admin?,
19
+ :method=>:delete,
20
+ :confirm=>I18n.t("<%=plural_name%>.confirm_delete_post") %>
21
+ </div>
22
+ </div>
23
+
24
+
@@ -0,0 +1,36 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{useful_functionality}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Vesov Ilya"]
9
+ s.date = %q{2009-10-19}
10
+ s.description = %q{useful_functionality }
11
+ s.email = %q{strikeroff@gmail.com}
12
+ s.extra_rdoc_files = ["lib/extensions/generator_base.rb", "lib/generators_helpers/insert_commands.rb", "lib/useful_functionality.rb", "README"]
13
+ s.files = ["init.rb", "lib/extensions/generator_base.rb", "lib/generators_helpers/insert_commands.rb", "lib/useful_functionality.rb", "Manifest", "rails_generators/article_like/article_like_generator.rb", "rails_generators/article_like/templates/article.rb", "rails_generators/article_like/templates/articles_controller.rb", "rails_generators/article_like/templates/article_methods.rb", "rails_generators/article_like/templates/migration.rb", "rails_generators/article_like/templates/show.html.erb", "rails_generators/news_like/news_like_generator.rb", "rails_generators/news_like/templates/migration.rb", "rails_generators/news_like/templates/news_post.rb", "rails_generators/news_like/templates/news_posts_controller.rb", "rails_generators/news_like/templates/news_posts_helper.rb", "rails_generators/news_like/templates/views/index.html.erb", "rails_generators/news_like/templates/views/new.html.erb", "rails_generators/news_like/templates/views/show.html.erb", "Rakefile", "README", "useful_functionality.gemspec"]
14
+ s.homepage = %q{http://7studio.ru}
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Useful_functionality", "--main", "README", "-c utf-8"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{useful_functionality}
18
+ s.rubygems_version = %q{1.3.5}
19
+ s.summary = %q{useful_functionality}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ s.add_runtime_dependency(%q<nifty-generators>, [">= 0"])
27
+ s.add_development_dependency(%q<echoe>, [">= 0"])
28
+ else
29
+ s.add_dependency(%q<nifty-generators>, [">= 0"])
30
+ s.add_dependency(%q<echoe>, [">= 0"])
31
+ end
32
+ else
33
+ s.add_dependency(%q<nifty-generators>, [">= 0"])
34
+ s.add_dependency(%q<echoe>, [">= 0"])
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: useful_functionality
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Vesov Ilya
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-19 00:00:00 +05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: nifty-generators
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: echoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: "useful_functionality "
36
+ email: strikeroff@gmail.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - lib/extensions/generator_base.rb
43
+ - lib/generators_helpers/insert_commands.rb
44
+ - lib/useful_functionality.rb
45
+ - README
46
+ files:
47
+ - init.rb
48
+ - lib/extensions/generator_base.rb
49
+ - lib/generators_helpers/insert_commands.rb
50
+ - lib/useful_functionality.rb
51
+ - Manifest
52
+ - rails_generators/article_like/article_like_generator.rb
53
+ - rails_generators/article_like/templates/article.rb
54
+ - rails_generators/article_like/templates/articles_controller.rb
55
+ - rails_generators/article_like/templates/article_methods.rb
56
+ - rails_generators/article_like/templates/migration.rb
57
+ - rails_generators/article_like/templates/show.html.erb
58
+ - rails_generators/news_like/news_like_generator.rb
59
+ - rails_generators/news_like/templates/migration.rb
60
+ - rails_generators/news_like/templates/news_post.rb
61
+ - rails_generators/news_like/templates/news_posts_controller.rb
62
+ - rails_generators/news_like/templates/news_posts_helper.rb
63
+ - rails_generators/news_like/templates/views/index.html.erb
64
+ - rails_generators/news_like/templates/views/new.html.erb
65
+ - rails_generators/news_like/templates/views/show.html.erb
66
+ - Rakefile
67
+ - README
68
+ - useful_functionality.gemspec
69
+ has_rdoc: true
70
+ homepage: http://7studio.ru
71
+ licenses: []
72
+
73
+ post_install_message:
74
+ rdoc_options:
75
+ - --line-numbers
76
+ - --inline-source
77
+ - --title
78
+ - Useful_functionality
79
+ - --main
80
+ - README
81
+ - -c utf-8
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: "0"
89
+ version:
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: "1.2"
95
+ version:
96
+ requirements: []
97
+
98
+ rubyforge_project: useful_functionality
99
+ rubygems_version: 1.3.5
100
+ signing_key:
101
+ specification_version: 3
102
+ summary: useful_functionality
103
+ test_files: []
104
+