remetric 0.0.2 → 0.0.3

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 (209) hide show
  1. checksums.yaml +4 -4
  2. data/{LICENSE.txt → MIT-LICENSE} +1 -3
  3. data/README.rdoc +7 -0
  4. data/Rakefile +32 -1
  5. data/app/assets/images/remetric/loading_logo.gif +0 -0
  6. data/app/assets/images/remetric/logo.png +0 -0
  7. data/app/assets/javascripts/remetric/app.js.coffee +22 -0
  8. data/app/assets/javascripts/remetric/application.js +16 -0
  9. data/app/assets/javascripts/remetric/dialog.js.coffee +21 -0
  10. data/app/assets/javascripts/remetric/messages.js.coffee +21 -0
  11. data/app/assets/javascripts/remetric/search.js.coffee +8 -0
  12. data/app/assets/javascripts/remetric/window.js.coffee +12 -0
  13. data/app/assets/stylesheets/remetric/app.css.scss +103 -0
  14. data/app/assets/stylesheets/remetric/application.css +16 -0
  15. data/app/assets/stylesheets/remetric/dialog.css.scss +100 -0
  16. data/app/assets/stylesheets/remetric/nav.css.scss +57 -0
  17. data/app/assets/stylesheets/remetric/reset.css +61 -0
  18. data/app/assets/stylesheets/remetric/search.css.scss +31 -0
  19. data/app/assets/stylesheets/remetric/tables.css.scss +25 -0
  20. data/app/controllers/remetric/application_controller.rb +9 -0
  21. data/app/controllers/remetric/dashboard_controller.rb +11 -0
  22. data/app/controllers/remetric/events_controller.rb +42 -0
  23. data/app/controllers/remetric/trackables_controller.rb +91 -0
  24. data/app/models/remetric/event.rb +60 -0
  25. data/app/models/remetric/trackable.rb +30 -0
  26. data/app/views/layouts/remetric/application.html.erb +29 -0
  27. data/app/views/remetric/application/_footer.html.erb +17 -0
  28. data/app/views/remetric/application/_nav.html.erb +21 -0
  29. data/app/views/remetric/dashboard/index.html.erb +1 -0
  30. data/app/views/remetric/dashboard/settings.html.erb +8 -0
  31. data/app/views/remetric/events/index.html.erb +30 -0
  32. data/app/views/remetric/events/show.html.erb +7 -0
  33. data/app/views/remetric/trackables/_form.html.erb +17 -0
  34. data/app/views/remetric/trackables/_trackable.html.erb +7 -0
  35. data/app/views/remetric/trackables/edit.html.erb +6 -0
  36. data/app/views/remetric/trackables/index.html.erb +68 -0
  37. data/app/views/remetric/trackables/index.js.erb +3 -0
  38. data/app/views/remetric/trackables/new.html.erb +5 -0
  39. data/app/views/remetric/trackables/show.html.erb +7 -0
  40. data/config/routes.rb +12 -0
  41. data/db/migrate/20140412130825_create_remetric_people.rb +8 -0
  42. data/db/migrate/20140412174234_create_remetric_trackables.rb +8 -0
  43. data/lib/remetric.rb +6 -45
  44. data/lib/remetric/engine.rb +17 -0
  45. data/lib/remetric/version.rb +2 -2
  46. data/lib/tasks/remetric_tasks.rake +4 -0
  47. data/test/dummy/README.rdoc +28 -0
  48. data/test/dummy/Rakefile +6 -0
  49. data/test/dummy/app/assets/javascripts/application.js +13 -0
  50. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  51. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  52. data/test/dummy/app/controllers/application_controller.rb +5 -0
  53. data/test/dummy/app/helpers/application_helper.rb +2 -0
  54. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  55. data/test/dummy/bin/bundle +3 -0
  56. data/test/dummy/bin/rails +4 -0
  57. data/test/dummy/bin/rake +4 -0
  58. data/test/dummy/config.ru +4 -0
  59. data/test/dummy/config/application.rb +23 -0
  60. data/test/dummy/config/boot.rb +5 -0
  61. data/test/dummy/config/database.yml +24 -0
  62. data/test/dummy/config/environment.rb +5 -0
  63. data/test/dummy/config/environments/development.rb +34 -0
  64. data/test/dummy/config/environments/production.rb +80 -0
  65. data/test/dummy/config/environments/test.rb +39 -0
  66. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  67. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  68. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  69. data/test/dummy/config/initializers/inflections.rb +16 -0
  70. data/test/dummy/config/initializers/mime_types.rb +4 -0
  71. data/test/dummy/config/initializers/remetric.rb +15 -0
  72. data/test/dummy/config/initializers/session_store.rb +3 -0
  73. data/test/dummy/config/initializers/wrap_parameters.rb +9 -0
  74. data/test/dummy/config/locales/en.yml +23 -0
  75. data/test/dummy/config/mongoid.yml +69 -0
  76. data/test/dummy/config/routes.rb +4 -0
  77. data/test/dummy/config/secrets.yml +22 -0
  78. data/test/dummy/db/schema.rb +20 -0
  79. data/test/dummy/log/development.log +77955 -0
  80. data/test/dummy/log/test.log +467 -0
  81. data/test/dummy/public/404.html +67 -0
  82. data/test/dummy/public/422.html +67 -0
  83. data/test/dummy/public/500.html +66 -0
  84. data/test/dummy/public/favicon.ico +0 -0
  85. data/test/dummy/tmp/cache/assets/development/sass/b3d404bff8ad98818c7006bbb375fc1377b98253/app.css.scssc +0 -0
  86. data/test/dummy/tmp/cache/assets/development/sass/b3d404bff8ad98818c7006bbb375fc1377b98253/dialog.css.scssc +0 -0
  87. data/test/dummy/tmp/cache/assets/development/sass/b3d404bff8ad98818c7006bbb375fc1377b98253/nav.css.scssc +0 -0
  88. data/test/dummy/tmp/cache/assets/development/sass/b3d404bff8ad98818c7006bbb375fc1377b98253/search.css.scssc +0 -0
  89. data/test/dummy/tmp/cache/assets/development/sass/b3d404bff8ad98818c7006bbb375fc1377b98253/tables.css.scssc +0 -0
  90. data/test/dummy/tmp/cache/assets/development/sass/b3d404bff8ad98818c7006bbb375fc1377b98253/topbar.css.scssc +0 -0
  91. data/test/dummy/tmp/cache/assets/development/sass/ef6ae779781469a1465ad72c03c0938d2b0957c7/app.css.scssc +0 -0
  92. data/test/dummy/tmp/cache/assets/development/sass/ef6ae779781469a1465ad72c03c0938d2b0957c7/nav.css.scssc +0 -0
  93. data/test/dummy/tmp/cache/assets/development/sass/ef6ae779781469a1465ad72c03c0938d2b0957c7/tables.css.scssc +0 -0
  94. data/test/dummy/tmp/cache/assets/development/sprockets/036811149d0b235dc6a5d390b4cb7798 +0 -0
  95. data/test/dummy/tmp/cache/assets/development/sprockets/06044aa6fe90933931b87690cac756bb +0 -0
  96. data/test/dummy/tmp/cache/assets/development/sprockets/06523dcd5742577ca664780dccd6580d +0 -0
  97. data/test/dummy/tmp/cache/assets/development/sprockets/06cc1493872f7a7a686e7ceb15dc1edf +0 -0
  98. data/test/dummy/tmp/cache/assets/development/sprockets/08489a22fa3cea1f692673a79aeccc4d +0 -0
  99. data/test/dummy/tmp/cache/assets/development/sprockets/0d0cd4d3626b8b7af859b848bb261b3b +0 -0
  100. data/test/dummy/tmp/cache/assets/development/sprockets/0ff64eb5301cc3a431a373318ef77ba9 +0 -0
  101. data/test/dummy/tmp/cache/assets/development/sprockets/10777ee134d29c9933492eeb5f6a9a2e +0 -0
  102. data/test/dummy/tmp/cache/assets/development/sprockets/11a53c34e9d924ddcee8311e550e2a6a +0 -0
  103. data/test/dummy/tmp/cache/assets/development/sprockets/129284b0ab310e7cd9e25d84f9ee36ce +0 -0
  104. data/test/dummy/tmp/cache/assets/development/sprockets/14ff5f14de79dc5534dda36eed0dc845 +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sprockets/16bc847779945aa181449f07c9100ce4 +0 -0
  106. data/test/dummy/tmp/cache/assets/development/sprockets/1bc5ddb997a9674aa1ecf3596bcdea3b +0 -0
  107. data/test/dummy/tmp/cache/assets/development/sprockets/1f7d448c7dd65aed702d885795263877 +0 -0
  108. data/test/dummy/tmp/cache/assets/development/sprockets/220d17e65184e9dc17578233e30285fc +0 -0
  109. data/test/dummy/tmp/cache/assets/development/sprockets/22359219f7d258ed678aa744625a1ff7 +0 -0
  110. data/test/dummy/tmp/cache/assets/development/sprockets/23666533c8ff01f445bafdb2f1f02f86 +0 -0
  111. data/test/dummy/tmp/cache/assets/development/sprockets/27aa9a37df2520f26820676eed4f3700 +0 -0
  112. data/test/dummy/tmp/cache/assets/development/sprockets/281c6ce161cccf80f16cdb17ab4418cd +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sprockets/29cf8dc04f0a517a0942324f7b779454 +0 -0
  114. data/test/dummy/tmp/cache/assets/development/sprockets/2c11af377df23e6b6cdb35d040ce2e11 +0 -0
  115. data/test/dummy/tmp/cache/assets/development/sprockets/2ca8c93fa70493848ec54ace98c8a74e +0 -0
  116. data/test/dummy/tmp/cache/assets/development/sprockets/2d61509baca84dc502058ddd3248ec90 +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sprockets/2d6d573978d9d81e29432df0ea46d478 +0 -0
  118. data/test/dummy/tmp/cache/assets/development/sprockets/317da10b37ae905e1542a67d23559e69 +0 -0
  119. data/test/dummy/tmp/cache/assets/development/sprockets/32415ecae858572a5f3f19657e9fb686 +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sprockets/396258e541c9223b9e7125c90bb3858b +0 -0
  121. data/test/dummy/tmp/cache/assets/development/sprockets/399fe27d4c9f18008f13282aebe13bce +0 -0
  122. data/test/dummy/tmp/cache/assets/development/sprockets/39f8aac6fdfbd8e63ad64acfff6f11f6 +0 -0
  123. data/test/dummy/tmp/cache/assets/development/sprockets/3b016f440de7952117708d55661662d6 +0 -0
  124. data/test/dummy/tmp/cache/assets/development/sprockets/3ca240f453c6ec94f2e9c5a27d7001f8 +0 -0
  125. data/test/dummy/tmp/cache/assets/development/sprockets/3e5365e32d57e4ac856f716b1cd3459e +0 -0
  126. data/test/dummy/tmp/cache/assets/development/sprockets/3f9ed1aa1e459fc046192c14ed163a6c +0 -0
  127. data/test/dummy/tmp/cache/assets/development/sprockets/41444136ce4142d1170281f949577191 +0 -0
  128. data/test/dummy/tmp/cache/assets/development/sprockets/42c1ebcb98209b8dd066f44a6f6e91a4 +0 -0
  129. data/test/dummy/tmp/cache/assets/development/sprockets/43a4bb43dd1715ec2eb67640a4988b50 +0 -0
  130. data/test/dummy/tmp/cache/assets/development/sprockets/45e79781056c40dc5cb1ed347f77706f +0 -0
  131. data/test/dummy/tmp/cache/assets/development/sprockets/507aa6d1fad718f18dac9753b23c1134 +0 -0
  132. data/test/dummy/tmp/cache/assets/development/sprockets/53e9204c5b6f9c911b53e6e7094c70cf +0 -0
  133. data/test/dummy/tmp/cache/assets/development/sprockets/559c497c5bc5a3b0d6424b06c25fd993 +0 -0
  134. data/test/dummy/tmp/cache/assets/development/sprockets/5e0f4b04d24167f4992c12c5debd3d8c +0 -0
  135. data/test/dummy/tmp/cache/assets/development/sprockets/5ed4dfea5ce8c0191e138a49420dac41 +0 -0
  136. data/test/dummy/tmp/cache/assets/development/sprockets/61ae00e63e21dfb8ebec7b02b5dd422b +0 -0
  137. data/test/dummy/tmp/cache/assets/development/sprockets/6690911b74d6cd9a2551a8e7712f5ba4 +0 -0
  138. data/test/dummy/tmp/cache/assets/development/sprockets/698af75cb266cf67de8b35c5fbb87424 +0 -0
  139. data/test/dummy/tmp/cache/assets/development/sprockets/6d872803bfb95566f660e9798b3cc34c +0 -0
  140. data/test/dummy/tmp/cache/assets/development/sprockets/6e15f97a017c405492d9fc87477ad721 +0 -0
  141. data/test/dummy/tmp/cache/assets/development/sprockets/6e956f97a9713501d948b2d083a4a020 +0 -0
  142. data/test/dummy/tmp/cache/assets/development/sprockets/6febf106bc4ae38f75f0887d1592de37 +0 -0
  143. data/test/dummy/tmp/cache/assets/development/sprockets/702c0722c0c5b287d25a402f7ee117f0 +0 -0
  144. data/test/dummy/tmp/cache/assets/development/sprockets/7064b9323802e4196822328ae83e9628 +0 -0
  145. data/test/dummy/tmp/cache/assets/development/sprockets/71e500b75cfd9b76b02bf67e12b3c833 +0 -0
  146. data/test/dummy/tmp/cache/assets/development/sprockets/72419c0eb8026ff0ce7f259890db2503 +0 -0
  147. data/test/dummy/tmp/cache/assets/development/sprockets/724b47e2fc60f39379329a90781df725 +0 -0
  148. data/test/dummy/tmp/cache/assets/development/sprockets/726ba6daceacbfd72d591ee2b20f55d0 +0 -0
  149. data/test/dummy/tmp/cache/assets/development/sprockets/730529e519077e2969563e5e07f4fc00 +0 -0
  150. data/test/dummy/tmp/cache/assets/development/sprockets/741b2378e393e0588e5f82ab58a24082 +0 -0
  151. data/test/dummy/tmp/cache/assets/development/sprockets/76f4fb7efdd4f6c2acd738e55ea07d2f +0 -0
  152. data/test/dummy/tmp/cache/assets/development/sprockets/7a29d789acb5ef53d4dc3e9a2a6cc762 +0 -0
  153. data/test/dummy/tmp/cache/assets/development/sprockets/7b6dd538f069c113f1f9c8e76c9db372 +0 -0
  154. data/test/dummy/tmp/cache/assets/development/sprockets/808bfcd132560482630ba70dc6e282c8 +0 -0
  155. data/test/dummy/tmp/cache/assets/development/sprockets/8dfcdf65937789aca525d56adf1a4656 +0 -0
  156. data/test/dummy/tmp/cache/assets/development/sprockets/9093f4594b2a064c24fc65f610e92e29 +0 -0
  157. data/test/dummy/tmp/cache/assets/development/sprockets/94b993ea74b11163bd3bd728ae31d051 +0 -0
  158. data/test/dummy/tmp/cache/assets/development/sprockets/9538978dc1870cad6434d9c702a08d78 +0 -0
  159. data/test/dummy/tmp/cache/assets/development/sprockets/9b1a83d18767d300d400470a03bc4f7b +0 -0
  160. data/test/dummy/tmp/cache/assets/development/sprockets/9b4fb1df1100690f915b3c08dc3b6e12 +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sprockets/9fe904495c3e56e07f56a2234def4ce3 +0 -0
  162. data/test/dummy/tmp/cache/assets/development/sprockets/a095af3c7e60e112ec29d7629c8af830 +0 -0
  163. data/test/dummy/tmp/cache/assets/development/sprockets/a14ef177cbf5fcfae6e7eaac56e034b9 +0 -0
  164. data/test/dummy/tmp/cache/assets/development/sprockets/a31bbb879540ba0d456b98d902190384 +0 -0
  165. data/test/dummy/tmp/cache/assets/development/sprockets/a3e3e63eb8abde2bd1dd81e850cf80e1 +0 -0
  166. data/test/dummy/tmp/cache/assets/development/sprockets/a52f913105047ed83d060e708c394961 +0 -0
  167. data/test/dummy/tmp/cache/assets/development/sprockets/a776b0cf1650a70054f5da91283fecc4 +0 -0
  168. data/test/dummy/tmp/cache/assets/development/sprockets/b0785de9897c1eadef94fdaf024915f9 +0 -0
  169. data/test/dummy/tmp/cache/assets/development/sprockets/b49c711ecdbc2fff4f119705e2e53e4d +0 -0
  170. data/test/dummy/tmp/cache/assets/development/sprockets/bc613cfb0adcb20734431cf9b9d07141 +0 -0
  171. data/test/dummy/tmp/cache/assets/development/sprockets/bdae695e1d71988ce570d79394f0247e +0 -0
  172. data/test/dummy/tmp/cache/assets/development/sprockets/c195f58c840031e93dcf040048d5386b +0 -0
  173. data/test/dummy/tmp/cache/assets/development/sprockets/c2a902f3266b677f365fc3ce5a7bd820 +0 -0
  174. data/test/dummy/tmp/cache/assets/development/sprockets/c7bd9cf81453a7911957b783ec6ecf5c +0 -0
  175. data/test/dummy/tmp/cache/assets/development/sprockets/c8bb4469accab5fc441d923464873c47 +0 -0
  176. data/test/dummy/tmp/cache/assets/development/sprockets/c9ab7f296b30469ef9170c3ab336cdf4 +0 -0
  177. data/test/dummy/tmp/cache/assets/development/sprockets/c9bd5507d8142fbe02e5034485314999 +0 -0
  178. data/test/dummy/tmp/cache/assets/development/sprockets/cb13c3985fc61edc836f19c9fd5f9a01 +0 -0
  179. data/test/dummy/tmp/cache/assets/development/sprockets/cbf388d3208ecbd03a788db6891d2781 +0 -0
  180. data/test/dummy/tmp/cache/assets/development/sprockets/cc6c1b77f34a8e580980b31eb35b441b +0 -0
  181. data/test/dummy/tmp/cache/assets/development/sprockets/cc8e5fb7cbde151721ea55b7ad2d35dc +0 -0
  182. data/test/dummy/tmp/cache/assets/development/sprockets/cca380662516cb1daca88d3f2c9a3b9e +0 -0
  183. data/test/dummy/tmp/cache/assets/development/sprockets/d0796c18ca312aaa9f18fcf1091835a6 +0 -0
  184. data/test/dummy/tmp/cache/assets/development/sprockets/d15eb2bca16eb0f31c2089c5f397c5e2 +0 -0
  185. data/test/dummy/tmp/cache/assets/development/sprockets/da0a32f5a80c68a1464a23861b172ea8 +0 -0
  186. data/test/dummy/tmp/cache/assets/development/sprockets/db25052d96407ff539ebf9992cc5ba53 +0 -0
  187. data/test/dummy/tmp/cache/assets/development/sprockets/dbef3e25a00efadb8ebc056530ea9c77 +0 -0
  188. data/test/dummy/tmp/cache/assets/development/sprockets/dfdd2dcf54d51f737c704e8bb3d74997 +0 -0
  189. data/test/dummy/tmp/cache/assets/development/sprockets/e6ca11d406eb8e17f4bd3db3c73117d5 +0 -0
  190. data/test/dummy/tmp/cache/assets/development/sprockets/e8e21ae1f6a7630e209b12d622cb6581 +0 -0
  191. data/test/dummy/tmp/cache/assets/development/sprockets/ecdddb465b19971df1d705261890c12e +0 -0
  192. data/test/dummy/tmp/cache/assets/development/sprockets/eec9cdbbe1ffd8783ec43c910318e77a +0 -0
  193. data/test/dummy/tmp/cache/assets/development/sprockets/ef1ae4e5869278227bd877dc5b9c1ed1 +0 -0
  194. data/test/dummy/tmp/cache/assets/development/sprockets/ef55b424d975f62aa8ace6d8e6d1420b +0 -0
  195. data/test/dummy/tmp/cache/assets/development/sprockets/f58a02ac7bddf274a99d091aff62f179 +0 -0
  196. data/test/dummy/tmp/cache/assets/development/sprockets/f703d7f63b064f4c9363a37b6c8f7102 +0 -0
  197. data/test/dummy/tmp/cache/assets/development/sprockets/fa73f084d9c960b3822e9a670eddd6e9 +0 -0
  198. data/test/dummy/tmp/cache/assets/development/sprockets/fad64d3cc1d38839f623367e9e8bdab7 +0 -0
  199. data/test/dummy/tmp/cache/assets/development/sprockets/ff91cdc7d41ec915a2db3524da4c962f +0 -0
  200. data/test/fixtures/remetric/people.yml +11 -0
  201. data/test/fixtures/remetric/trackables.yml +11 -0
  202. data/test/models/remetric/event_test.rb +17 -0
  203. data/test/remetric_test.rb +7 -0
  204. data/test/test_helper.rb +15 -0
  205. metadata +464 -27
  206. data/.gitignore +0 -1
  207. data/Gemfile +0 -6
  208. data/README.md +0 -49
  209. data/remetric.gemspec +0 -23
