indexers 4.1.0.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.
Files changed (80) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +313 -0
  4. data/Rakefile +19 -0
  5. data/lib/generators/indexers/indexer/indexer_generator.rb +23 -0
  6. data/lib/generators/indexers/indexer/templates/indexer.rb +12 -0
  7. data/lib/generators/indexers/install/install_generator.rb +19 -0
  8. data/lib/generators/indexers/install/templates/configuration.yml +15 -0
  9. data/lib/generators/indexers/install/templates/initializer.rb +6 -0
  10. data/lib/indexers/collection.rb +181 -0
  11. data/lib/indexers/computed_sorts.rb +19 -0
  12. data/lib/indexers/concern.rb +30 -0
  13. data/lib/indexers/configuration.rb +35 -0
  14. data/lib/indexers/definitions.rb +24 -0
  15. data/lib/indexers/dsl/api.rb +94 -0
  16. data/lib/indexers/dsl/mappings.rb +14 -0
  17. data/lib/indexers/dsl/search.rb +29 -0
  18. data/lib/indexers/dsl/serialization.rb +17 -0
  19. data/lib/indexers/dsl/traitable.rb +38 -0
  20. data/lib/indexers/extensions/active_record/base.rb +20 -0
  21. data/lib/indexers/indexer.rb +132 -0
  22. data/lib/indexers/pagination.rb +33 -0
  23. data/lib/indexers/proxy.rb +22 -0
  24. data/lib/indexers/railtie.rb +23 -0
  25. data/lib/indexers/version.rb +5 -0
  26. data/lib/indexers.rb +82 -0
  27. data/lib/tasks/indexers.rake +16 -0
  28. data/test/dsl_test.rb +127 -0
  29. data/test/dummy/Rakefile +5 -0
  30. data/test/dummy/app/assets/javascripts/application.js +13 -0
  31. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  32. data/test/dummy/app/controllers/application_controller.rb +5 -0
  33. data/test/dummy/app/helpers/application_helper.rb +2 -0
  34. data/test/dummy/app/indexers/product_indexer.rb +55 -0
  35. data/test/dummy/app/indexers/shop_indexer.rb +28 -0
  36. data/test/dummy/app/models/product.rb +5 -0
  37. data/test/dummy/app/models/shop.rb +5 -0
  38. data/test/dummy/app/views/layouts/application.html.erb +12 -0
  39. data/test/dummy/bin/bundle +4 -0
  40. data/test/dummy/bin/rails +5 -0
  41. data/test/dummy/bin/rake +5 -0
  42. data/test/dummy/bin/setup +30 -0
  43. data/test/dummy/config/application.rb +25 -0
  44. data/test/dummy/config/boot.rb +5 -0
  45. data/test/dummy/config/database.yml +10 -0
  46. data/test/dummy/config/database.yml.travis +3 -0
  47. data/test/dummy/config/elasticsearch.yml +15 -0
  48. data/test/dummy/config/environment.rb +5 -0
  49. data/test/dummy/config/environments/development.rb +41 -0
  50. data/test/dummy/config/environments/production.rb +79 -0
  51. data/test/dummy/config/environments/test.rb +42 -0
  52. data/test/dummy/config/initializers/assets.rb +11 -0
  53. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  54. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  55. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  56. data/test/dummy/config/initializers/indexers.rb +65 -0
  57. data/test/dummy/config/initializers/inflections.rb +16 -0
  58. data/test/dummy/config/initializers/mime_types.rb +4 -0
  59. data/test/dummy/config/initializers/session_store.rb +3 -0
  60. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  61. data/test/dummy/config/locales/en.yml +23 -0
  62. data/test/dummy/config/routes.rb +56 -0
  63. data/test/dummy/config/secrets.yml +22 -0
  64. data/test/dummy/config.ru +4 -0
  65. data/test/dummy/db/migrate/20161104164148_create_products.rb +14 -0
  66. data/test/dummy/db/migrate/20161104182219_create_shops.rb +9 -0
  67. data/test/dummy/db/schema.rb +36 -0
  68. data/test/dummy/log/development.log +114 -0
  69. data/test/dummy/log/test.log +20986 -0
  70. data/test/dummy/public/404.html +61 -0
  71. data/test/dummy/public/422.html +61 -0
  72. data/test/dummy/public/500.html +60 -0
  73. data/test/dummy/public/favicon.ico +0 -0
  74. data/test/generator_test.rb +26 -0
  75. data/test/index_test.rb +42 -0
  76. data/test/record_test.rb +25 -0
  77. data/test/search_test.rb +164 -0
  78. data/test/task_test.rb +31 -0
  79. data/test/test_helper.rb +14 -0
  80. metadata +237 -0
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: 2c1c8d4cbaa726b21aa6483b7d556125f4897508e2b94f8b3ddaec675168382c9b3b6eb5a9359d2fade03f539c16ac1ef905891c2410f2fd00b83b76c1666feb
15
+
16
+ test:
17
+ secret_key_base: 9dd531171128e7c3d11dd2c5c18c84ba43d29b677043002634a6f4d58bf2687a283b7b6dc6af741d63c3824f11fa1f858010d7c2509a932023f2ece0d3bfe6cf
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV['SECRET_KEY_BASE'] %>
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Rails.application
@@ -0,0 +1,14 @@
1
+ class CreateProducts < ActiveRecord::Migration
2
+ def change
3
+ create_table :products do |t|
4
+ t.string :name
5
+ t.string :category
6
+ t.integer :shop_id
7
+ t.integer :price
8
+ t.integer :position
9
+ t.string :currency
10
+
11
+ t.timestamps null: false
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ class CreateShops < ActiveRecord::Migration
2
+ def change
3
+ create_table :shops do |t|
4
+ t.string :name
5
+
6
+ t.timestamps null: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,36 @@
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 that you check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(version: 20161104182219) do
15
+
16
+ # These are extensions that must be enabled in order to support this database
17
+ enable_extension "plpgsql"
18
+
19
+ create_table "products", force: :cascade do |t|
20
+ t.string "name"
21
+ t.string "category"
22
+ t.integer "shop_id"
23
+ t.integer "price"
24
+ t.integer "position"
25
+ t.string "currency"
26
+ t.datetime "created_at", null: false
27
+ t.datetime "updated_at", null: false
28
+ end
29
+
30
+ create_table "shops", force: :cascade do |t|
31
+ t.string "name"
32
+ t.datetime "created_at", null: false
33
+ t.datetime "updated_at", null: false
34
+ end
35
+
36
+ end
@@ -0,0 +1,114 @@
1
+  (27.8ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
2
+  (1.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
3
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
4
+ Migrating to CreateProducts (20161104164148)
5
+  (0.2ms) BEGIN
6
+  (23.9ms) CREATE TABLE "products" ("id" serial primary key, "name" character varying, "category" character varying, "shop_id" integer, "price" integer, "position" integer, "currency" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
7
+ SQL (9.0ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20161104164148"]]
8
+  (5.9ms) COMMIT
9
+ Migrating to CreateShops (20161104182219)
10
+  (6.8ms) BEGIN
11
+  (3.1ms) CREATE TABLE "shops" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
12
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20161104182219"]]
13
+  (0.5ms) COMMIT
14
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
15
+  (2.2ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
16
+ FROM pg_constraint c
17
+ JOIN pg_class t1 ON c.conrelid = t1.oid
18
+ JOIN pg_class t2 ON c.confrelid = t2.oid
19
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
20
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
21
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
22
+ WHERE c.contype = 'f'
23
+ AND t1.relname = 'products'
24
+ AND t3.nspname = ANY (current_schemas(false))
25
+ ORDER BY c.conname
26
+ 
27
+  (1.6ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
28
+ FROM pg_constraint c
29
+ JOIN pg_class t1 ON c.conrelid = t1.oid
30
+ JOIN pg_class t2 ON c.confrelid = t2.oid
31
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
32
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
33
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
34
+ WHERE c.contype = 'f'
35
+ AND t1.relname = 'shops'
36
+ AND t3.nspname = ANY (current_schemas(false))
37
+ ORDER BY c.conname
38
+
39
+  (34.7ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
40
+  (10.8ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
41
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
42
+ Migrating to CreateProducts (20161104164148)
43
+  (0.1ms) BEGIN
44
+  (26.2ms) CREATE TABLE "products" ("id" serial primary key, "name" character varying, "category" character varying, "shop_id" integer, "price" integer, "position" integer, "currency" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
45
+ SQL (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20161104164148"]]
46
+  (6.2ms) COMMIT
47
+ Migrating to CreateShops (20161104182219)
48
+  (6.1ms) BEGIN
49
+  (12.5ms) CREATE TABLE "shops" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
50
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20161104182219"]]
51
+  (0.5ms) COMMIT
52
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
53
+  (1.8ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
54
+ FROM pg_constraint c
55
+ JOIN pg_class t1 ON c.conrelid = t1.oid
56
+ JOIN pg_class t2 ON c.confrelid = t2.oid
57
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
58
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
59
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
60
+ WHERE c.contype = 'f'
61
+ AND t1.relname = 'products'
62
+ AND t3.nspname = ANY (current_schemas(false))
63
+ ORDER BY c.conname
64
+ 
65
+  (1.3ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
66
+ FROM pg_constraint c
67
+ JOIN pg_class t1 ON c.conrelid = t1.oid
68
+ JOIN pg_class t2 ON c.confrelid = t2.oid
69
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
70
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
71
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
72
+ WHERE c.contype = 'f'
73
+ AND t1.relname = 'shops'
74
+ AND t3.nspname = ANY (current_schemas(false))
75
+ ORDER BY c.conname
76
+
77
+  (2.5ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
78
+  (12.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
79
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
80
+ Migrating to CreateProducts (20161104164148)
81
+  (0.1ms) BEGIN
82
+  (7.7ms) CREATE TABLE "products" ("id" serial primary key, "name" character varying, "category" character varying, "shop_id" integer, "price" integer, "position" integer, "currency" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
83
+ SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20161104164148"]]
84
+  (0.4ms) COMMIT
85
+ Migrating to CreateShops (20161104182219)
86
+  (0.2ms) BEGIN
87
+  (2.1ms) CREATE TABLE "shops" ("id" serial primary key, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
88
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20161104182219"]]
89
+  (0.6ms) COMMIT
90
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
91
+  (1.8ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
92
+ FROM pg_constraint c
93
+ JOIN pg_class t1 ON c.conrelid = t1.oid
94
+ JOIN pg_class t2 ON c.confrelid = t2.oid
95
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
96
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
97
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
98
+ WHERE c.contype = 'f'
99
+ AND t1.relname = 'products'
100
+ AND t3.nspname = ANY (current_schemas(false))
101
+ ORDER BY c.conname
102
+ 
103
+  (1.3ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
104
+ FROM pg_constraint c
105
+ JOIN pg_class t1 ON c.conrelid = t1.oid
106
+ JOIN pg_class t2 ON c.confrelid = t2.oid
107
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
108
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
109
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
110
+ WHERE c.contype = 'f'
111
+ AND t1.relname = 'shops'
112
+ AND t3.nspname = ANY (current_schemas(false))
113
+ ORDER BY c.conname
114
+