almanac 0.4.4

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 (127) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +76 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/images/almanac/background.jpg +0 -0
  5. data/app/assets/images/almanac/icons/compose.png +0 -0
  6. data/app/assets/images/almanac/icons/feed.png +0 -0
  7. data/app/assets/images/almanac/icons/gear.png +0 -0
  8. data/app/assets/images/almanac/icons/glyphicons-halflings-white.png +0 -0
  9. data/app/assets/images/almanac/icons/glyphicons-halflings.png +0 -0
  10. data/app/assets/images/almanac/icons/upload.png +0 -0
  11. data/app/assets/images/almanac/logo.jpg +0 -0
  12. data/app/assets/javascripts/almanac/2-jquery.backstretch.js +357 -0
  13. data/app/assets/javascripts/almanac/3-pixastic.js +637 -0
  14. data/app/assets/javascripts/almanac/4-bootstrap-datepicker.js +454 -0
  15. data/app/assets/javascripts/almanac/5-main.coffee.erb +46 -0
  16. data/app/assets/javascripts/almanac/application.js +16 -0
  17. data/app/assets/stylesheets/almanac/1-datepicker.css +7 -0
  18. data/app/assets/stylesheets/almanac/2-main.css.scss +279 -0
  19. data/app/assets/stylesheets/almanac/application.css +15 -0
  20. data/app/controllers/almanac/application_controller.rb +24 -0
  21. data/app/controllers/almanac/blogs_controller.rb +64 -0
  22. data/app/controllers/almanac/comments_controller.rb +41 -0
  23. data/app/controllers/almanac/images_controller.rb +29 -0
  24. data/app/controllers/almanac/posts_controller.rb +109 -0
  25. data/app/helpers/almanac/application_helper.rb +4 -0
  26. data/app/models/almanac/blog.rb +32 -0
  27. data/app/models/almanac/comment.rb +20 -0
  28. data/app/models/almanac/image.rb +10 -0
  29. data/app/models/almanac/post.rb +55 -0
  30. data/app/views/almanac/blogs/_form.html.haml +76 -0
  31. data/app/views/almanac/blogs/_topbar.html.haml +5 -0
  32. data/app/views/almanac/blogs/edit.html.haml +4 -0
  33. data/app/views/almanac/blogs/new.html.haml +3 -0
  34. data/app/views/almanac/blogs/spam.html.haml +15 -0
  35. data/app/views/almanac/posts/_form.html.haml +52 -0
  36. data/app/views/almanac/posts/_post.html.haml +59 -0
  37. data/app/views/almanac/posts/edit.html.haml +1 -0
  38. data/app/views/almanac/posts/index.html.haml +30 -0
  39. data/app/views/almanac/posts/index.rss.builder +18 -0
  40. data/app/views/almanac/posts/new.html.haml +1 -0
  41. data/app/views/almanac/posts/show.html.haml +4 -0
  42. data/app/views/almanac/posts/tag.html.haml +22 -0
  43. data/app/views/layouts/almanac/_ga.html.haml +10 -0
  44. data/app/views/layouts/almanac/_twitter_follow.html.haml +2 -0
  45. data/app/views/layouts/almanac/application.html.haml +52 -0
  46. data/config/routes.rb +22 -0
  47. data/db/migrate/20121009222451_create_almanac_posts.rb +17 -0
  48. data/db/migrate/20121010033555_create_almanac_blogs.rb +14 -0
  49. data/db/migrate/20121017032059_add_excerpt_to_almanac_posts.rb +11 -0
  50. data/db/migrate/20121017210007_create_almanac_files.rb +15 -0
  51. data/db/migrate/20121017221819_rename_file_to_image.rb +9 -0
  52. data/db/migrate/20121025223403_add_image_fields_to_almanac_blogs.rb +13 -0
  53. data/db/migrate/20121029211221_add_new_fields_to_blogs.rb +15 -0
  54. data/db/migrate/20121029221815_acts_as_taggable_on_migration.rb +30 -0
  55. data/db/migrate/20121101030836_create_almanac_comments.rb +16 -0
  56. data/db/migrate/20121102181941_add_rakismet_fields_to_blogs.rb +13 -0
  57. data/db/migrate/20121102185130_add_spam_to_comments.rb +11 -0
  58. data/db/migrate/20121110000024_add_written_at_to_posts.rb +11 -0
  59. data/db/migrate/20121112205256_add_background_fields_to_blogs.rb +13 -0
  60. data/db/migrate/20121113010557_add_footer_to_almanac_blogs.rb +11 -0
  61. data/db/migrate/20121114043648_change_default_value_for_background_tiles_in_almanac_blogs.rb +9 -0
  62. data/lib/almanac.rb +16 -0
  63. data/lib/almanac/MarkdownParser.rb +18 -0
  64. data/lib/almanac/engine.rb +9 -0
  65. data/lib/almanac/version.rb +3 -0
  66. data/lib/tasks/almanac_tasks.rake +4 -0
  67. data/spec/controllers/blogs_controller_spec.rb +80 -0
  68. data/spec/controllers/comments_controller_spec.rb +51 -0
  69. data/spec/controllers/posts_controller_spec.rb +120 -0
  70. data/spec/dummy/README.rdoc +261 -0
  71. data/spec/dummy/Rakefile +7 -0
  72. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  73. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  74. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  75. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  76. data/spec/dummy/app/models/ability.rb +13 -0
  77. data/spec/dummy/app/models/user.rb +11 -0
  78. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  79. data/spec/dummy/config.ru +4 -0
  80. data/spec/dummy/config/application.rb +59 -0
  81. data/spec/dummy/config/boot.rb +10 -0
  82. data/spec/dummy/config/database.yml +25 -0
  83. data/spec/dummy/config/environment.rb +5 -0
  84. data/spec/dummy/config/environments/development.rb +37 -0
  85. data/spec/dummy/config/environments/production.rb +67 -0
  86. data/spec/dummy/config/environments/test.rb +37 -0
  87. data/spec/dummy/config/initializers/almanac.rb +1 -0
  88. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  89. data/spec/dummy/config/initializers/devise.rb +233 -0
  90. data/spec/dummy/config/initializers/dragonfly.rb +7 -0
  91. data/spec/dummy/config/initializers/inflections.rb +15 -0
  92. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  93. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  94. data/spec/dummy/config/initializers/session_store.rb +8 -0
  95. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  96. data/spec/dummy/config/locales/en.yml +5 -0
  97. data/spec/dummy/config/routes.rb +14 -0
  98. data/spec/dummy/db/migrate/20121009230705_create_almanac_posts.rb +18 -0
  99. data/spec/dummy/db/migrate/20121010033827_create_almanac_blogs.rb +15 -0
  100. data/spec/dummy/db/migrate/20121102224650_add_excerpt_to_almanac_posts.rb +12 -0
  101. data/spec/dummy/db/migrate/20121102224651_create_almanac_files..rb +16 -0
  102. data/spec/dummy/db/migrate/20121102224652_rename_file_to_image.rb +10 -0
  103. data/spec/dummy/db/migrate/20121102224653_add_image_fields_to_almanac_blogs.rb +14 -0
  104. data/spec/dummy/db/migrate/20121102224654_add_new_fields_to_almanac_blogs.rb +16 -0
  105. data/spec/dummy/db/migrate/20121102224655_acts_as_taggable_on_migration.rb +31 -0
  106. data/spec/dummy/db/migrate/20121102224656_create_almanac_comments.rb +17 -0
  107. data/spec/dummy/db/migrate/20121102224657_add_rakismet_fields_to_almanac_blogs.rb +14 -0
  108. data/spec/dummy/db/migrate/20121102224658_add_spam_to_almanac_comments.rb +12 -0
  109. data/spec/dummy/db/migrate/20121106220325_devise_create_users.rb +46 -0
  110. data/spec/dummy/db/migrate/20121114032144_add_written_at_to_almanac_posts.rb +12 -0
  111. data/spec/dummy/db/migrate/20121114032145_add_background_fields_to_almanac_blogs.rb +14 -0
  112. data/spec/dummy/db/migrate/20121114032146_add_footer_to_almanac_blogs.rb +12 -0
  113. data/spec/dummy/db/schema.rb +98 -0
  114. data/spec/dummy/db/test.sqlite3 +0 -0
  115. data/spec/dummy/log/production.log +1 -0
  116. data/spec/dummy/log/test.log +2930 -0
  117. data/spec/dummy/public/404.html +26 -0
  118. data/spec/dummy/public/422.html +26 -0
  119. data/spec/dummy/public/500.html +25 -0
  120. data/spec/dummy/public/favicon.ico +0 -0
  121. data/spec/dummy/script/rails +6 -0
  122. data/spec/factories.rb +72 -0
  123. data/spec/models/blog_spec.rb +16 -0
  124. data/spec/models/comment_spec.rb +35 -0
  125. data/spec/models/post_spec.rb +79 -0
  126. data/spec/spec_helper.rb +37 -0
  127. metadata +485 -0