@@ -0,0 +1 @@
1
+ Dashboard.
@@ -0,0 +1,8 @@
1
+ <ul>
2
+ <li><%= link_to "Delete All #{pluralize Remetric::Event.count, "Event"}", events_destroy_path(confirm: true), method: :delete, data: { confirm: "Are you sure you want to delete all #{pluralize Remetric::Event.count, "event"}?" } %></li>
3
+
4
+ <% @trackable_models.each do |model| %>
5
+ <% count = Remetric::Trackable.where(model: model).count %>
6
+ <li><%= link_to "Delete All #{pluralize count, model.pluralize.capitalize}", trackables_destroy_path(model.downcase.pluralize, confirm: true), method: :delete, data: { confirm: "Are you sure you want to delete all #{pluralize count, model.pluralize.capitalize}?" } %>
7
+ <% end %>
8
+ </ul>
@@ -0,0 +1,30 @@
1
+ <% if params[:description] %>
2
+ <h1><%= @descriptions[0][0] %></h1>
3
+ <%= link_to "<= Back", events_path %>
4
+ <% else %>
5
+ <h1>What's Going On?</h1>
6
+ <ol>
7
+ <% @descriptions.each do |description, events| %>
8
+ <li><%= link_to "#{pluralize events.count, "event"} - #{description}", events_path(description: description) %></li>
9
+ <% end %>
10
+ </ol>
11
+ <% end %>
12
+
13
+ <table>
14
+ <thead>
15
+ <tr>
16
+ <th colspan="2"></th>
17
+ </tr>
18
+ </thead>
19
+
20
+ <tbody>
21
+ <% @events.each do |event| %>
22
+ <tr>
23
+ <td><%= event.linked_story.html_safe %></td>
24
+ <td style="display: none; "><%= event.to_json %></td>
25
+ </tr>
26
+ <% end %>
27
+ </tbody>
28
+ </table>
29
+
30
+ <% Remetric.track contact: { id: 1228, name: "Ready" }, organization: { id: "swell", name: "Swell Productions" }, adescription: "{{ contact.name }} from {{ organization.name }} laughs." %>
@@ -0,0 +1,7 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <h1><%= @event.story %></h1>
4
+
5
+ <p><%= @event.to_json %></p>
6
+
7
+ <%= link_to 'Back', events_path %>
@@ -0,0 +1,17 @@
1
+ <%= form_for(@trackable) do |f| %>
2
+ <% if @trackable.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(@trackable.errors.count, "error") %> prohibited this trackable from being saved:</h2>
5
+
6
+ <ul>
7
+ <% @trackable.errors.full_messages.each do |message| %>
8
+ <li><%= message %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="actions">
15
+ <%= f.submit %>
16
+ </div>
17
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <tr>
2
+ <td><%= check_box_tag "trackable_#{trackable.id}", trackable.id, nil, class: "trackable_checkbox" %></td>
3
+
4
+ <% @cols.each do |c| %>
5
+ <td><%= link_to trackable.data[c].to_s, trackable_path(trackable.model.pluralize, trackable.key) %></td>
6
+ <% end %>
7
+ </tr>
@@ -0,0 +1,6 @@
1
+ <h1>Editing trackable</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Show', @trackable %> |
6
+ <%= link_to 'Back', trackables_path %>
@@ -0,0 +1,68 @@
1
+ <h1><%= @model.capitalize.pluralize %></h1>
2
+
3
+ <ul class="nav">
4
+ <!--<li><%= link_to "Saved Searches", "#", class: "open_dialog", data: { dialog: "search_dialog" } %></li>
5
+ <li><%= link_to "Advanced Search", "#", class: "open_dialog", data: { dialog: "search_dialog" } %></li>-->
6
+
7
+
8
+ <% if @cols.include? "email" %>
9
+ <!--<li><%= link_to "Send Message", "#", class: "open_send_message" %></li>-->
10
+ <% end %>
11
+ </ul>
12
+
13
+ <%= form_tag request.path, method: :get, remote: true, id: "quick_search" do %>
14
+ <%= text_field_tag :q, @q, placeholder: "Quick Search...", autocomplete: :off %>
15
+ <%= button_tag "<p class=\"no_loading\">&rarr;</p><p class=\"loading\">I</p>".html_safe, value: "quick" %>
16
+ <% end %>
17
+
18
+ <%= form_tag "search", id: "search" do %>
19
+ I want to see everyone with:
20
+ <table>
21
+ <tbody>
22
+ <tr>
23
+ <td><%= select_tag :field, options_for_select(@cols.map(&:capitalize)) %></td>
24
+ <td><%= select_tag :matcher, options_for_select(Remetric::Trackable.matchers) %></td>
25
+ <td><%= text_field_tag :q %></td>
26
+ <td><%= link_to "x", "#" %></td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ <%= link_to "+ Add Row", "#" %>
31
+ <p>31 Results</p>
32
+ <%= button_tag "Save result" %>
33
+ <%= button_tag "Reset" %>
34
+ <%= button_tag "Search" %>
35
+ <% end %>
36
+
37
+ <table id="trackables" class="table">
38
+ <thead>
39
+ <tr>
40
+ <th style="width: 20px; "></th>
41
+
42
+ <% @cols.each do |c| %>
43
+ <th><%= c.capitalize %></th>
44
+ <% end %>
45
+ </tr>
46
+ </thead>
47
+
48
+ <tbody>
49
+ <%= render @trackables %>
50
+ </tbody>
51
+ </table>
52
+
53
+ <div id="send_message" class="dialog">
54
+ <%= link_to "x", "#", class: "close close_dialog" %>
55
+ <h1>Compose A Message</h1>
56
+
57
+ <%= form_tag "message", id: "new_message" do %>
58
+ <%= label_tag :to %>
59
+ <%= text_field_tag :to, "3 Contacts", readonly: true %>
60
+ <%= text_area_tag :message_trackable_ids %>
61
+
62
+ <%= label_tag :subject %>
63
+ <%= text_field_tag :subject %>
64
+
65
+ <%= text_area_tag :body, nil, id: "message_body" %>
66
+ <%= button_tag "Send Message &nbsp; >".html_safe %>
67
+ <% end %>
68
+ </div>
@@ -0,0 +1,3 @@
1
+ $("#trackables tbody").html("<%= j render @trackables %>")
2
+ $(".loading").hide()
3
+ $(".no_loading").show()
@@ -0,0 +1,5 @@
1
+ <h1>New trackable</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Back', trackables_path %>
@@ -0,0 +1,7 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <h1><%= @trackable.key %></h1>
4
+
5
+ <p><%= @trackable.data.to_json %></p>
6
+
7
+ <%= link_to 'Back', :back %>
data/config/routes.rb ADDED
@@ -0,0 +1,12 @@
1
+ Remetric::Engine.routes.draw do
2
+
3
+ resources :events
4
+ delete '/events' => 'events#destroy', as: :events_destroy
5
+ get '/settings' => 'dashboard#settings', as: :settings
6
+
7
+ delete '/:collection' => 'trackables#destroy', as: :trackables_destroy
8
+ get '/:collection' => 'trackables#index', as: :trackables
9
+ get '/:collection/:key' => 'trackables#show', as: :trackable
10
+
11
+ root to: 'dashboard#index'
12
+ end
@@ -0,0 +1,8 @@
1
+ class CreateRemetricPeople < ActiveRecord::Migration
2
+ def change
3
+ create_table :remetric_people do |t|
4
+
5
+ t.timestamps
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class CreateRemetricTrackables < ActiveRecord::Migration
2
+ def change
3
+ create_table :remetric_trackables do |t|
4
+
5
+ t.timestamps
6
+ end
7
+ end
8
+ end
data/lib/remetric.rb CHANGED
@@ -1,48 +1,9 @@
1
- require "remetric/version"
2
- require "base64"
3
- require "json"
4
- require "rest_client"
1
+ require "mongoid"
2
+ require "jquery-rails"
3
+ require "liquid"
4
+ require "turbolinks"
5
5
 
