elasticord 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 (208) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +5 -0
  3. data/Gemfile.lock +160 -0
  4. data/README.md +35 -0
  5. data/Rakefile +30 -0
  6. data/bin/setup_config_files.sh +19 -0
  7. data/config/boot.rb +39 -0
  8. data/dash_overlord.gemspec +39 -0
  9. data/db/migrate/20160321174733_devise_create_users.rb +43 -0
  10. data/db/migrate/20161014155300_create_bee_videos.rb +21 -0
  11. data/db/migrate/20161014160600_create_subtitle_lines.rb +11 -0
  12. data/db/migrate/20161017103500_add_width_and_height_to_bee_videos.rb +21 -0
  13. data/db/migrate/20161017161300_add_start_and_end_time_to_subtitle_lines.rb +17 -0
  14. data/db/migrate/20161017185300_add_fulltext_search_to_subtitle_lines.rb +13 -0
  15. data/db/migrate/20161018150400_add_subtitle_url_to_bee_videos.rb +5 -0
  16. data/db/migrate/20161026162500_add_country_category_and_extra_to_bee_videos.rb +7 -0
  17. data/db/migrate/20161124152600_add_segment_uid_to_bee_videos.rb +5 -0
  18. data/db/migrate/20161223113800_add_user_data_to_bee_videos.rb +17 -0
  19. data/db/migrate/20170105102428_add_segment_uid_to_subtitle_lines.rb +5 -0
  20. data/db/migrate/20170209171700_add_client_id_to_users.rb +5 -0
  21. data/db/migrate/20170209173800_create_admins.rb +8 -0
  22. data/db/migrate/20170209190400_create_clients.rb +8 -0
  23. data/db/migrate/20170210110800_create_chart_configs.rb +35 -0
  24. data/elasticord.gemspec +26 -0
  25. data/lib/dash_overlord.rb +16 -0
  26. data/lib/dash_overlord/config.rb +39 -0
  27. data/lib/dash_overlord/entities/base.rb +13 -0
  28. data/lib/dash_overlord/entities/v1/base.rb +10 -0
  29. data/lib/dash_overlord/entities/v1/chart_source.rb +10 -0
  30. data/lib/dash_overlord/entities/v1/meta_data.rb +10 -0
  31. data/lib/dash_overlord/locales/v1/en/admins.yml +7 -0
  32. data/lib/dash_overlord/locales/v1/en/chart_configs.yml +7 -0
  33. data/lib/dash_overlord/locales/v1/en/clients.yml +7 -0
  34. data/lib/dash_overlord/locales/v1/en/en.yml +213 -0
  35. data/lib/dash_overlord/locales/v1/en/users.yml +9 -0
  36. data/lib/dash_overlord/models/base.rb +12 -0
  37. data/lib/dash_overlord/models/v1/admin.rb +10 -0
  38. data/lib/dash_overlord/models/v1/answer.rb +10 -0
  39. data/lib/dash_overlord/models/v1/base.rb +11 -0
  40. data/lib/dash_overlord/models/v1/basic_user.rb +34 -0
  41. data/lib/dash_overlord/models/v1/bee_video.rb +30 -0
  42. data/lib/dash_overlord/models/v1/chart_config.rb +48 -0
  43. data/lib/dash_overlord/models/v1/client.rb +10 -0
  44. data/lib/dash_overlord/models/v1/dynamo_db/base.rb +98 -0
  45. data/lib/dash_overlord/models/v1/dynamo_db/migration.rb +52 -0
  46. data/lib/dash_overlord/models/v1/dynamo_db/video.rb +11 -0
  47. data/lib/dash_overlord/models/v1/elastic_search.rb +12 -0
  48. data/lib/dash_overlord/models/v1/subtitle_line.rb +21 -0
  49. data/lib/dash_overlord/models/v1/user.rb +10 -0
  50. data/lib/dash_overlord/requirable.rb +110 -0
  51. data/lib/dash_overlord/serializers/base.rb +127 -0
  52. data/lib/dash_overlord/serializers/v1/admins/base.rb +15 -0
  53. data/lib/dash_overlord/serializers/v1/admins/log_in.rb +13 -0
  54. data/lib/dash_overlord/serializers/v1/admins/show.rb +13 -0
  55. data/lib/dash_overlord/serializers/v1/base.rb +17 -0
  56. data/lib/dash_overlord/serializers/v1/chart_configs/base.rb +15 -0
  57. data/lib/dash_overlord/serializers/v1/chart_configs/create.rb +13 -0
  58. data/lib/dash_overlord/serializers/v1/chart_configs/delete.rb +12 -0
  59. data/lib/dash_overlord/serializers/v1/chart_configs/index.rb +15 -0
  60. data/lib/dash_overlord/serializers/v1/chart_configs/show.rb +59 -0
  61. data/lib/dash_overlord/serializers/v1/chart_configs/update.rb +12 -0
  62. data/lib/dash_overlord/serializers/v1/clients/base.rb +15 -0
  63. data/lib/dash_overlord/serializers/v1/clients/create.rb +13 -0
  64. data/lib/dash_overlord/serializers/v1/clients/delete.rb +12 -0
  65. data/lib/dash_overlord/serializers/v1/clients/index.rb +15 -0
  66. data/lib/dash_overlord/serializers/v1/clients/show.rb +15 -0
  67. data/lib/dash_overlord/serializers/v1/clients/update.rb +12 -0
  68. data/lib/dash_overlord/serializers/v1/meta_data/pagination.rb +19 -0
  69. data/lib/dash_overlord/serializers/v1/meta_data/pagination_with_filters.rb +13 -0
  70. data/lib/dash_overlord/serializers/v1/subtitle_lines/base.rb +15 -0
  71. data/lib/dash_overlord/serializers/v1/subtitle_lines/show.rb +35 -0
  72. data/lib/dash_overlord/serializers/v1/users/base.rb +15 -0
  73. data/lib/dash_overlord/serializers/v1/users/create.rb +13 -0
  74. data/lib/dash_overlord/serializers/v1/users/delete.rb +12 -0
  75. data/lib/dash_overlord/serializers/v1/users/index.rb +15 -0
  76. data/lib/dash_overlord/serializers/v1/users/log_in.rb +13 -0
  77. data/lib/dash_overlord/serializers/v1/users/show.rb +13 -0
  78. data/lib/dash_overlord/serializers/v1/users/update.rb +12 -0
  79. data/lib/dash_overlord/serializers/v1/videos/base.rb +15 -0
  80. data/lib/dash_overlord/serializers/v1/videos/index.rb +15 -0
  81. data/lib/dash_overlord/serializers/v1/videos/show.rb +43 -0
  82. data/lib/dash_overlord/use_cases/base.rb +87 -0
  83. data/lib/dash_overlord/use_cases/context.rb +72 -0
  84. data/lib/dash_overlord/use_cases/v1/admins/find_current_admin.rb +15 -0
  85. data/lib/dash_overlord/use_cases/v1/admins/log_in/base.rb +26 -0
  86. data/lib/dash_overlord/use_cases/v1/admins/show_current_admin/base.rb +22 -0
  87. data/lib/dash_overlord/use_cases/v1/admins/show_current_admin/find_current_admin.rb +21 -0
  88. data/lib/dash_overlord/use_cases/v1/admins/show_current_admin/get_current_admin.rb +20 -0
  89. data/lib/dash_overlord/use_cases/v1/base.rb +8 -0
  90. data/lib/dash_overlord/use_cases/v1/chart_configs/cache_answer_values/base.rb +19 -0
  91. data/lib/dash_overlord/use_cases/v1/chart_configs/cache_answer_values/build_cache.rb +85 -0
  92. data/lib/dash_overlord/use_cases/v1/chart_configs/create/assign_attributes_to_chart_config.rb +48 -0
  93. data/lib/dash_overlord/use_cases/v1/chart_configs/create/base.rb +34 -0
  94. data/lib/dash_overlord/use_cases/v1/chart_configs/create/build_chart_config.rb +17 -0
  95. data/lib/dash_overlord/use_cases/v1/chart_configs/create/validate_chart_config.rb +76 -0
  96. data/lib/dash_overlord/use_cases/v1/chart_configs/delete/base.rb +26 -0
  97. data/lib/dash_overlord/use_cases/v1/chart_configs/delete/delete_chart_config.rb +24 -0
  98. data/lib/dash_overlord/use_cases/v1/chart_configs/get_chart_config.rb +16 -0
  99. data/lib/dash_overlord/use_cases/v1/chart_configs/index/base.rb +24 -0
  100. data/lib/dash_overlord/use_cases/v1/chart_configs/index/find_chart_configs.rb +17 -0
  101. data/lib/dash_overlord/use_cases/v1/chart_configs/index/search_and_paginate_chart_configs.rb +17 -0
  102. data/lib/dash_overlord/use_cases/v1/chart_configs/save_chart_config.rb +19 -0
  103. data/lib/dash_overlord/use_cases/v1/chart_configs/show/base.rb +23 -0
  104. data/lib/dash_overlord/use_cases/v1/chart_configs/show/find_chart_config.rb +21 -0
  105. data/lib/dash_overlord/use_cases/v1/chart_configs/update/base.rb +32 -0
  106. data/lib/dash_overlord/use_cases/v1/clients/create/assign_attributes_to_client.rb +27 -0
  107. data/lib/dash_overlord/use_cases/v1/clients/create/base.rb +29 -0
  108. data/lib/dash_overlord/use_cases/v1/clients/create/build_client.rb +17 -0
  109. data/lib/dash_overlord/use_cases/v1/clients/create/validate_client.rb +25 -0
  110. data/lib/dash_overlord/use_cases/v1/clients/delete/base.rb +26 -0
  111. data/lib/dash_overlord/use_cases/v1/clients/delete/delete_client.rb +22 -0
  112. data/lib/dash_overlord/use_cases/v1/clients/index/base.rb +24 -0
  113. data/lib/dash_overlord/use_cases/v1/clients/index/find_clients.rb +17 -0
  114. data/lib/dash_overlord/use_cases/v1/clients/index/search_and_paginate_clients.rb +17 -0
  115. data/lib/dash_overlord/use_cases/v1/clients/save_client.rb +19 -0
  116. data/lib/dash_overlord/use_cases/v1/clients/show/base.rb +23 -0
  117. data/lib/dash_overlord/use_cases/v1/clients/show/find_client.rb +21 -0
  118. data/lib/dash_overlord/use_cases/v1/clients/show/get_client.rb +17 -0
  119. data/lib/dash_overlord/use_cases/v1/clients/update/base.rb +27 -0
  120. data/lib/dash_overlord/use_cases/v1/dummy_data/create/charts/base.rb +38 -0
  121. data/lib/dash_overlord/use_cases/v1/dummy_data/create/charts/build.rb +64 -0
  122. data/lib/dash_overlord/use_cases/v1/repositories/dynamo_db/client.rb +39 -0
  123. data/lib/dash_overlord/use_cases/v1/repositories/dynamo_db/create/batch.rb +46 -0
  124. data/lib/dash_overlord/use_cases/v1/repositories/dynamo_db/query/table.rb +25 -0
  125. data/lib/dash_overlord/use_cases/v1/shared/log_in/assign_attributes_to_user_model.rb +28 -0
  126. data/lib/dash_overlord/use_cases/v1/shared/log_in/base.rb +21 -0
  127. data/lib/dash_overlord/use_cases/v1/shared/log_in/build_user_model.rb +19 -0
  128. data/lib/dash_overlord/use_cases/v1/shared/log_in/get_existing_user_model.rb +20 -0
  129. data/lib/dash_overlord/use_cases/v1/shared/log_in/switch_user_model_by_existing_user_model.rb +17 -0
  130. data/lib/dash_overlord/use_cases/v1/shared/log_in/validate_user_model.rb +52 -0
  131. data/lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_filters.rb +25 -0
  132. data/lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_full_text_search.rb +22 -0
  133. data/lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_pagination.rb +72 -0
  134. data/lib/dash_overlord/use_cases/v1/shared/search_and_paginate/base.rb +36 -0
  135. data/lib/dash_overlord/use_cases/v1/users/create/assign_attributes_to_user.rb +26 -0
  136. data/lib/dash_overlord/use_cases/v1/users/create/base.rb +29 -0
  137. data/lib/dash_overlord/use_cases/v1/users/create/build_user.rb +17 -0
  138. data/lib/dash_overlord/use_cases/v1/users/create/validate_user.rb +27 -0
  139. data/lib/dash_overlord/use_cases/v1/users/delete/base.rb +26 -0
  140. data/lib/dash_overlord/use_cases/v1/users/delete/delete_user.rb +22 -0
  141. data/lib/dash_overlord/use_cases/v1/users/find_current_user.rb +15 -0
  142. data/lib/dash_overlord/use_cases/v1/users/index/base.rb +23 -0
  143. data/lib/dash_overlord/use_cases/v1/users/index/search_and_paginate_users.rb +17 -0
  144. data/lib/dash_overlord/use_cases/v1/users/log_in/base.rb +26 -0
  145. data/lib/dash_overlord/use_cases/v1/users/save_user.rb +23 -0
  146. data/lib/dash_overlord/use_cases/v1/users/show/base.rb +23 -0
  147. data/lib/dash_overlord/use_cases/v1/users/show/find_user.rb +21 -0
  148. data/lib/dash_overlord/use_cases/v1/users/show/get_user.rb +17 -0
  149. data/lib/dash_overlord/use_cases/v1/users/show_current_user/base.rb +22 -0
  150. data/lib/dash_overlord/use_cases/v1/users/show_current_user/find_current_user.rb +21 -0
  151. data/lib/dash_overlord/use_cases/v1/users/show_current_user/get_current_user.rb +20 -0
  152. data/lib/dash_overlord/use_cases/v1/users/update/base.rb +27 -0
  153. data/lib/dash_overlord/use_cases/v1/videos/index/base.rb +31 -0
  154. data/lib/dash_overlord/use_cases/v1/videos/index/dynamodb/base.rb +19 -0
  155. data/lib/dash_overlord/use_cases/v1/videos/index/dynamodb/search_and_paginate_videos.rb +20 -0
  156. data/lib/dash_overlord/use_cases/v1/videos/index/elastic_search/base.rb +19 -0
  157. data/lib/dash_overlord/use_cases/v1/videos/index/elastic_search/search_and_paginate_videos.rb +97 -0
  158. data/lib/dash_overlord/use_cases/v1/videos/index/postgres/base.rb +22 -0
  159. data/lib/dash_overlord/use_cases/v1/videos/index/postgres/build_video_searched_subtitles.rb +42 -0
  160. data/lib/dash_overlord/use_cases/v1/videos/index/postgres/get_filters.rb +91 -0
  161. data/lib/dash_overlord/use_cases/v1/videos/index/postgres/hhc.json +206 -0
  162. data/lib/dash_overlord/use_cases/v1/videos/index/postgres/search_and_paginate_videos.rb +35 -0
  163. data/lib/dash_overlord/use_cases/v1/videos/index/postgres/search_on_subtitle_lines.rb +26 -0
  164. data/lib/dash_overlord/version.rb +3 -0
  165. data/lib/elasticord.rb +24 -0
  166. data/lib/elasticord/base.rb +80 -0
  167. data/lib/elasticord/config.rb +23 -0
  168. data/lib/elasticord/orm/create.rb +32 -0
  169. data/lib/elasticord/orm/delete.rb +23 -0
  170. data/lib/elasticord/orm/get.rb +34 -0
  171. data/lib/elasticord/orm/index.rb +15 -0
  172. data/lib/elasticord/version.rb +3 -0
  173. data/lib/tasks/create_dummy_data.rake +11 -0
  174. data/spec/dash_overlord/use_cases/v1/admins/log_in_spec.rb +105 -0
  175. data/spec/dash_overlord/use_cases/v1/admins/show_current_admin_spec.rb +51 -0
  176. data/spec/dash_overlord/use_cases/v1/chart_configs/create_spec.rb +77 -0
  177. data/spec/dash_overlord/use_cases/v1/chart_configs/delete_spec.rb +70 -0
  178. data/spec/dash_overlord/use_cases/v1/chart_configs/index_spec.rb +126 -0
  179. data/spec/dash_overlord/use_cases/v1/chart_configs/show_spec.rb +73 -0
  180. data/spec/dash_overlord/use_cases/v1/chart_configs/update_spec.rb +104 -0
  181. data/spec/dash_overlord/use_cases/v1/clients/create_spec.rb +85 -0
  182. data/spec/dash_overlord/use_cases/v1/clients/delete_spec.rb +70 -0
  183. data/spec/dash_overlord/use_cases/v1/clients/index_spec.rb +121 -0
  184. data/spec/dash_overlord/use_cases/v1/clients/show_spec.rb +70 -0
  185. data/spec/dash_overlord/use_cases/v1/clients/update_spec.rb +112 -0
  186. data/spec/dash_overlord/use_cases/v1/users/create_spec.rb +89 -0
  187. data/spec/dash_overlord/use_cases/v1/users/delete_spec.rb +70 -0
  188. data/spec/dash_overlord/use_cases/v1/users/index_spec.rb +121 -0
  189. data/spec/dash_overlord/use_cases/v1/users/log_in_spec.rb +105 -0
  190. data/spec/dash_overlord/use_cases/v1/users/show_current_admin_spec.rb +51 -0
  191. data/spec/dash_overlord/use_cases/v1/users/show_spec.rb +69 -0
  192. data/spec/dash_overlord/use_cases/v1/users/update_spec.rb +119 -0
  193. data/spec/dash_overlord/use_cases/v1/videos/index/base_spec.rb +39 -0
  194. data/spec/dash_overlord/use_cases/v1/videos/index/dynamo_db_spec.rb +84 -0
  195. data/spec/dash_overlord/use_cases/v1/videos/index/elastic_search_spec.rb +121 -0
  196. data/spec/dash_overlord/use_cases/v1/videos/index/postgres_spec.rb +116 -0
  197. data/spec/elasticord/base_spec.rb +242 -0
  198. data/spec/factories/v1/admins.rb +8 -0
  199. data/spec/factories/v1/bee_videos.rb +18 -0
  200. data/spec/factories/v1/chart_configs.rb +23 -0
  201. data/spec/factories/v1/clients.rb +13 -0
  202. data/spec/factories/v1/users.rb +15 -0
  203. data/spec/spec_helper.rb +49 -0
  204. data/spec/support/helpers.rb +65 -0
  205. data/spec/support/shared_missing_admin.rb +39 -0
  206. data/spec/support/shared_missing_user.rb +39 -0
  207. data/tasks/console.rake +10 -0
  208. metadata +325 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2408da665b98d05d1dde3f3fc1511074b8eaed04
