weeler 0.0.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.rspec +1 -1
  4. data/.travis.yml +7 -2
  5. data/CHANGELOG.md +149 -1
  6. data/LICENSE.txt +2 -2
  7. data/README.md +83 -1
  8. data/app/.DS_Store +0 -0
  9. data/app/assets/javascripts/weeler/init.js.coffee +13 -2
  10. data/app/assets/javascripts/weeler/lib/notify.js +18 -0
  11. data/app/assets/javascripts/weeler/lib/sortable.js +9 -0
  12. data/app/assets/stylesheets/weeler/init.css.erb +2 -1
  13. data/app/assets/stylesheets/weeler/style.css.scss +22 -0
  14. data/app/controllers/concerns/weeler/section_seo.rb +16 -0
  15. data/app/controllers/weeler/administration_controller.rb +11 -0
  16. data/app/controllers/weeler/application_controller.rb +5 -0
  17. data/app/controllers/weeler/base_controller.rb +16 -12
  18. data/app/controllers/weeler/configuration_controller.rb +9 -0
  19. data/app/controllers/weeler/content_controller.rb +12 -0
  20. data/app/controllers/weeler/home_controller.rb +5 -2
  21. data/app/controllers/weeler/seo_items_controller.rb +24 -0
  22. data/app/controllers/weeler/settings_controller.rb +21 -0
  23. data/app/controllers/weeler/static_sections_controller.rb +19 -0
  24. data/app/controllers/weeler/translations_controller.rb +36 -18
  25. data/app/models/concerns/weeler/seoable.rb +61 -0
  26. data/app/models/concerns/weeler/sluger.rb +32 -0
  27. data/app/models/settings.rb +2 -0
  28. data/app/models/weeler/seo.rb +9 -0
  29. data/app/views/kaminari/{_first_page.html.erb → weeler/_first_page.html.erb} +1 -1
  30. data/app/views/kaminari/{_gap.html.erb → weeler/_gap.html.erb} +1 -1
  31. data/app/views/kaminari/{_last_page.html.erb → weeler/_last_page.html.erb} +1 -1
  32. data/app/views/kaminari/{_next_page.html.erb → weeler/_next_page.html.erb} +1 -1
  33. data/app/views/kaminari/{_page.html.erb → weeler/_page.html.erb} +0 -0
  34. data/app/views/kaminari/{_paginator.html.erb → weeler/_paginator.html.erb} +1 -1
  35. data/app/views/kaminari/{_prev_page.html.erb → weeler/_prev_page.html.erb} +1 -1
  36. data/app/views/layouts/weeler/base.html.haml +22 -0
  37. data/{lib/generators/weeler/templates/views/weeler/example/index.html.erb → app/views/weeler/administration/_filter.html.haml} +0 -0
  38. data/app/views/weeler/administration/_header_row.html.haml +5 -0
  39. data/app/views/weeler/administration/_row.html.haml +5 -0
  40. data/app/views/weeler/administration/_side_navbar.html.haml +8 -0
  41. data/app/views/weeler/administration/index.html.haml +17 -0
  42. data/app/views/weeler/administration/welcome.html.haml +5 -0
  43. data/app/views/weeler/base/_flash.html.haml +3 -0
  44. data/app/views/weeler/base/_footer.html.haml +2 -0
  45. data/app/views/weeler/base/_header_navbar.html.haml +19 -0
  46. data/app/views/weeler/base/_side_navbar.html.haml +2 -0
  47. data/app/views/weeler/configuration/_side_navbar.html.haml +12 -0
  48. data/app/views/weeler/configuration/index.html.haml +3 -0
  49. data/app/views/weeler/content/_error_messages.html.haml +5 -0
  50. data/app/views/weeler/content/_form.html.haml +6 -0
  51. data/app/views/weeler/content/_list.html.haml +23 -0
  52. data/app/views/weeler/content/_object_seo.html.haml +31 -0
  53. data/app/views/weeler/content/_side_navbar.html.haml +17 -0
  54. data/app/views/weeler/content/_sortable_list.html.haml +24 -0
  55. data/app/views/weeler/content/edit.html.haml +2 -0
  56. data/app/views/weeler/content/index.html.haml +10 -0
  57. data/app/views/weeler/content/new.html.haml +2 -0
  58. data/app/views/weeler/content/welcome.html.haml +3 -0
  59. data/app/views/weeler/home/_side_navbar.html.haml +8 -0
  60. data/app/views/weeler/home/about.html.haml +15 -0
  61. data/app/views/weeler/home/index.html.haml +3 -0
  62. data/app/views/weeler/seo_items/edit.html.haml +28 -0
  63. data/app/views/weeler/seo_items/index.html.haml +15 -0
  64. data/app/views/weeler/settings/index.html.haml +19 -0
  65. data/app/views/weeler/static_sections/show.html.haml +26 -0
  66. data/app/views/weeler/translations/_form.html.haml +27 -0
  67. data/app/views/weeler/translations/_translation.html.haml +11 -0
  68. data/app/views/weeler/translations/edit.html.haml +14 -0
  69. data/app/views/weeler/translations/index.html.haml +76 -0
  70. data/app/views/weeler/translations/new.html.haml +13 -0
  71. data/lib/.DS_Store +0 -0
  72. data/lib/generators/weeler/.DS_Store +0 -0
  73. data/lib/generators/weeler/install_generator.rb +30 -26
  74. data/lib/generators/weeler/templates/assets/javascripts/weeler/app/index.js +2 -0
  75. data/lib/generators/weeler/templates/assets/stylesheets/weeler/app/index.css +4 -0
  76. data/lib/generators/weeler/templates/controllers/weeler/application_controller.rb +6 -0
  77. data/lib/generators/weeler/templates/initializers/weeler.rb +30 -2
  78. data/lib/generators/weeler/templates/migrations/create_weeler_seos.rb +14 -0
  79. data/lib/generators/weeler/templates/migrations/create_weeler_settings.rb +17 -0
  80. data/lib/generators/weeler/templates/migrations/translate_weeler_seos.rb +15 -0
  81. data/lib/generators/weeler/templates/views/weeler/.keep +0 -0
  82. data/lib/i18n/backend/weeler.rb +102 -22
  83. data/lib/i18n/backend/weeler/dedupe.rb +31 -0
  84. data/lib/i18n/backend/weeler/exporter.rb +67 -5
  85. data/lib/i18n/backend/weeler/html_checker.rb +41 -0
  86. data/lib/i18n/backend/weeler/importer.rb +30 -13
  87. data/lib/i18n/backend/weeler/translation.rb +12 -7
  88. data/lib/i18n/humanize_missing_translations.rb +1 -0
  89. data/lib/i18n/weeler.rb +8 -2
  90. data/lib/tasks/weeler.rake +8 -0
  91. data/lib/weeler.rb +80 -7
  92. data/lib/weeler/.DS_Store +0 -0
  93. data/lib/weeler/action_controller/acts/restful.rb +185 -0
  94. data/lib/weeler/action_dispatch/routing/mapper.rb +87 -0
  95. data/lib/weeler/action_view/helpers/form_helper.rb +13 -0
  96. data/lib/weeler/action_view/helpers/image_form_helper.rb +84 -0
  97. data/lib/weeler/action_view/helpers/translation_helper.rb +15 -0
  98. data/lib/weeler/deprecator.rb +9 -0
  99. data/lib/weeler/engine.rb +18 -4
  100. data/lib/weeler/version.rb +7 -1
  101. data/rspec.html +426 -147
  102. data/spec/.DS_Store +0 -0
  103. data/spec/controllers/translations_controller_spec.rb +76 -5
  104. data/spec/dummy/app/controllers/weeler/posts_controller.rb +3 -7
  105. data/spec/dummy/app/models/post.rb +17 -0
  106. data/spec/dummy/app/models/translation.rb +2 -0
  107. data/spec/dummy/config/locales/en.yml +4 -1
  108. data/spec/dummy/config/routes.rb +3 -3
  109. data/spec/dummy/db/development.sqlite3 +0 -0
  110. data/spec/dummy/db/migrate/20140123083704_create_weeler_seos.rb +14 -0
  111. data/spec/dummy/db/migrate/20140123083705_create_weeler_settings.rb +17 -0
  112. data/spec/dummy/db/migrate/{20131015144900_create_weeler_translations.rb → 20140123083706_create_weeler_translations.rb} +0 -0
  113. data/spec/dummy/db/migrate/20140123083707_translate_weeler_seos.rb +15 -0
  114. data/spec/dummy/db/migrate/20140718103237_create_posts.rb +12 -0
  115. data/spec/dummy/db/migrate/20140726151210_create_translations.rb +12 -0
  116. data/spec/dummy/db/schema.rb +59 -1
  117. data/spec/dummy/db/test.sqlite3 +0 -0
  118. data/spec/dummy/log/development.log +221 -0
  119. data/spec/factories/dummy_posts.rb +6 -0
  120. data/spec/fixtures/.DS_Store +0 -0
  121. data/spec/routing/routes_spec.rb +4 -4
  122. data/spec/spec_helper.rb +14 -3
  123. data/spec/weeler/action_controller/acts/restful_spec.rb +155 -0
  124. data/spec/weeler/action_view/helpers/form_helper_spec.rb +26 -0
  125. data/spec/weeler/action_view/helpers/translation_helper_spec.rb +16 -0
  126. data/spec/weeler/i18n/backend/weeler/dedupe_spec.rb +21 -0
  127. data/spec/weeler/i18n/backend/weeler/exporter_spec.rb +2 -4
  128. data/spec/weeler/i18n/backend/weeler/importer_spec.rb +5 -2
  129. data/spec/weeler/i18n/backend/weeler_spec.rb +121 -23
  130. data/weeler.gemspec +15 -7
  131. metadata +207 -85
  132. data/.DS_Store +0 -0
  133. data/app/assets/stylesheets/weeler/vendor/bootstrap.css +0 -6086
  134. data/app/views/layouts/weeler/base.html.erb +0 -40
  135. data/app/views/weeler/home/about.html.erb +0 -16
  136. data/app/views/weeler/home/index.html.erb +0 -4
  137. data/app/views/weeler/shared/_flash.html.erb +0 -17
  138. data/app/views/weeler/shared/_footer.html.erb +0 -3
  139. data/app/views/weeler/shared/_header_navbar.html.erb +0 -18
  140. data/app/views/weeler/shared/_side_navbar.html.erb +0 -14
  141. data/app/views/weeler/translations/_form.html.erb +0 -43
  142. data/app/views/weeler/translations/_translation.html.erb +0 -11
  143. data/app/views/weeler/translations/edit.html.erb +0 -19
  144. data/app/views/weeler/translations/index.html.erb +0 -103
  145. data/app/views/weeler/translations/new.html.erb +0 -19
  146. data/lib/generators/weeler/templates/controllers/weeler/example_controller.rb.example +0 -7
  147. data/lib/i18n/backend/weeler/exporter/active_record.rb +0 -37
  148. data/lib/i18n/backend/weeler/exporter/active_record_relation.rb +0 -38
  149. data/lib/i18n/backend/weeler/store_procs.rb +0 -39
  150. data/lib/weeler/route_mapper.rb +0 -41
  151. data/spec/dummy/db/production.sqlite3 +0 -0
  152. data/spec/dummy/log/test.log +0 -88454