6
- class Remetric
7
- def initialize api_key, sandbox = false
8
- @rm_api_key = api_key
9
- @rm_sandbox = sandbox
10
- end
6
+ require "remetric/engine"
11
7
 
12
- def api_key
13
- @rm_api_key
14
- end
15
-
16
- def track data = {}
17
- begin
18
- RestClient.post "#{endpoint}/events.json", {
19
- remetric_api_key: api_key,
20
- event: data
21
- }
22
- rescue
23
- { errors: "You are unauthorized." }
24
- end
25
- end
26
-
27
- def img data = {}
28
- base64 = to_base64 data
29
- src = "#{endpoint}/events/img/#{base64}";
30
- img = "<img src=\"#{src}\" style=\"display: none; \">";
31
- img
32
- end
33
-
34
- def redirect data = {}
35
- base64 = to_base64 data
36
- href = "#{endpoint}/events/redirect/#{base64}";
37
- href
38
- end
39
-
40
- def to_base64 data = {}
41
- data["remetric_api_key"] = api_key
42
- URI.escape Base64.encode64(JSON.generate(data))
43
- end
44
-
45
- def endpoint
46
- @rm_sandbox ? "http://localhost:3000" : "https://secure.remetric.com"
47
- end
8
+ module Remetric
48
9
  end
