qalam_merit 4.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +21 -0
- data/README.md +358 -0
- data/RELEASING.md +16 -0
- data/Rakefile +44 -0
- data/TESTING.txt +12 -0
- data/config/locales/en.yml +5 -0
- data/lib/merit.rb +95 -0
- data/lib/merit/badge_rules_methods.rb +30 -0
- data/lib/merit/base_target_finder.rb +31 -0
- data/lib/merit/class_methods.rb +41 -0
- data/lib/merit/controller_extensions.rb +71 -0
- data/lib/merit/generators/active_record/install_generator.rb +40 -0
- data/lib/merit/generators/active_record/merit_generator.rb +25 -0
- data/lib/merit/generators/active_record/remove_generator.rb +30 -0
- data/lib/merit/generators/active_record/templates/add_merit_fields_to_model.erb +7 -0
- data/lib/merit/generators/active_record/templates/create_badges_sashes.erb +14 -0
- data/lib/merit/generators/active_record/templates/create_merit_actions.erb +16 -0
- data/lib/merit/generators/active_record/templates/create_merit_activity_logs.erb +12 -0
- data/lib/merit/generators/active_record/templates/create_merit_badges.erb +17 -0
- data/lib/merit/generators/active_record/templates/create_sashes.erb +8 -0
- data/lib/merit/generators/active_record/templates/create_scores_and_points.erb +16 -0
- data/lib/merit/generators/active_record/templates/remove_merit_fields_from_model.erb +7 -0
- data/lib/merit/generators/active_record/templates/remove_merit_tables.erb +12 -0
- data/lib/merit/generators/install_generator.rb +30 -0
- data/lib/merit/generators/merit_generator.rb +33 -0
- data/lib/merit/generators/remove_generator.rb +23 -0
- data/lib/merit/generators/templates/badge.erb +69 -0
- data/lib/merit/generators/templates/merit.erb +18 -0
- data/lib/merit/generators/templates/merit_badge_rules.erb +50 -0
- data/lib/merit/generators/templates/merit_point_rules.erb +31 -0
- data/lib/merit/generators/templates/merit_rank_rules.erb +32 -0
- data/lib/merit/generators/templates/qalam_badge_sash.erb +20 -0
- data/lib/merit/generators/templates/qalam_sash.erb +14 -0
- data/lib/merit/judge.rb +102 -0
- data/lib/merit/models/action_concern.rb +50 -0
- data/lib/merit/models/active_record/action.rb +11 -0
- data/lib/merit/models/active_record/activity_log.rb +11 -0
- data/lib/merit/models/active_record/badges_sash.rb +13 -0
- data/lib/merit/models/active_record/sash.rb +32 -0
- data/lib/merit/models/active_record/score.rb +25 -0
- data/lib/merit/models/badges_sash_concern.rb +13 -0
- data/lib/merit/models/base/badges_sash.rb +15 -0
- data/lib/merit/models/base/sash.rb +55 -0
- data/lib/merit/models/sash_concern.rb +53 -0
- data/lib/merit/point_rules_methods.rb +33 -0
- data/lib/merit/rank_rules_methods.rb +58 -0
- data/lib/merit/reputation_change_observer.rb +19 -0
- data/lib/merit/rule.rb +35 -0
- data/lib/merit/rules_matcher.rb +24 -0
- data/lib/merit/sash_finder.rb +15 -0
- data/lib/merit/target_finder.rb +43 -0
- data/qalam_merit.gemspec +23 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/controllers/admin/users_controller.rb +9 -0
- data/test/dummy/app/controllers/api/comments_controller.rb +5 -0
- data/test/dummy/app/controllers/api/users_controller.rb +5 -0
- data/test/dummy/app/controllers/application_controller.rb +7 -0
- data/test/dummy/app/controllers/comments_controller.rb +56 -0
- data/test/dummy/app/controllers/registrations_controller.rb +21 -0
- data/test/dummy/app/controllers/users_controller.rb +38 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/address.rb +3 -0
- data/test/dummy/app/models/comment.rb +13 -0
- data/test/dummy/app/models/dummy_observer.rb +3 -0
- data/test/dummy/app/models/merit/badge_rules.rb +66 -0
- data/test/dummy/app/models/merit/point_rules.rb +44 -0
- data/test/dummy/app/models/merit/rank_rules.rb +24 -0
- data/test/dummy/app/models/user.rb +23 -0
- data/test/dummy/app/views/admin/users/index.html.erb +26 -0
- data/test/dummy/app/views/comments/_form.html.erb +29 -0
- data/test/dummy/app/views/comments/edit.html.erb +6 -0
- data/test/dummy/app/views/comments/index.html.erb +35 -0
- data/test/dummy/app/views/comments/new.html.erb +5 -0
- data/test/dummy/app/views/comments/show.html.erb +23 -0
- data/test/dummy/app/views/layouts/application.html.erb +24 -0
- data/test/dummy/app/views/users/_form.html.erb +22 -0
- data/test/dummy/app/views/users/edit.html.erb +6 -0
- data/test/dummy/app/views/users/index.html.erb +27 -0
- data/test/dummy/app/views/users/new.html.erb +5 -0
- data/test/dummy/app/views/users/show.html.erb +18 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +26 -0
- data/test/dummy/config/application_api_only.rb +28 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +22 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environment_api_only.rb +7 -0
- data/test/dummy/config/environments/development.rb +24 -0
- data/test/dummy/config/environments/production.rb +51 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/merit.rb +47 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/new_framework_defaults.rb +3 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/mongoid.yml +13 -0
- data/test/dummy/config/routes.rb +16 -0
- data/test/dummy/db/migrate/20110421191249_create_users.rb +12 -0
- data/test/dummy/db/migrate/20110421191250_create_comments.rb +16 -0
- data/test/dummy/db/migrate/20120318022220_add_fields_to_users.rb +11 -0
- data/test/dummy/db/migrate/20130321082817_add_fields_to_comments.rb +11 -0
- data/test/dummy/db/migrate/20130329224406_create_merit_actions.rb +18 -0
- data/test/dummy/db/migrate/20130329224407_create_merit_activity_logs.rb +15 -0
- data/test/dummy/db/migrate/20130329224408_create_sashes.rb +11 -0
- data/test/dummy/db/migrate/20130329224409_create_badges_sashes.rb +16 -0
- data/test/dummy/db/migrate/20130329224410_create_scores_and_points.rb +20 -0
- data/test/dummy/db/migrate/20140211144001_create_addresses.rb +11 -0
- data/test/dummy/db/migrate/20140819133931_add_target_data_to_merit_actions.rb +5 -0
- data/test/dummy/db/schema.rb +89 -0
- data/test/dummy/db/seeds.rb +19 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/rails.js +404 -0
- data/test/dummy/public/stylesheets/.gitkeep +0 -0
- data/test/dummy/public/stylesheets/scaffold.css +56 -0
- data/test/dummy/script/rails +6 -0
- data/test/integration/navigation_test.rb +332 -0
- data/test/support/integration_case.rb +5 -0
- data/test/test_helper.rb +40 -0
- data/test/unit/action_test.rb +12 -0
- data/test/unit/base_target_finder_test.rb +64 -0
- data/test/unit/merit_unit_test.rb +33 -0
- data/test/unit/rule_unit_test.rb +57 -0
- data/test/unit/rules_matcher_test.rb +37 -0
- data/test/unit/sash_finder_test.rb +27 -0
- data/test/unit/sash_test.rb +104 -0
- data/test/unit/score_test.rb +13 -0
- data/test/unit/target_finder_test.rb +98 -0
- metadata +360 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
# Points are a simple integer value which are given to "meritable" resources
|
2
|
+
# according to rules in +app/models/merit/point_rules.rb+. They are given on
|
3
|
+
# actions-triggered.
|
4
|
+
|
5
|
+
module Merit
|
6
|
+
class PointRules
|
7
|
+
include Merit::PointRulesMethods
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
# Thanks for voting point. Tests that both rules are called when both
|
11
|
+
# apply.
|
12
|
+
score 1, on: 'comments#vote'
|
13
|
+
score 1, on: 'comments#vote'
|
14
|
+
|
15
|
+
# All user's comments earn points
|
16
|
+
score 2, to: :user_comments, on: 'comments#vote'
|
17
|
+
|
18
|
+
# Points to voted user
|
19
|
+
score 5, to: :user, on: 'comments#vote', category: 'vote'
|
20
|
+
|
21
|
+
# Example rule for using model_name in the case of namespaced controllers
|
22
|
+
score 1, to: :user, model_name: 'Comment', on: 'api/comments#show'
|
23
|
+
|
24
|
+
score 20, on: [
|
25
|
+
'comments#create',
|
26
|
+
'registrations#update'
|
27
|
+
] do |object|
|
28
|
+
if object.class == Comment
|
29
|
+
object.name.length > 4
|
30
|
+
else
|
31
|
+
true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
score lambda { |comment| comment.comment.to_i }, to: :user, on: 'comments#create' do |object|
|
36
|
+
object.comment.to_i > 0
|
37
|
+
end
|
38
|
+
|
39
|
+
score (-5), to: :user, on: 'comments#destroy' do |comment|
|
40
|
+
comment.present?
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# 5 stars is a common ranking use case. They are not given at specified
|
2
|
+
# actions like badges, you should define a cron job to test if ranks are to be
|
3
|
+
# granted.
|
4
|
+
#
|
5
|
+
# +set_rank+ accepts:
|
6
|
+
# * :+level+ ranking level (greater is better)
|
7
|
+
# * :+to+ model or scope to check if new rankings apply
|
8
|
+
# * :+level_name+ attribute name (default is empty and results in 'level'
|
9
|
+
# attribute, if set it's appended like 'level_#{level_name}')
|
10
|
+
|
11
|
+
module Merit
|
12
|
+
class RankRules
|
13
|
+
include Merit::RankRulesMethods
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
# i stars for i chars name
|
17
|
+
(1..5).each do |i|
|
18
|
+
set_rank level: i, to: User do |user|
|
19
|
+
user.name.length == i
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class User < ActiveRecord::Base
|
2
|
+
has_merit
|
3
|
+
|
4
|
+
has_many :addresses
|
5
|
+
has_many :comments
|
6
|
+
|
7
|
+
def model_with_no_reputation
|
8
|
+
addresses.first || addresses.create
|
9
|
+
end
|
10
|
+
|
11
|
+
def show_badges
|
12
|
+
badges_uniq = Merit::Badge.find_by_id(badge_ids)
|
13
|
+
badges_uniq.collect{|b| "#{b.name.capitalize}#{badge_status(b)}" }.join(', ')
|
14
|
+
end
|
15
|
+
|
16
|
+
def badge_status(badge)
|
17
|
+
status = []
|
18
|
+
count = badges.select{|b| b.name == badge.name }.count
|
19
|
+
status << "level: #{badge.level}" if badge.level
|
20
|
+
status << "x#{count}" if count > 1
|
21
|
+
status.present? ? " (#{status.join(', ')})" : ''
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<h1>Listing users from Admin</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<th>Name</th>
|
6
|
+
<th>#Comments</th>
|
7
|
+
<th>Badges</th>
|
8
|
+
<th>Points</th>
|
9
|
+
</tr>
|
10
|
+
|
11
|
+
<% @users.each do |user| %>
|
12
|
+
<tr>
|
13
|
+
<td><%= user.name %></td>
|
14
|
+
<td><%= user.comments.count %></td>
|
15
|
+
<td><%= user.show_badges %></td>
|
16
|
+
<td><%= user.points %></td>
|
17
|
+
<td><%= link_to 'Show', user %>
|
18
|
+
- <%= link_to 'Edit', edit_user_path(user) %>
|
19
|
+
- <%= link_to 'Destroy', user, data: { :confirm => 'Are you sure?' }, :method => :delete %></td>
|
20
|
+
</tr>
|
21
|
+
<% end %>
|
22
|
+
</table>
|
23
|
+
|
24
|
+
<br />
|
25
|
+
|
26
|
+
<%= link_to 'New User', new_user_path %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<%= form_for(@comment) do |f| %>
|
2
|
+
<% if @comment.errors.any? %>
|
3
|
+
<div id="error_explanation">
|
4
|
+
<h2><%= pluralize(@comment.errors.count, "error") %> prohibited this comment from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<% @comment.errors.full_messages.each do |msg| %>
|
8
|
+
<li><%= msg %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div class="field">
|
15
|
+
<%= f.label :name %><br />
|
16
|
+
<%= f.text_field :name %>
|
17
|
+
</div>
|
18
|
+
<div class="field">
|
19
|
+
<%= f.label :comment %><br />
|
20
|
+
<%= f.text_area :comment %>
|
21
|
+
</div>
|
22
|
+
<div class="field">
|
23
|
+
<%= f.label :user_id %><br />
|
24
|
+
<%= f.text_field :user_id %>
|
25
|
+
</div>
|
26
|
+
<div class="actions">
|
27
|
+
<%= f.submit %>
|
28
|
+
</div>
|
29
|
+
<% end %>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<h1>Listing comments</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<th>Name</th>
|
6
|
+
<th>Comment</th>
|
7
|
+
<th>User</th>
|
8
|
+
<th>Votes</th>
|
9
|
+
<th>Vote up!</th>
|
10
|
+
<th></th>
|
11
|
+
<th></th>
|
12
|
+
<th></th>
|
13
|
+
</tr>
|
14
|
+
|
15
|
+
<% @comments.each do |comment| %>
|
16
|
+
<tr id="c_<%= comment.id %>">
|
17
|
+
<td><%= comment.name %></td>
|
18
|
+
<td><%= comment.comment %></td>
|
19
|
+
<td><%= comment.user_id %></td>
|
20
|
+
<td><%= comment.votes %></td>
|
21
|
+
<td>
|
22
|
+
<% (1..5).each do |i| %>
|
23
|
+
<%= link_to "#{i}", "/comments/#{comment.id}/vote/#{i}" %>
|
24
|
+
<% end %>
|
25
|
+
</td>
|
26
|
+
<td><%= link_to 'Show', comment %></td>
|
27
|
+
<td><%= link_to 'Edit', edit_comment_path(comment) %></td>
|
28
|
+
<td><%= link_to 'Destroy', comment, data: { :confirm => 'Are you sure?' }, :method => :delete %></td>
|
29
|
+
</tr>
|
30
|
+
<% end %>
|
31
|
+
</table>
|
32
|
+
|
33
|
+
<br />
|
34
|
+
|
35
|
+
<%= link_to 'New Comment', new_comment_path %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<p>
|
2
|
+
<b>Name:</b>
|
3
|
+
<%= @comment.name %>
|
4
|
+
</p>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<b>Comment:</b>
|
8
|
+
<%= @comment.comment %>
|
9
|
+
</p>
|
10
|
+
|
11
|
+
<p>
|
12
|
+
<b>User:</b>
|
13
|
+
<%= @comment.user_id %>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<p>
|
17
|
+
<b>Vote:</b>
|
18
|
+
<%= @comment.votes %>
|
19
|
+
</p>
|
20
|
+
|
21
|
+
|
22
|
+
<%= link_to 'Edit', edit_comment_path(@comment) %> |
|
23
|
+
<%= link_to 'Back', comments_path %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<title>Merit Dummy app</title>
|
6
|
+
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
|
7
|
+
<script src="/rails.js"></script>
|
8
|
+
<%= csrf_meta_tag %>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<h1><%= link_to 'Dummy app', '/' %></h1>
|
12
|
+
|
13
|
+
<% flash.each do |name, msg| %>
|
14
|
+
<%= content_tag :p, msg, :class => (name == 'error' ? 'error' : 'notice') %>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<%= yield %>
|
18
|
+
|
19
|
+
<ul>
|
20
|
+
<li><%= link_to 'Users', users_url %></li>
|
21
|
+
<li><%= link_to 'Comments', comments_url %></li>
|
22
|
+
</ul>
|
23
|
+
</body>
|
24
|
+
</html>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<% obj = params[:action] == 'new' ? @user : [:registrations, @user] %>
|
2
|
+
<%= form_for obj do |f| %>
|
3
|
+
<% if @user.errors.any? %>
|
4
|
+
<div id="error_explanation">
|
5
|
+
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
|
6
|
+
|
7
|
+
<ul>
|
8
|
+
<% @user.errors.full_messages.each do |msg| %>
|
9
|
+
<li><%= msg %></li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<div class="field">
|
16
|
+
<%= f.label :name %><br />
|
17
|
+
<%= f.text_field :name %>
|
18
|
+
</div>
|
19
|
+
<div class="actions">
|
20
|
+
<%= f.submit %>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<h1>Listing users</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<th>Name</th>
|
6
|
+
<th>#Comments</th>
|
7
|
+
<th>Badges</th>
|
8
|
+
<th>Points</th>
|
9
|
+
</tr>
|
10
|
+
|
11
|
+
<% @users.each do |user| %>
|
12
|
+
<tr>
|
13
|
+
<td><%= user.name %></td>
|
14
|
+
<td><%= user.comments.count %></td>
|
15
|
+
<td><%= user.show_badges %></td>
|
16
|
+
<td><%= user.points %></td>
|
17
|
+
<td><%= user.points(category: 'vote') %></td>
|
18
|
+
<td><%= link_to 'Show', user %>
|
19
|
+
- <%= link_to 'Edit', edit_user_path(user) %>
|
20
|
+
- <%= link_to 'Destroy', user, data: { :confirm => 'Are you sure?' }, :method => :delete %></td>
|
21
|
+
</tr>
|
22
|
+
<% end %>
|
23
|
+
</table>
|
24
|
+
|
25
|
+
<br />
|
26
|
+
|
27
|
+
<%= link_to 'New User', new_user_path %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<p>
|
2
|
+
<b>Name:</b>
|
3
|
+
<%= @user.name %>
|
4
|
+
</p>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<b>Comments:</b>
|
8
|
+
<%= @user.comments.count %>
|
9
|
+
</p>
|
10
|
+
|
11
|
+
<p>
|
12
|
+
<b>Badges:</b>
|
13
|
+
<%= @user.show_badges %>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
|
17
|
+
<%= link_to 'Edit', edit_user_path(@user) %> |
|
18
|
+
<%= link_to 'Back', users_path %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require "active_model/railtie"
|
4
|
+
require "active_record/railtie"
|
5
|
+
require "action_controller/railtie"
|
6
|
+
require "action_view/railtie"
|
7
|
+
require "action_mailer/railtie"
|
8
|
+
|
9
|
+
Bundler.require
|
10
|
+
require "merit"
|
11
|
+
|
12
|
+
module Dummy
|
13
|
+
class Application < ::Rails::Application
|
14
|
+
if Rails.version.match? "5.2.+"
|
15
|
+
config.active_record.sqlite3.represent_boolean_as_integer = true
|
16
|
+
end
|
17
|
+
|
18
|
+
if Rails.version.match? "6.0.+"
|
19
|
+
config.load_defaults "6.0"
|
20
|
+
end
|
21
|
+
|
22
|
+
config.i18n.enforce_available_locales = true
|
23
|
+
config.encoding = "utf-8"
|
24
|
+
config.filter_parameters += [:password]
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "boot"
|
4
|
+
|
5
|
+
require "rails"
|
6
|
+
# Pick the frameworks you want:
|
7
|
+
require "active_model/railtie"
|
8
|
+
require "active_record/railtie"
|
9
|
+
require "action_controller/railtie"
|
10
|
+
require "action_view/railtie"
|
11
|
+
require "action_mailer/railtie"
|
12
|
+
|
13
|
+
# require "sprockets/railtie"
|
14
|
+
require "rails/test_unit/railtie"
|
15
|
+
|
16
|
+
# Require the gems listed in Gemfile, including any gems
|
17
|
+
# you've limited to :test, :development, or :production.
|
18
|
+
Bundler.require
|
19
|
+
require "merit"
|
20
|
+
|
21
|
+
module Dummy
|
22
|
+
class Application < ::Rails::Application
|
23
|
+
config.load_defaults 5.2 if ENV["RAILS_VERSION"] =~ /^5.2/
|
24
|
+
config.api_only = true
|
25
|
+
config.i18n.enforce_available_locales = true
|
26
|
+
config.encoding = "utf-8"
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# SQLite version 3.x
|
2
|
+
# gem install sqlite3
|
3
|
+
development:
|
4
|
+
adapter: sqlite3
|
5
|
+
database: db/development.sqlite3
|
6
|
+
pool: 5
|
7
|
+
timeout: 5000
|
8
|
+
|
9
|
+
# Warning: The database defined as "test" will be erased and
|
10
|
+
# re-generated from your development database when you run "rake".
|
11
|
+
# Do not set this db to the same as development or production.
|
12
|
+
test:
|
13
|
+
adapter: sqlite3
|
14
|
+
database: db/test.sqlite3
|
15
|
+
pool: 5
|
16
|
+
timeout: 5000
|
17
|
+
|
18
|
+
production:
|
19
|
+
adapter: sqlite3
|
20
|
+
database: db/development.sqlite3
|
21
|
+
pool: 5
|
22
|
+
timeout: 5000
|