data/spec/.DS_Store CHANGED
Binary file
@@ -29,18 +29,89 @@ describe Weeler::TranslationsController do
29
29
 
30
30
  expect(I18n.t("title", locale: :en)).to eq("This is weeler")
31
31
  end
32
+
33
+ it "doesnt create a duplicate key" do
34
+ I18n::Backend::Weeler::Translation.delete_all
35
+
36
+ post :create, i18n_backend_weeler_translation: {locale: "en", key: "no.dup.title", value: "This is weeler"}
37
+ expect(I18n.t("no.dup.title", locale: :en)).to eq("This is weeler")
38
+
39
+ post :create, i18n_backend_weeler_translation: {locale: "en", key: "no.dup.title", value: "This is weeler"}
40
+ expect(response).to render_template(:edit)
41
+ end
42
+ end
43
+
44
+ describe "PUT #update" do
45
+ it "update translation in DB" do
46
+ I18n::Backend::Weeler::Translation.delete_all
47
+ translation = FactoryGirl.create(:translation, key: 'foo.updated', value: nil)
48
+
49
+ put "update", id: translation.id, i18n_backend_weeler_translation: {value: "Updated weeler!"}
50
+ expect(I18n.t("foo.updated", locale: :en)).to eq("Updated weeler!")
51
+ end
52
+
53
+ it "dont updates if key is empty" do
54
+ I18n::Backend::Weeler::Translation.delete_all
55
+ translation = FactoryGirl.create(:translation, key: 'foo.updated', value: nil)
56
+
57
+ put "update", id: translation.id, i18n_backend_weeler_translation: {value: "Updated weeler!", key: nil}
58
+ expect(response).to render_template(:edit)
59
+ end
32
60
  end