@@ -0,0 +1,7 @@
1
+ # require 'dragonfly/rails/images'
2
+ require 'dragonfly'
3
+
4
+ app = Dragonfly[:dummy]
5
+ app.configure_with(:imagemagick)
6
+ app.configure_with(:rails)
7
+ app.define_macro(ActiveRecord::Base, :image_accessor)
@@ -0,0 +1,15 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format
4
+ # (all these examples are active by default):
5
+ # ActiveSupport::Inflector.inflections do |inflect|
6
+ # inflect.plural /^(ox)$/i, '\1en'
7
+ # inflect.singular /^(ox)en/i, '\1'
8
+ # inflect.irregular 'person', 'people'
9
+ # inflect.uncountable %w( fish sheep )
10
+ # end
11
+ #
12
+ # These inflection rules are supported but not enabled by default:
13
+ # ActiveSupport::Inflector.inflections do |inflect|
14
+ # inflect.acronym 'RESTful'
15
+ # end
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ Dummy::Application.config.secret_token = '54bb78127e1ca09f9bc90da5ee14b650107c209eb3e4a7b5b1bbc7cfd3a2b71d3e88f7fd85c19126e33382be9a74ef739e4bfe6ac8f8cd69024bc6f2b0f78d90'
@@ -0,0 +1,8 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
4
+
5
+ # Use the database for sessions instead of the cookie-based default,
6
+ # which shouldn't be used to store highly confidential information
7
+ # (create the session table with "rails generate session_migration")
8
+ # Dummy::Application.config.session_store :active_record_store
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+ #
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters format: [:json]
9
+ end
10
+
11
+ # Disable root element in JSON by default.
12
+ ActiveSupport.on_load(:active_record) do
13
+ self.include_root_in_json = false
14
+ end
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: "Hello world"
@@ -0,0 +1,14 @@
1
+ Rails.application.routes.draw do
2
+ root :to => "posts#index"
3
+
4
+ devise_for :users, :path => "", :path_names => { :sign_in => 'sign_in',
5
+ :sign_out => 'sign_out',
6
+ :password => 'secret',
7
+ :confirmation => 'verification',
8
+ :unlock => 'unblock',
9
+ :registration => 'sign_up',
10
+ :sign_up => ''
11
+ }
12
+
13
+ mount Almanac::Engine => "/almanac"
14
+ end
@@ -0,0 +1,18 @@
1
+ # This migration comes from almanac (originally 20121009222451)
2
+ class CreateAlmanacPosts < ActiveRecord::Migration
3
+ def up
4
+ create_table :almanac_posts do |t|
5
+ t.string :title
6
+ t.text :body
7
+ t.boolean :published, :default => false
8
+ t.references :blog
9
+ t.references :author
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+
15
+ def down
16
+ drop_table :almanac_posts
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ # This migration comes from almanac (originally 20121010033555)
2
+ class CreateAlmanacBlogs < ActiveRecord::Migration
3
+ def up
4
+ create_table :almanac_blogs do |t|
5
+ t.string :title
6
+ t.references :author
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+
12
+ def down
13
+ drop_table :almanac_blogs
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from almanac (originally 20121017032059)
2
+ class AddExcerptToAlmanacPosts < ActiveRecord::Migration
3
+ def up
4
+ change_table :almanac_posts do |t|
5
+ t.text :excerpt
6
+ end
7
+ end
8
+
9
+ def down
10
+ remove_column :almanac_posts, :excerpt
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ # This migration comes from almanac (originally 20121017210007)
2
+ class CreateAlmanacFiles < ActiveRecord::Migration
3
+ def up
4
+ create_table :almanac_files do |t|
5
+ t.string :image_uid
6
+ t.string :thumb_uid
7
+ t.references :post
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+
13
+ def down
14
+ drop_table :almanac_files
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ # This migration comes from almanac (originally 20121017221819)
2
+ class RenameFileToImage < ActiveRecord::Migration
3
+ def up
4
+ rename_table :almanac_files, :almanac_images
5
+ end
6
+
7
+ def down
8
+ rename_table :almanac_images, :almanac_files
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ # This migration comes from almanac (originally 20121025223403)
2
+ class AddImageFieldsToAlmanacBlogs < ActiveRecord::Migration
3
+ def up
4
+ change_table :almanac_blogs do |t|
5
+ t.string :background_uid
6
+ t.string :logo_uid
7
+ end
8
+ end
9
+
10
+ def down
11
+ remove_column :almanac_blogs, :background_uid
12
+ remove_column :almanac_blogs, :logo_uid
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ # This migration comes from almanac (originally 20121029211221)
2
+ class AddNewFieldsToBlogs < ActiveRecord::Migration
3
+ def up
4
+ change_table :almanac_blogs do |t|
5
+ t.text :description
6
+ t.string :twitter
7
+ t.string :google_analytics
8
+ end
9
+ end
10
+
11
+ def down
12
+ remove_column :almanac_blogs, :description
13
+ remove_column :almanac_blogs, :twitter
14
+ remove_column :almanac_blogs, :google_analytics
15
+ end
16
+ end
@@ -0,0 +1,31 @@
1
+ # This migration comes from almanac (originally 20121029221815)
2
+ class ActsAsTaggableOnMigration < ActiveRecord::Migration
3
+ def self.up
4
+ create_table :tags do |t|
5
+ t.string :name
6
+ end
7
+
8
+ create_table :taggings do |t|
9
+ t.references :tag
10
+
11
+ # You should make sure that the column created is
12
+ # long enough to store the required class names.
13
+ t.references :taggable, :polymorphic => true
14
+ t.references :tagger, :polymorphic => true
15
+
16
+ # Limit is created to prevent MySQL error on index
17
+ # length for MyISAM table type: http://bit.ly/vgW2Ql
18
+ t.string :context, :limit => 128
19
+
20
+ t.datetime :created_at
21
+ end
22
+
23
+ add_index :taggings, :tag_id
24
+ add_index :taggings, [:taggable_id, :taggable_type, :context]
25
+ end
26
+
27
+ def self.down
28
+ drop_table :taggings
29
+ drop_table :tags
30
+ end
31
+ end
@@ -0,0 +1,17 @@
1
+ # This migration comes from almanac (originally 20121101030836)
2
+ class CreateAlmanacComments < ActiveRecord::Migration
3
+ def up
4
+ create_table :almanac_comments do |t|
5
+ t.text :body
6
+ t.string :author_email
7
+ t.string :author_name
8
+ t.references :post
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+
14
+ def down
15
+ drop_table :almanac_comments
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ # This migration comes from almanac (originally 20121102181941)
2
+ class AddRakismetFieldsToBlogs < ActiveRecord::Migration
3
+ def up
4
+ change_table :almanac_blogs do |t|
5
+ t.string :rakismet_key
6
+ t.string :rakismet_url
7
+ end
8
+ end
9
+
10
+ def down
11
+ remove_column :almanac_blogs, :rakismet_key
12
+ remove_column :almanac_blogs, :rakismet_url
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from almanac (originally 20121102185130)
2
+ class AddSpamToComments < ActiveRecord::Migration
3
+ def up
4
+ change_table :almanac_comments do |t|
5
+ t.boolean :spam, :default => false
6
+ end
7
+ end
8
+
9
+ def down
10
+ remove_column :almanac_comments, :spam
11
+ end
12
+ end
@@ -0,0 +1,46 @@
1
+ class DeviseCreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table(:users) do |t|
4
+ ## Database authenticatable
5
+ t.string :email, :null => false, :default => ""
6
+ t.string :encrypted_password, :null => false, :default => ""
7
+
8
+ ## Recoverable
9
+ t.string :reset_password_token
10
+ t.datetime :reset_password_sent_at
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, :default => 0
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ ## Confirmable
23
+ # t.string :confirmation_token
24
+ # t.datetime :confirmed_at
25
+ # t.datetime :confirmation_sent_at
26
+ # t.string :unconfirmed_email # Only if using reconfirmable
27
+
28
+ ## Lockable
29
+ # t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
30
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
31
+ # t.datetime :locked_at
32
+
33
+ ## Token authenticatable
34
+ # t.string :authentication_token
35
+
36
+
37
+ t.timestamps
38
+ end
39
+
40
+ add_index :users, :email, :unique => true
41
+ add_index :users, :reset_password_token, :unique => true
42
+ # add_index :users, :confirmation_token, :unique => true
43
+ # add_index :users, :unlock_token, :unique => true
44
+ # add_index :users, :authentication_token, :unique => true
45
+ end
46
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from almanac (originally 20121110000024)
2
+ class AddWrittenAtToPosts < ActiveRecord::Migration
3
+ def up
4
+ change_table :almanac_posts do |t|
5
+ t.date :written_at
6
+ end
7
+ end
8
+
9
+ def down
10
+ remove_column :almanac_posts, :written_at
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # This migration comes from almanac (originally 20121112205256)
2
+ class AddBackgroundFieldsToBlogs < ActiveRecord::Migration
3
+ def up
4
+ change_table :almanac_blogs do |t|
5
+ t.boolean :background_tile, :default => false
6
+ t.integer :background_blur, :default => 0
7
+ end
8
+ end
9
+
10
+ def down
11
+ remove_column :almanac_blogs, :background_tile
12
+ remove_column :almanac_blogs, :background_blur
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from almanac (originally 20121113010557)
2
+ class AddFooterToAlmanacBlogs < ActiveRecord::Migration
3
+ def up
4
+ change_table :almanac_blogs do |t|
5
+ t.text :footer
6
+ end
7
+ end
8
+
9
+ def down
10
+ remove_column :almanac_blogs, :footer
11
+ end
12
+ end
@@ -0,0 +1,98 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended to check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(:version => 20121114032146) do
15
+
16
+ create_table "almanac_blogs", :force => true do |t|
17
+ t.string "title"
18
+ t.integer "author_id"
19
+ t.datetime "created_at", :null => false
20
+ t.datetime "updated_at", :null => false
21
+ t.string "background_uid"
22
+ t.string "logo_uid"
23
+ t.text "description"
24
+ t.string "twitter"
25
+ t.string "google_analytics"
26
+ t.string "rakismet_key"
27
+ t.string "rakismet_url"
28
+ t.boolean "background_tile", :default => false
29
+ t.integer "background_blur", :default => 0
30
+ t.text "footer"
31
+ end
32
+
33
+ create_table "almanac_comments", :force => true do |t|
34
+ t.text "body"
35
+ t.string "author_email"
36
+ t.string "author_name"
37
+ t.integer "post_id"
38
+ t.datetime "created_at", :null => false
39
+ t.datetime "updated_at", :null => false
40
+ t.boolean "spam", :default => false
41
+ end
42
+
43
+ create_table "almanac_images", :force => true do |t|
44
+ t.string "image_uid"
45
+ t.string "thumb_uid"
46
+ t.integer "post_id"
47
+ t.datetime "created_at", :null => false
48
+ t.datetime "updated_at", :null => false
49
+ end
50
+
51
+ create_table "almanac_posts", :force => true do |t|
52
+ t.string "title"
53
+ t.text "body"
54
+ t.boolean "published", :default => false
55
+ t.integer "blog_id"
56
+ t.integer "author_id"
57
+ t.datetime "created_at", :null => false
58
+ t.datetime "updated_at", :null => false
59
+ t.text "excerpt"
60
+ t.date "written_at"
61
+ end
62
+
63
+ create_table "taggings", :force => true do |t|
64
+ t.integer "tag_id"
65
+ t.integer "taggable_id"
66
+ t.string "taggable_type"
67
+ t.integer "tagger_id"
68
+ t.string "tagger_type"
69
+ t.string "context", :limit => 128
70
+ t.datetime "created_at"
71
+ end
72
+
73
+ add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id"
74
+ add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context"
75
+
76
+ create_table "tags", :force => true do |t|
77
+ t.string "name"
78
+ end
79
+
80
+ create_table "users", :force => true do |t|
81
+ t.string "email", :default => "", :null => false
82
+ t.string "encrypted_password", :default => "", :null => false
83
+ t.string "reset_password_token"
84
+ t.datetime "reset_password_sent_at"
85
+ t.datetime "remember_created_at"
86
+ t.integer "sign_in_count", :default => 0
87
+ t.datetime "current_sign_in_at"
88
+ t.datetime "last_sign_in_at"
89
+ t.string "current_sign_in_ip"
90
+ t.string "last_sign_in_ip"
91
+ t.datetime "created_at", :null => false
92
+ t.datetime "updated_at", :null => false
93
+ end
94
+
95
+ add_index "users", ["email"], :name => "index_users_on_email", :unique => true
96
+ add_index "users", ["reset_password_token"], :name => "index_users_on_reset_password_token", :unique => true
97
+
98
+ end