@@ -0,0 +1,17 @@
1
+ module Remetric
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Remetric
4
+ end
5
+
6
+ def self.config(&block)
7
+ @@config ||= Remetric::Engine::Configuration.new
8
+ yield @@config if block
9
+ return @@config
10
+ end
11
+
12
+ def self.track data = {}
13
+ Thread.new {
14
+ Event.create data
15
+ }
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
- class Remetric
2
- VERSION = "0.0.2"
1
+ module Remetric
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :remetric do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,28 @@
1
+ == README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
25
+
26
+
27
+ Please feel free to use a different markup language if you do not plan to run
28
+ <tt>rake doc:app</tt>.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any styles
10
+ * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
+ * file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,56 @@
1
+ body { background-color: #fff; color: #333; }
2
+
3
+ body, p, ol, ul, td {
4
+ font-family: verdana, arial, helvetica, sans-serif;
5
+ font-size: 13px;
6
+ line-height: 18px;
7
+ }
8
+
9
+ pre {
10
+ background-color: #eee;
11
+ padding: 10px;
12
+ font-size: 11px;
13
+ }
14
+
15
+ a { color: #000; }
16
+ a:visited { color: #666; }
17
+ a:hover { color: #fff; background-color:#000; }
18
+
19
+ div.field, div.actions {
20
+ margin-bottom: 10px;
21
+ }
22
+
23
+ #notice {
24
+ color: green;
25
+ }
26
+
27
+ .field_with_errors {
28
+ padding: 2px;
29
+ background-color: red;
30
+ display: table;
31
+ }
32
+
33
+ #error_explanation {
34
+ width: 450px;
35
+ border: 2px solid red;
36
+ padding: 7px;
37
+ padding-bottom: 0;
38
+ margin-bottom: 20px;
39
+ background-color: #f0f0f0;
40
+ }
41
+
42
+ #error_explanation h2 {
43
+ text-align: left;
44
+ font-weight: bold;
45
+ padding: 5px 5px 5px 15px;
46
+ font-size: 12px;
47
+ margin: -7px;
48
+ margin-bottom: 0px;
49
+ background-color: #c00;
50
+ color: #fff;
51
+ }
52
+
53
+ #error_explanation ul li {
54
+ font-size: 12px;
55
+ list-style: square;
56
+ }
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
+ <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>