33
61
 
34
- describe "#update" do
62
+ describe "GET #new" do
63
+ it "retern new translation form" do
64
+ get "new"
65
+ expect(response).to render_template(:new)
66
+ end
35
67
  end
36
68
 
37
- describe "#destroy" do
69
+ describe "GET #edit" do
70
+ it "retern edit translation form" do
71
+ translation = FactoryGirl.create(:translation, key: 'foo.updated', value: nil)
72
+ get "edit", id: translation.id
73
+ expect(response).to render_template(:edit)
74
+ end
38
75
  end
39
76
 
40
- describe "#import" do
77
+ describe "DELETE #destroy" do
78
+ it "destroys translation" do
79
+ translation = FactoryGirl.create(:translation, key: 'foo.removing', value: "Bla bla")
80
+ delete "destroy", id: translation.id
81
+
82
+ expect(I18n.t("foo.removing", locale: :en)).to eq("Removing") # Returns empty key
83
+ end
84
+ end
85
+
86
+ describe "POST #import" do
87
+ context "submiting a file" do
88
+ it "adds translation from files" do
89
+ I18n::Backend::Weeler::Translation.delete_all
90
+ Settings.i18n_updated_at = Time.now
91
+
92
+ expect(I18n.t("welcome.title", locale: :en)).to eq("Title") # Missing translation
93
+ post "import", file: fixture_file_upload(File.dirname(__FILE__) + '/../fixtures/test.xlsx', 'application/xlsx')
94
+ expect(I18n.t("welcome.title", locale: :en)).to eq("EN welcome")
95
+ end
96
+ end
97
+
98
+ context "no file" do
99
+ it "redirects back" do
100
+ post "import"
101
+ response.should redirect_to :weeler_translations
102
+ end
103
+
104
+ end
105
+
106
+
41
107
  end