4
+ data.tar.gz: cf31f46f08bcda7ce6f93ab47ed62f94dd275c88
5
+ SHA512:
6
+ metadata.gz: 670431cec3b786c0ba816939d9b1abfd863536df2c44b7a4d4ecea6e6ea5a597b5dcc13128dcae47c561996d4de747f26bfa28ae6c8f8fe435ea8a47e24b7d81
7
+ data.tar.gz: c5b7f656b196c76f0feda110371ff3caf0004c44a8e479491fcf8c67309e572acab26930c03dccabb80fc0220af29e8c23735784c1e35631500c668778da2654
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ ruby '2.3.0'
4
+
5
+ gemspec name: 'dash_overlord'
@@ -0,0 +1,160 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ dash_overlord (1.0.0)
5
+ activerecord (>= 3)
6
+ aws-sdk (>= 2.2.35)
7
+ bcrypt (>= 2.0.0)
8
+ dotenv (>= 2.1.1)
9
+ elasticsearch (>= 5.0.3)
10
+ i18n (>= 0.7.0)
11
+ kaminari (>= 1.0.0.rc1)
12
+ object_attorney (>= 3.0.7)
13
+ pg (>= 0.17)
14
+ ransack (>= 1.7.0)
15
+
16
+ GEM
17
+ remote: https://rubygems.org/
18
+ specs:
19
+ actionpack (5.0.1)
20
+ actionview (= 5.0.1)
21
+ activesupport (= 5.0.1)
22
+ rack (~> 2.0)
23
+ rack-test (~> 0.6.3)
24
+ rails-dom-testing (~> 2.0)
25
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
26
+ actionview (5.0.1)
27
+ activesupport (= 5.0.1)
28
+ builder (~> 3.1)
29
+ erubis (~> 2.7.0)
30
+ rails-dom-testing (~> 2.0)
31
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
32
+ activemodel (5.0.1)
33
+ activesupport (= 5.0.1)
34
+ activerecord (5.0.1)
35
+ activemodel (= 5.0.1)
36
+ activesupport (= 5.0.1)
37
+ arel (~> 7.0)
38
+ activesupport (5.0.1)
39
+ concurrent-ruby (~> 1.0, >= 1.0.2)
40
+ i18n (~> 0.7)
41
+ minitest (~> 5.1)
42
+ tzinfo (~> 1.1)
43
+ arel (7.1.4)
44
+ aws-sdk (2.7.8)
45
+ aws-sdk-resources (= 2.7.8)
46
+ aws-sdk-core (2.7.8)
47
+ aws-sigv4 (~> 1.0)
48
+ jmespath (~> 1.0)
49
+ aws-sdk-resources (2.7.8)
50
+ aws-sdk-core (= 2.7.8)
51
+ aws-sigv4 (1.0.0)
52
+ bcrypt (3.1.11)
53
+ builder (3.2.3)
54
+ byebug (8.2.5)
55
+ coderay (1.1.1)
56
+ concurrent-ruby (1.0.4)
57
+ database_cleaner (1.5.1)
58
+ diff-lcs (1.2.5)
59
+ dotenv (2.2.0)
60
+ elasticsearch (5.0.3)
61
+ elasticsearch-api (= 5.0.3)
62
+ elasticsearch-transport (= 5.0.3)
63
+ elasticsearch-api (5.0.3)
64
+ multi_json
65
+ elasticsearch-transport (5.0.3)
66
+ faraday
67
+ multi_json
68
+ erubis (2.7.0)
69
+ factory_girl (4.7.0)
70
+ activesupport (>= 3.0.0)
71
+ faraday (0.11.0)
72
+ multipart-post (>= 1.2, < 3)
73
+ i18n (0.7.0)
74
+ jmespath (1.3.1)
75
+ kaminari (1.0.1)
76
+ activesupport (>= 4.1.0)
77
+ kaminari-actionview (= 1.0.1)
78
+ kaminari-activerecord (= 1.0.1)
79
+ kaminari-core (= 1.0.1)
80
+ kaminari-actionview (1.0.1)
81
+ actionview
82
+ kaminari-core (= 1.0.1)
83
+ kaminari-activerecord (1.0.1)
84
+ activerecord
85
+ kaminari-core (= 1.0.1)
86
+ kaminari-core (1.0.1)
87
+ loofah (2.0.3)
88
+ nokogiri (>= 1.5.9)
89
+ method_source (0.8.2)
90
+ mini_portile2 (2.1.0)
91
+ minitest (5.10.1)
92
+ multi_json (1.12.1)
93
+ multipart-post (2.0.0)
94
+ nokogiri (1.7.0.1)
95
+ mini_portile2 (~> 2.1.0)
96
+ object_attorney (3.0.7)
97
+ activemodel (>= 3.0.0)
98
+ pg (0.19.0)
99
+ polyamorous (1.3.1)
100
+ activerecord (>= 3.0)
101
+ pry (0.10.4)
102
+ coderay (~> 1.1.0)
103
+ method_source (~> 0.8.1)
104
+ slop (~> 3.4)
105
+ pry-byebug (3.3.0)
106
+ byebug (~> 8.0)
107
+ pry (~> 0.10)
108
+ rack (2.0.1)
109
+ rack-test (0.6.3)
110
+ rack (>= 1.0)
111
+ rails-dom-testing (2.0.2)
112
+ activesupport (>= 4.2.0, < 6.0)
113
+ nokogiri (~> 1.6)
114
+ rails-html-sanitizer (1.0.3)
115
+ loofah (~> 2.0)
116
+ rake (10.0.0)
117
+ ransack (1.8.2)
118
+ actionpack (>= 3.0)
119
+ activerecord (>= 3.0)
120
+ activesupport (>= 3.0)
121
+ i18n
122
+ polyamorous (~> 1.3)
123
+ rspec (3.4.0)
124
+ rspec-core (~> 3.4.0)
125
+ rspec-expectations (~> 3.4.0)
126
+ rspec-mocks (~> 3.4.0)
127
+ rspec-core (3.4.4)
128
+ rspec-support (~> 3.4.0)
129
+ rspec-expectations (3.4.0)
130
+ diff-lcs (>= 1.2.0, < 2.0)
131
+ rspec-support (~> 3.4.0)
132
+ rspec-mocks (3.4.1)
133
+ diff-lcs (>= 1.2.0, < 2.0)
134
+ rspec-support (~> 3.4.0)
135
+ rspec-support (3.4.1)
136
+ slop (3.6.0)
137
+ systematize (0.1.0)
138
+ activerecord (>= 3.2)
139
+ rake
140
+ thread_safe (0.3.5)
141
+ tzinfo (1.2.2)
142
+ thread_safe (~> 0.1)
143
+
144
+ PLATFORMS
145
+ ruby
146
+
147
+ DEPENDENCIES
148
+ dash_overlord!
149
+ database_cleaner (= 1.5.1)
150
+ factory_girl (= 4.7.0)
151
+ pry-byebug (= 3.3.0)
152
+ rake (= 10.0.0)
153
+ rspec (= 3.4.0)
154
+ systematize (= 0.1.0)
155
+
156
+ RUBY VERSION
157
+ ruby 2.3.0p0
158
+
159
+ BUNDLED WITH
160
+ 1.13.7
@@ -0,0 +1,35 @@
1
+ # Dash Overlord
2
+ ->Description of the project goes here<-
3
+
4
+ ## 1. System dependencies
5
+ - ruby: v2.3.0
6
+ - elastic search v5
7
+
8
+ ## 2. Installation
9
+ - Install **ruby**, **bundler** gem if needed;
10
+ - Install elastic search **brew install elasticsearch**;
11
+ - Run **bundle install** inside the "dash_lord/dash_overlord" folder.
12
+
13
+ ## 3. Configuration
14
+ - Get the "dash_lord_configs.zip" from one of the guys;
15
+ - Unzip it next to the "dash_lord" folder;
16
+ - Run "./bin/setup_config_files.sh" inside the "dash_lord/dash_overlord" folder.
17
+
18
+ ## 4. Database creation
19
+ * bundle exec rake systematize:create
20
+
21
+ ## 5. Database initialization
22
+ * bundle exec rake systematize:migrate
23
+
24
+ ## 6. How to run in development mode
25
+ - Make sure you went through the **Installation** **Configuration**, **Database creation** and **Database initialization** steps;
26
+ - Run **bundle exec rake dash_overlord:console** inside the "dash_lord/dash_overlord" folder.
27
+
28
+ ## 7. How to run the test suite
29
+ - Run **bundle exec rspec** inside the "dash_lord/dash_overlord" folder.
30
+
31
+ ## 8. Services (job queues, cache servers, search engines, etc.)
32
+ nothing for now.
33
+
34
+ ## 9. Deployment instructions
35
+ nothing for now.
@@ -0,0 +1,30 @@
1
+ # Loading DashOverlord gem
2
+ require File.expand_path('../config/boot', __FILE__)
3
+
4
+ # Setting DatabaseTasks configuration, so that rake db:create might work
5
+ db_dir = File.expand_path('../db', __FILE__)
6
+
7
+ include ActiveRecord::Tasks
8
+
9
+ DatabaseTasks.env = ENV['ENV']
10
+ DatabaseTasks.db_dir = db_dir
11
+ DatabaseTasks.migrations_paths = File.join(db_dir, 'migrate')
12
+ DatabaseTasks.database_configuration = {
13
+ ENV['ENV'] => DashOverlord::V1::Config.get(:db_config)
14
+ }
15
+
16
+ # Setting ActiveRecord database configuration
17
+ task :environment do
18
+ ActiveRecord::Base.establish_connection DashOverlord::V1::Config.get(:db_config)
19
+ end
20
+
21
+ # Loading ActiveRecord database rake tasks
22
+ load 'active_record/railties/databases.rake'
23
+
24
+ # Loading systematize rake tasks
25
+ require 'systematize'
26
+
27
+ Rake.add_rakelib "#{Gem.loaded_specs['systematize'].full_gem_path}/lib/tasks"
28
+
29
+ # Loading DashOverlord tasks
30
+ Rake.add_rakelib File.expand_path('../tasks', __FILE__)
@@ -0,0 +1,19 @@
1
+ #!/bin/bash
2
+
3
+ link_config_files() {
4
+ shopt -s dotglob
5
+ for file in $1 ; do
6
+ if [[ -f ${file} ]] ; then
7
+ ln -F -s $file
8
+ fi
9
+
10
+ if [[ -d ${file} ]] ; then
11
+ mkdir -p $(basename "$file")
12
+ cd $(basename "$file")
13
+ link_config_files "../$file/*"
14
+ cd ..
15
+ fi
16
+ done
17
+ }
18
+
19
+ link_config_files "../../dash_lord_configs/dash_overlord/*"
@@ -0,0 +1,39 @@
1
+ lib = File.expand_path('../../lib', __FILE__)
2
+
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ ENV['ENV'] ||= (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development')
6
+
7
+ require 'dotenv'
8
+
9
+ Dotenv.overload \
10
+ File.expand_path('../.env', __FILE__),
11
+ File.expand_path("../.env_#{ENV['ENV']}", __FILE__)
12
+
13
+ require 'dash_overlord'
14
+
15
+ DashOverlord::V1.configure do |config|
16
+ config.set(:env, ENV.fetch('ENV'))
17
+ config.set(:db_config, ENV.fetch('DASH_OVERLORD_V1_DATABASE_URL'))
18
+
19
+ config.set(:dynamodb_access_key, ENV.fetch('DASH_OVERLORD_DYNAMODB_ACCESS_KEY'))
20
+ config.set(:dynamodb_secret_key, ENV.fetch('DASH_OVERLORD_DYNAMODB_SECRET_KEY'))
21
+ config.set(:dynamodb_region, ENV.fetch('DASH_OVERLORD_DYNAMODB_REGION'))
22
+ end
23
+
24
+ DashOverlord::Models::V1::Base.establish_connection \
25
+ DashOverlord::V1::Config.get(:db_config)
26
+
27
+ if ENV['ENV'] == 'test'
28
+ credentials = Aws::Credentials.new(
29
+ DashOverlord::V1::Config.get(:dynamodb_access_key),
30
+ DashOverlord::V1::Config.get(:dynamodb_secret_key)
31
+ )
32
+
33
+ Aws.config.update({
34
+ region: "us-west-2",
35
+ endpoint: "http://localhost:8000",
36
+ credentials: credentials
37
+ })
38
+
39
+ end
@@ -0,0 +1,39 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ require 'dash_overlord/version'
6
+
7
+ Gem::Specification.new do |gem|
8
+ gem.name = "dash_overlord"
9
+ gem.version = DashOverlord::VERSION
10
+ gem.license = "NONE"
11
+ gem.authors = ["StreetBees Dev Team"]
12
+ gem.email = "dev@streetbees.com"
13
+ gem.summary = "2Mundo business logic"
14
+ gem.description = "Ruby gem with all of the business logic, agnostic to protocols like HTTP, AMQP, etc."
15
+ gem.homepage = "https://github.com/streetbees/dashlord/dash_lord"
16
+
17
+ gem.files = `git ls-files`.split($/)
18
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
19
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
20
+ gem.require_paths = ['lib']
21
+
22
+ gem.add_development_dependency 'rake', '10.0.0'
23
+ gem.add_development_dependency 'rspec', '3.4.0'
24
+ gem.add_development_dependency 'pry-byebug', '3.3.0'
25
+ gem.add_development_dependency 'systematize', '0.1.0'
26
+ gem.add_development_dependency 'factory_girl', '4.7.0'
27
+ gem.add_development_dependency 'database_cleaner', '1.5.1'
28
+
29
+ gem.add_runtime_dependency 'pg', '>= 0.17'
30
+ gem.add_runtime_dependency 'i18n', '>= 0.7.0'
31
+ gem.add_runtime_dependency 'dotenv', '>= 2.1.1'
32
+ gem.add_runtime_dependency 'bcrypt', '>= 2.0.0'
33
+ gem.add_runtime_dependency 'ransack', '>= 1.7.0'
34
+ gem.add_runtime_dependency 'kaminari', '>= 1.0.0.rc1'
35
+ gem.add_runtime_dependency 'activerecord', '>= 3'
36
+ gem.add_runtime_dependency 'elasticsearch', '>= 5.0.3'
37
+ gem.add_runtime_dependency 'object_attorney', '>= 3.0.7'
38
+ gem.add_runtime_dependency 'aws-sdk', '>= 2.2.35'
39
+ end
@@ -0,0 +1,43 @@
1
+ class DeviseCreateUsers < ActiveRecord::Migration[5.0]
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, null: false
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, null: false # 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
+ t.boolean :admin, default: false
34
+
35
+ t.timestamps null: false
36
+ end
37
+
38
+ add_index :users, :email, unique: true
39
+ add_index :users, :reset_password_token, unique: true
40
+ # add_index :users, :confirmation_token, unique: true
41
+ # add_index :users, :unlock_token, unique: true
42
+ end
43
+ end
@@ -0,0 +1,21 @@
1
+ class CreateBeeVideos < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :bee_videos do |t|
4
+ t.string :url
5
+ t.string :subtitle1_uid
6
+ t.string :subtitle2_uid
7
+ t.string :dominant_color_hex
8
+ t.string :thumbnail_small_url
9
+ t.integer :thumbnail_small_width
10
+ t.integer :thumbnail_small_height
11
+ t.string :thumbnail_medium_url
12
+ t.integer :thumbnail_medium_width
13
+ t.integer :thumbnail_medium_height
14
+ t.string :thumbnail_large_url
15
+ t.integer :thumbnail_large_width
16
+ t.integer :thumbnail_large_height
17
+
18
+ t.timestamps
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ class CreateSubtitleLines < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :subtitle_lines do |t|
4
+ t.text :line
5
+ t.string :subtitle_uid
6
+ t.integer :bee_video_id
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ class AddWidthAndHeightToBeeVideos < ActiveRecord::Migration[5.0]
2
+ def up
3
+ add_column :bee_videos, :author, :string
4
+ add_column :bee_videos, :original_url, :string
5
+ add_column :bee_videos, :original_width, :integer
6
+ add_column :bee_videos, :original_height, :integer
7
+
8
+ remove_column :bee_videos, :subtitle1_uid
9
+ remove_column :bee_videos, :subtitle2_uid
10
+ end
11
+
12
+ def down
13
+ remove_column :bee_videos, :author
14
+ remove_column :bee_videos, :original_url
15
+ remove_column :bee_videos, :original_width
16
+ remove_column :bee_videos, :original_height
17
+
18
+ add_column :bee_videos, :subtitle1_uid, :string
19
+ add_column :bee_videos, :subtitle2_uid, :string
20
+ end
21
+ end