42
108
 
43
- describe "#export" do
109
+ describe "GET #export" do
110
+ it "retursns translation file" do
111
+ get "export", format: :xlsx
112
+ expect(response.headers["Content-Type"]).to eq("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
113
+ expect(response.headers["Content-Disposition"]).to eq("attachment; filename=\"translations.xlsx\"")
114
+ end
44
115
  end
45
116
 
46
- end
117
+ end
@@ -1,7 +1,3 @@
1
- class Weeler::PostsController < Weeler::BaseController
2
-
3
- def index
4
- @posts = Post.all
5
- end
6
-
7
- end
1
+ class Weeler::PostsController < Weeler::ContentController
2
+ acts_as_restful Post, permit_attributes: [:title]
3
+ end
@@ -0,0 +1,17 @@
1
+ class Post < ActiveRecord::Base
2
+
3
+ has_many :translations
4
+ accepts_nested_attributes_for :translations, :allow_destroy => true
5
+
6
+ Image = Struct.new(:url) do
7
+ def url(type = nil)
8
+ type = "original" if type.blank?
9
+ "/images/#{type.to_s}.jpg"
10
+ end
11
+ end
12
+
13
+ def image
14
+ Image.new
15
+ end
16
+
17
+ end
@@ -0,0 +1,2 @@
1
+ class Translation < ActiveRecord::Base
2
+ end
@@ -20,4 +20,7 @@
20
20
  # available at http://guides.rubyonrails.org/i18n.html.
21
21
 
22
22
  en:
23
- hello: "Hello world"
23
+ hello: "Hello world"
24
+ weeler:
25
+ test:
26
+ cms_title: Weeler is cool
@@ -1,5 +1,5 @@
1
1
  Dummy::Application.routes.draw do
2
-
3
- mount Weeler::Engine => "/weeler-admin"
4
2
 
5
- end
3
+ mount Weeler::Engine => "/weeler-admin"
4
+ resources :anonymous # HACK
5
+ end
Binary file
@@ -0,0 +1,14 @@
1
+ class CreateWeelerSeos < ActiveRecord::Migration
2
+ def change
3
+ create_table :weeler_seos do |t|
4
+ t.string :title
5
+ t.text :description
6
+ t.text :keywords
7
+ t.string :section
8
+ t.references :seoable, index: true, polymorphic: true
9
+
10
+ t.timestamps
11
+ end
12
+ add_index :weeler_seos, :section
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ class CreateWeelerSettings < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :settings do |t|
4
+ t.string :var, :null => false
5
+ t.text :value, :null => true
6
+ t.integer :thing_id, :null => true
7
+ t.string :thing_type, :limit => 30, :null => true
8
+ t.timestamps
9
+ end
10
+
11
+ add_index :settings, [ :thing_type, :thing_id, :var ], :unique => true
12
+ end
13
+
14
+ def self.down
15
+ drop_table :settings
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ class TranslateWeelerSeos < ActiveRecord::Migration
2
+ def self.up
3
+ Weeler::Seo.create_translation_table!({
4
+ title: :string,
5
+ description: :text,
6
+ keywords: :text
7
+ }, {
8
+ :migrate_data => true
9
+ })
10
+ end
11
+
12
+ def self.down
13
+ Weeler::Seo.drop_translation_table! :migrate_data => true
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ class CreatePosts < ActiveRecord::Migration
2
+ def change
3
+ create_table :posts do |t|
4
+ t.string :title
5
+ t.text :body
6
+ t.integer :sequence, default: 0
7
+ t.integer :status, default: 0
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateTranslations < ActiveRecord::Migration
2
+ def change
3
+ create_table :translations do |t|
4
+ t.references :post, index: true
5
+ t.string :locale
6
+ t.string :title
7
+ t.text :body
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -11,7 +11,65 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20131015144900) do
14
+ ActiveRecord::Schema.define(version: 20140726151210) do
15
+
16
+ create_table "posts", force: true do |t|
17
+ t.string "title"
18
+ t.text "body"
19
+ t.integer "sequence", default: 0
20
+ t.integer "status", default: 0
21
+ t.datetime "created_at"
22
+ t.datetime "updated_at"
23
+ end
24
+
25
+ create_table "settings", force: true do |t|
26
+ t.string "var", null: false
27
+ t.text "value"
28
+ t.integer "thing_id"
29
+ t.string "thing_type", limit: 30
30
+ t.datetime "created_at"
31
+ t.datetime "updated_at"
32
+ end
33
+
34
+ add_index "settings", ["thing_type", "thing_id", "var"], name: "index_settings_on_thing_type_and_thing_id_and_var", unique: true
35
+
36
+ create_table "translations", force: true do |t|
37
+ t.integer "post_id"
38
+ t.string "locale"
39
+ t.string "title"
40
+ t.text "body"
41
+ t.datetime "created_at"
42
+ t.datetime "updated_at"
43
+ end
44
+
45
+ add_index "translations", ["post_id"], name: "index_translations_on_post_id"
46
+
47
+ create_table "weeler_seo_translations", force: true do |t|
48
+ t.integer "weeler_seo_id", null: false
49
+ t.string "locale", null: false
50
+ t.datetime "created_at"
51
+ t.datetime "updated_at"
52
+ t.string "title"
53
+ t.text "description"
54
+ t.text "keywords"
55
+ end
56
+
57
+ add_index "weeler_seo_translations", ["locale"], name: "index_weeler_seo_translations_on_locale"
58
+ add_index "weeler_seo_translations", ["weeler_seo_id"], name: "index_weeler_seo_translations_on_weeler_seo_id"
59
+
60
+ create_table "weeler_seos", force: true do |t|
61
+ t.string "title"
62
+ t.text "description"
63
+ t.text "keywords"
64
+ t.string "section"
65
+ t.integer "seoable_id"
66
+ t.string "seoable_type"
67
+ t.datetime "created_at"
68
+ t.datetime "updated_at"
69
+ end
70
+
71
+ add_index "weeler_seos", ["section"], name: "index_weeler_seos_on_section"
72
+ add_index "weeler_seos", ["seoable_id", "seoable_type"], name: "index_weeler_seos_on_seoable_id_and_seoable_type"
15
73
 
16
74
  create_table "weeler_translations", force: true do |t|
17
75
  t.string "locale"
Binary file
@@ -17,3 +17,224 @@ Migrating to CreateWeelerTranslations (20131015144900)
17
17
   (0.1ms) begin transaction
18
18
  SQL (4.6ms) INSERT INTO "weeler_translations" ("created_at", "interpolations", "key", "locale", "updated_at", "value") VALUES (?, ?, ?, ?, ?, ?) [["created_at", Thu, 17 Oct 2013 11:11:35 UTC +00:00], ["interpolations", "--- []\n"], ["key", "hello"], ["locale", "en"], ["updated_at", Thu, 17 Oct 2013 11:11:35 UTC +00:00], ["value", nil]]
19
19
   (1.4ms) commit transaction
20
+  (0.9ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
21
+  (0.7ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
22
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
23
+ Migrating to CreateWeelerSeos (20140123083704)
24
+  (0.1ms) begin transaction
25
+  (0.3ms) CREATE TABLE "weeler_seos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "description" text, "keywords" text, "section" varchar(255), "seoable_id" integer, "seoable_type" varchar(255), "created_at" datetime, "updated_at" datetime) 
26
+  (0.1ms) CREATE INDEX "index_weeler_seos_on_seoable_id_and_seoable_type" ON "weeler_seos" ("seoable_id", "seoable_type")
27
+  (0.1ms) CREATE INDEX "index_weeler_seos_on_section" ON "weeler_seos" ("section")
28
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140123083704"]]
29
+  (0.7ms) commit transaction
30
+ Migrating to CreateWeelerSettings (20140123083705)
31
+  (0.1ms) begin transaction
32
+  (0.3ms) CREATE TABLE "settings" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "var" varchar(255) NOT NULL, "value" text, "thing_id" integer, "thing_type" varchar(30), "created_at" datetime, "updated_at" datetime) 
33
+  (0.8ms) CREATE UNIQUE INDEX "index_settings_on_thing_type_and_thing_id_and_var" ON "settings" ("thing_type", "thing_id", "var")
34
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140123083705"]]
35
+  (0.7ms) commit transaction
36
+ Migrating to CreateWeelerTranslations (20140123083706)
37
+  (0.0ms) begin transaction
38
+  (0.2ms) CREATE TABLE "weeler_translations" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "locale" varchar(255), "key" varchar(255), "value" text, "interpolations" text, "is_proc" boolean DEFAULT 'f', "created_at" datetime, "updated_at" datetime)
39
+  (0.1ms) CREATE INDEX "index_weeler_translations_on_locale" ON "weeler_translations" ("locale")
40
+  (0.1ms) CREATE INDEX "index_weeler_translations_on_key" ON "weeler_translations" ("key")
41
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140123083706"]]
42
+  (0.6ms) commit transaction
43
+ Migrating to TranslateWeelerSeos (20140123083707)
44
+  (0.1ms) begin transaction
45
+  (0.3ms) CREATE TABLE "weeler_seo_translations" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "weeler_seo_id" integer NOT NULL, "locale" varchar(255) NOT NULL, "created_at" datetime, "updated_at" datetime)
46
+  (0.1ms) ALTER TABLE "weeler_seo_translations" ADD "title" varchar(255)
47
+  (0.1ms) ALTER TABLE "weeler_seo_translations" ADD "description" text
48
+  (0.1ms) ALTER TABLE "weeler_seo_translations" ADD "keywords" text
49
+ Weeler::Seo Load (0.1ms) SELECT "weeler_seos".* FROM "weeler_seos" ORDER BY "weeler_seos"."id" ASC LIMIT 1000
50
+  (0.1ms) CREATE INDEX "index_weeler_seo_translations_on_weeler_seo_id" ON "weeler_seo_translations" ("weeler_seo_id")
51
+  (0.1ms) CREATE INDEX "index_weeler_seo_translations_on_locale" ON "weeler_seo_translations" ("locale")
52
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140123083707"]]
53
+  (0.6ms) commit transaction
54
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
55
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
56
+ Migrating to CreatePosts (20140718103237)
57
+  (0.0ms) begin transaction
58
+  (0.4ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "body" text, "created_at" datetime, "updated_at" datetime) 
59
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140718103237"]]
60
+  (0.8ms) commit transaction
61
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
62
+  (0.1ms)  SELECT sql
63
+ FROM sqlite_master
64
+ WHERE name='index_settings_on_thing_type_and_thing_id_and_var' AND type='index'
65
+ UNION ALL
66
+ SELECT sql
67
+ FROM sqlite_temp_master
68
+ WHERE name='index_settings_on_thing_type_and_thing_id_and_var' AND type='index'
69
+ 
70
+  (0.1ms) SELECT sql
71
+ FROM sqlite_master
72
+ WHERE name='index_weeler_seo_translations_on_locale' AND type='index'
73
+ UNION ALL
74
+ SELECT sql
75
+ FROM sqlite_temp_master
76
+ WHERE name='index_weeler_seo_translations_on_locale' AND type='index'
77
+
78
+  (0.1ms)  SELECT sql
79
+ FROM sqlite_master
80
+ WHERE name='index_weeler_seo_translations_on_weeler_seo_id' AND type='index'
81
+ UNION ALL
82
+ SELECT sql
83
+ FROM sqlite_temp_master
84
+ WHERE name='index_weeler_seo_translations_on_weeler_seo_id' AND type='index'
85
+ 
86
+  (0.1ms) SELECT sql
87
+ FROM sqlite_master
88
+ WHERE name='index_weeler_seos_on_section' AND type='index'
89
+ UNION ALL
90
+ SELECT sql
91
+ FROM sqlite_temp_master
92
+ WHERE name='index_weeler_seos_on_section' AND type='index'
93
+
94
+  (0.1ms)  SELECT sql
95
+ FROM sqlite_master
96
+ WHERE name='index_weeler_seos_on_seoable_id_and_seoable_type' AND type='index'
97
+ UNION ALL
98
+ SELECT sql
99
+ FROM sqlite_temp_master
100
+ WHERE name='index_weeler_seos_on_seoable_id_and_seoable_type' AND type='index'
101
+ 
102
+  (0.1ms) SELECT sql
103
+ FROM sqlite_master
104
+ WHERE name='index_weeler_translations_on_key' AND type='index'
105
+ UNION ALL
106
+ SELECT sql
107
+ FROM sqlite_temp_master
108
+ WHERE name='index_weeler_translations_on_key' AND type='index'
109
+
110
+  (0.1ms)  SELECT sql
111
+ FROM sqlite_master
112
+ WHERE name='index_weeler_translations_on_locale' AND type='index'
113
+ UNION ALL
114
+ SELECT sql
115
+ FROM sqlite_temp_master
116
+ WHERE name='index_weeler_translations_on_locale' AND type='index'
117
+ 
118
+  (1.0ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
119
+  (0.4ms) select sqlite_version(*)
120
+  (0.8ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
121
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
122
+ Migrating to CreateWeelerSeos (20140123083704)
123
+  (0.1ms) begin transaction
124
+  (0.3ms) CREATE TABLE "weeler_seos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "description" text, "keywords" text, "section" varchar(255), "seoable_id" integer, "seoable_type" varchar(255), "created_at" datetime, "updated_at" datetime)
125
+  (0.1ms) CREATE INDEX "index_weeler_seos_on_seoable_id_and_seoable_type" ON "weeler_seos" ("seoable_id", "seoable_type")
126
+  (0.1ms) SELECT sql
127
+ FROM sqlite_master
128
+ WHERE name='index_weeler_seos_on_seoable_id_and_seoable_type' AND type='index'
129
+ UNION ALL
130
+ SELECT sql
131
+ FROM sqlite_temp_master
132
+ WHERE name='index_weeler_seos_on_seoable_id_and_seoable_type' AND type='index'
133
+
134
+  (0.1ms) CREATE INDEX "index_weeler_seos_on_section" ON "weeler_seos" ("section")
135
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140123083704"]]
136
+  (0.5ms) commit transaction
137
+ Migrating to CreateWeelerSettings (20140123083705)
138
+  (0.0ms) begin transaction
139
+  (0.2ms) CREATE TABLE "settings" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "var" varchar(255) NOT NULL, "value" text, "thing_id" integer, "thing_type" varchar(30), "created_at" datetime, "updated_at" datetime) 
140
+  (0.8ms) CREATE UNIQUE INDEX "index_settings_on_thing_type_and_thing_id_and_var" ON "settings" ("thing_type", "thing_id", "var")
141
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140123083705"]]
142
+  (0.6ms) commit transaction
143
+ Migrating to CreateWeelerTranslations (20140123083706)
144
+  (0.0ms) begin transaction
145
+  (0.2ms) CREATE TABLE "weeler_translations" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "locale" varchar(255), "key" varchar(255), "value" text, "interpolations" text, "is_proc" boolean DEFAULT 'f', "created_at" datetime, "updated_at" datetime)
146
+  (0.1ms) CREATE INDEX "index_weeler_translations_on_locale" ON "weeler_translations" ("locale")
147
+  (0.1ms) SELECT sql
148
+ FROM sqlite_master
149
+ WHERE name='index_weeler_translations_on_locale' AND type='index'
150
+ UNION ALL
151
+ SELECT sql
152
+ FROM sqlite_temp_master
153
+ WHERE name='index_weeler_translations_on_locale' AND type='index'
154
+
155
+  (0.1ms) CREATE INDEX "index_weeler_translations_on_key" ON "weeler_translations" ("key")
156
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140123083706"]]
157
+  (0.5ms) commit transaction
158
+ Migrating to TranslateWeelerSeos (20140123083707)
159
+  (0.0ms) begin transaction
160
+  (0.3ms) CREATE TABLE "weeler_seo_translations" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "weeler_seo_id" integer NOT NULL, "locale" varchar(255) NOT NULL, "created_at" datetime, "updated_at" datetime) 
161
+  (0.1ms) ALTER TABLE "weeler_seo_translations" ADD "title" varchar(255)
162
+  (0.1ms) ALTER TABLE "weeler_seo_translations" ADD "description" text
163
+  (0.1ms) ALTER TABLE "weeler_seo_translations" ADD "keywords" text
164
+ Weeler::Seo Load (0.1ms) SELECT "weeler_seos".* FROM "weeler_seos" ORDER BY "weeler_seos"."id" ASC LIMIT 1000
165
+  (0.1ms) CREATE INDEX "index_weeler_seo_translations_on_weeler_seo_id" ON "weeler_seo_translations" ("weeler_seo_id")
166
+  (0.1ms)  SELECT sql
167
+ FROM sqlite_master
168
+ WHERE name='index_weeler_seo_translations_on_weeler_seo_id' AND type='index'
169
+ UNION ALL
170
+ SELECT sql
171
+ FROM sqlite_temp_master
172
+ WHERE name='index_weeler_seo_translations_on_weeler_seo_id' AND type='index'
173
+ 
174
+  (0.1ms) CREATE INDEX "index_weeler_seo_translations_on_locale" ON "weeler_seo_translations" ("locale")
175
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140123083707"]]
176
+  (0.5ms) commit transaction
177
+ Migrating to CreatePosts (20140718103237)
178
+  (0.1ms) begin transaction
179
+  (0.3ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "body" text, "sequence" integer DEFAULT 0, "status" integer DEFAULT 0, "created_at" datetime, "updated_at" datetime)
180
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140718103237"]]
181
+  (0.5ms) commit transaction
182
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
183
+  (0.1ms) SELECT sql
184
+ FROM sqlite_master
185
+ WHERE name='index_settings_on_thing_type_and_thing_id_and_var' AND type='index'
186
+ UNION ALL
187
+ SELECT sql
188
+ FROM sqlite_temp_master
189
+ WHERE name='index_settings_on_thing_type_and_thing_id_and_var' AND type='index'
190
+
191
+  (0.1ms)  SELECT sql
192
+ FROM sqlite_master
193
+ WHERE name='index_weeler_seo_translations_on_locale' AND type='index'
194
+ UNION ALL
195
+ SELECT sql
196
+ FROM sqlite_temp_master
197
+ WHERE name='index_weeler_seo_translations_on_locale' AND type='index'
198
+ 
199
+  (0.1ms) SELECT sql
200
+ FROM sqlite_master
201
+ WHERE name='index_weeler_seo_translations_on_weeler_seo_id' AND type='index'
202
+ UNION ALL
203
+ SELECT sql
204
+ FROM sqlite_temp_master
205
+ WHERE name='index_weeler_seo_translations_on_weeler_seo_id' AND type='index'
206
+
207
+  (0.1ms)  SELECT sql
208
+ FROM sqlite_master
209
+ WHERE name='index_weeler_seos_on_section' AND type='index'
210
+ UNION ALL
211
+ SELECT sql
212
+ FROM sqlite_temp_master
213
+ WHERE name='index_weeler_seos_on_section' AND type='index'
214
+ 
215
+  (0.1ms) SELECT sql
216
+ FROM sqlite_master
217
+ WHERE name='index_weeler_seos_on_seoable_id_and_seoable_type' AND type='index'
218
+ UNION ALL
219
+ SELECT sql
220
+ FROM sqlite_temp_master
221
+ WHERE name='index_weeler_seos_on_seoable_id_and_seoable_type' AND type='index'
222
+
223
+  (0.1ms)  SELECT sql
224
+ FROM sqlite_master
225
+ WHERE name='index_weeler_translations_on_key' AND type='index'
226
+ UNION ALL
227
+ SELECT sql
228
+ FROM sqlite_temp_master
229
+ WHERE name='index_weeler_translations_on_key' AND type='index'
230
+ 
231
+  (0.1ms) SELECT sql
232
+ FROM sqlite_master
233
+ WHERE name='index_weeler_translations_on_locale' AND type='index'
234
+ UNION ALL
235
+ SELECT sql
236
+ FROM sqlite_temp_master
237
+ WHERE name='index_weeler_translations_on_locale' AND type='index'
238
+
239
+ Post Load (0.2ms) SELECT "posts".* FROM "posts" ORDER BY "posts"."id" DESC LIMIT 1
240
+ Post Load (0.2ms) SELECT "posts".* FROM "posts" ORDER BY "posts"."id" DESC LIMIT 1