shell-spinner 1.0.1 → 1.0.2

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 (476) hide show
  1. data/.gitignore +22 -4
  2. data/.rspec +1 -0
  3. data/.rvmrc +53 -0
  4. data/Gemfile +90 -3
  5. data/Gemfile.lock +479 -0
  6. data/README.md +56 -0
  7. data/Rakefile +7 -1
  8. data/app/admin/carriers.rb +17 -0
  9. data/app/admin/dashboards.rb +31 -0
  10. data/app/admin/interviews.rb +77 -0
  11. data/app/admin/users.rb +40 -0
  12. data/app/assets/images/icons/ajax-loader.gif +0 -0
  13. data/app/assets/images/icons/clear-results.png +0 -0
  14. data/app/assets/images/icons/clipboard.png +0 -0
  15. data/app/assets/images/icons/magnify.png +0 -0
  16. data/app/assets/images/icons/social/facebook.png +0 -0
  17. data/app/assets/images/icons/social/google.png +0 -0
  18. data/app/assets/images/icons/social/linkedin.png +0 -0
  19. data/app/assets/images/icons/social/small/facebook.png +0 -0
  20. data/app/assets/images/icons/social/small/google.png +0 -0
  21. data/app/assets/images/icons/social/small/linkedin.png +0 -0
  22. data/app/assets/images/icons/social/small/twitter.png +0 -0
  23. data/app/assets/images/icons/social/small/windowslive.png +0 -0
  24. data/app/assets/images/icons/social/small/yahoo.png +0 -0
  25. data/app/assets/images/icons/social/twitter.png +0 -0
  26. data/app/assets/images/icons/social/windowslive.png +0 -0
  27. data/app/assets/images/icons/social/yahoo.png +0 -0
  28. data/app/assets/images/logo.png +0 -0
  29. data/app/assets/javascripts/active_admin.js.coffee +18 -0
  30. data/app/assets/javascripts/admin/base.coffee +0 -0
  31. data/app/assets/javascripts/admin/interview_form.coffee +95 -0
  32. data/app/assets/javascripts/app/controllers/questions.js.coffee +12 -0
  33. data/app/assets/javascripts/app/index.js.coffee +25 -0
  34. data/app/assets/javascripts/app/lib/view.js.coffee +3 -0
  35. data/app/assets/javascripts/app/models/interview_template.js.coffee +6 -0
  36. data/app/assets/javascripts/app/models/question.js.coffee +6 -0
  37. data/app/assets/javascripts/app/views/questions/show.jst.hamljs +2 -0
  38. data/app/assets/javascripts/application.coffee +48 -0
  39. data/app/assets/javascripts/attachment_form.coffee +31 -0
  40. data/app/assets/javascripts/clipboard_control.coffee +30 -0
  41. data/app/assets/javascripts/invitation_form.coffee +72 -0
  42. data/app/assets/javascripts/recommendation_form.coffee +19 -0
  43. data/app/assets/javascripts/recommendations_list.coffee +11 -0
  44. data/app/assets/javascripts/search_contacts_form.coffee +36 -0
  45. data/app/assets/javascripts/templates/empty_recipients_list.tmpl +1 -0
  46. data/app/assets/javascripts/templates/recipient.tmpl +5 -0
  47. data/app/assets/stylesheets/active_admin.css.scss +28 -0
  48. data/app/assets/stylesheets/application.sass +24 -0
  49. data/app/assets/stylesheets/includes/_authorisation.sass +29 -0
  50. data/app/assets/stylesheets/includes/_bootstrap_tweaks.sass +2 -0
  51. data/app/assets/stylesheets/includes/_campaigns.sass +44 -0
  52. data/app/assets/stylesheets/includes/_controls.sass +41 -0
  53. data/app/assets/stylesheets/includes/_form.sass +23 -0
  54. data/app/assets/stylesheets/includes/_formatting.sass +8 -0
  55. data/app/assets/stylesheets/includes/_icons.sass +31 -0
  56. data/app/assets/stylesheets/includes/_interview.sass +16 -0
  57. data/app/assets/stylesheets/includes/_interview_form.sass +170 -0
  58. data/app/assets/stylesheets/includes/_interview_management.sass +3 -0
  59. data/app/assets/stylesheets/includes/_invitation_form.sass +190 -0
  60. data/app/assets/stylesheets/includes/_layout.sass +69 -0
  61. data/app/assets/stylesheets/includes/_mixins.sass +42 -0
  62. data/app/assets/stylesheets/includes/_navigation.sass +16 -0
  63. data/app/assets/stylesheets/includes/_recommendations.sass +34 -0
  64. data/app/concerns/authenticate_users.rb +72 -0
  65. data/app/concerns/conditional_redirect_after_signing_in.rb +24 -0
  66. data/app/concerns/eventable.rb +16 -0
  67. data/app/controllers/application_controller.rb +31 -0
  68. data/app/controllers/attachments_controller.rb +36 -0
  69. data/app/controllers/campaigns_controller.rb +23 -0
  70. data/app/controllers/contacts_controller.rb +37 -0
  71. data/app/controllers/interview_result_invitations_controller.rb +21 -0
  72. data/app/controllers/interview_results_controller.rb +39 -0
  73. data/app/controllers/interview_templates_controller.rb +3 -0
  74. data/app/controllers/pages_controller.rb +6 -0
  75. data/app/controllers/questions_controller.rb +5 -0
  76. data/app/controllers/recommendations_controller.rb +64 -0
  77. data/app/controllers/resources_controller.rb +1 -0
  78. data/app/controllers/users/omniauth_callbacks_controller.rb +52 -0
  79. data/app/helpers/admin/interview_helper.rb +14 -0
  80. data/app/helpers/answers_helper.rb +8 -0
  81. data/app/helpers/application_helper.rb +1 -0
  82. data/app/helpers/attachments_helper.rb +5 -0
  83. data/app/helpers/campaigns_helper.rb +5 -0
  84. data/app/helpers/layout_helper.rb +5 -0
  85. data/app/helpers/recommendation_helper.rb +14 -0
  86. data/app/mailers/invitation_mailer.rb +13 -0
  87. data/app/models/ability.rb +23 -0
  88. data/app/models/answer.rb +36 -0
  89. data/app/models/answer_choice.rb +28 -0
  90. data/app/models/attachment.rb +34 -0
  91. data/app/models/buying_attempt.rb +31 -0
  92. data/app/models/campaign.rb +37 -0
  93. data/app/models/carrier.rb +30 -0
  94. data/app/models/cell_phone_insurance_interview.rb +17 -0
  95. data/app/models/contact.rb +31 -0
  96. data/app/models/default_interview.rb +17 -0
  97. data/app/models/interesting_fact.rb +30 -0
  98. data/app/models/interview_result.rb +65 -0
  99. data/app/models/interview_template.rb +52 -0
  100. data/app/models/invitation.rb +45 -0
  101. data/app/models/invitation_identifier.rb +29 -0
  102. data/app/models/numeric_question.rb +19 -0
  103. data/app/models/one_correct_question.rb +27 -0
  104. data/app/models/possible_answer.rb +54 -0
  105. data/app/models/question.rb +96 -0
  106. data/app/models/recommendation.rb +27 -0
  107. data/app/models/scale_question.rb +42 -0
  108. data/app/models/user.rb +102 -0
  109. data/app/models/yes_no_question.rb +18 -0
  110. data/app/renderers/nav_links_renderer.rb +10 -0
  111. data/app/uploaders/attachement_uploader.rb +55 -0
  112. data/app/uploaders/file_uploader.rb +20 -0
  113. data/app/views/admin/interviews/_form.html.haml +36 -0
  114. data/app/views/admin/interviews/_possible_answer_fields.html.haml +6 -0
  115. data/app/views/admin/interviews/_question_fields.html.haml +28 -0
  116. data/app/views/admin/interviews/_wrapper_question_fields.html.haml +2 -0
  117. data/app/views/admin/interviews/numeric_question/_fields.html.haml +7 -0
  118. data/app/views/admin/interviews/one_correct_question/_answer_fields.html.haml +6 -0
  119. data/app/views/admin/interviews/one_correct_question/_fields.html.haml +18 -0
  120. data/app/views/admin/interviews/scale_question/_fields.html.haml +7 -0
  121. data/app/views/admin/interviews/scale_question/_start_end_values.html.haml +6 -0
  122. data/app/views/admin/interviews/yes_no_question/_fields.html.haml +3 -0
  123. data/app/views/attachments/_form.html.haml +5 -0
  124. data/app/views/attachments/_interesting_facts.html.haml +11 -0
  125. data/app/views/attachments/_resource.html.haml +13 -0
  126. data/app/views/attachments/buttons/_delete.html.haml +3 -0
  127. data/app/views/attachments/index.html.haml +28 -0
  128. data/app/views/attachments/new.html.haml +1 -0
  129. data/app/views/attachments/show.html.haml +1 -0
  130. data/app/views/campaigns/_form.html.haml +7 -0
  131. data/app/views/campaigns/_form_actions.html.haml +4 -0
  132. data/app/views/campaigns/edit.html.haml +7 -0
  133. data/app/views/campaigns/index.html.haml +14 -0
  134. data/app/views/campaigns/new.html.haml +7 -0
  135. data/app/views/campaigns/show.html.haml +15 -0
  136. data/app/views/contacts/_list.html.haml +17 -0
  137. data/app/views/contacts/_table.html.haml +8 -0
  138. data/app/views/contacts/search.html.haml +1 -0
  139. data/app/views/interesting_facts/_fact.html.haml +4 -0
  140. data/app/views/interview_result_invitations/new.html.haml +29 -0
  141. data/app/views/interview_results/_answer_choice.html.haml +11 -0
  142. data/app/views/interview_results/_form.html.haml +16 -0
  143. data/app/views/interview_results/_list.html.haml +3 -0
  144. data/app/views/interview_results/_numeric_question.html.haml +3 -0
  145. data/app/views/interview_results/_one_correct_question.html.haml +3 -0
  146. data/app/views/interview_results/_scale_question.html.haml +6 -0
  147. data/app/views/interview_results/_yes_no_question.html.haml +6 -0
  148. data/app/views/interview_results/index.html.haml +2 -0
  149. data/app/views/interview_results/new.html.haml +4 -0
  150. data/app/views/interview_results/numeric/_price.html.haml +2 -0
  151. data/app/views/interview_results/numeric/_simple_number.html.haml +2 -0
  152. data/app/views/interview_results/one_correct/_dropdown.html.haml +1 -0
  153. data/app/views/interview_results/one_correct/_radio.html.haml +2 -0
  154. data/app/views/interview_results/one_correct/_slider.html.haml +2 -0
  155. data/app/views/interview_results/show.html.haml +24 -0
  156. data/app/views/interview_templates/index.json.rabl +6 -0
  157. data/app/views/interview_templates/show.html.haml +1 -0
  158. data/app/views/layouts/_footer.haml +9 -0
  159. data/app/views/layouts/_header.haml +21 -0
  160. data/app/views/layouts/application.html.haml +29 -0
  161. data/app/views/pages/home.html.haml +10 -0
  162. data/app/views/questions/show.json.rabl +2 -0
  163. data/app/views/recommendations/new.html.haml +19 -0
  164. data/app/views/shared/_ask_facebook_friends.html.haml +11 -0
  165. data/app/views/shared/_ask_twitter_followers.html.haml +13 -0
  166. data/app/views/shared/_conditional_html_tags.html.haml +8 -0
  167. data/app/views/shared/_errors.html.haml +2 -0
  168. data/app/views/shared/_friends_recommendations.html.haml +12 -0
  169. data/app/views/shared/_import_contacts_links.html.haml +10 -0
  170. data/app/views/shared/_interview_widget.html.haml +1 -0
  171. data/app/views/shared/_login_social_buttons.html.haml +19 -0
  172. data/app/views/shared/_sign_in_modal.html.haml +22 -0
  173. data/app/views/shared/buttons/_create.html.haml +3 -0
  174. data/app/views/shared/buttons/_delete.html.haml +3 -0
  175. data/app/views/shared/buttons/_edit.html.haml +3 -0
  176. data/app/views/users/confirmations/new.html.haml +11 -0
  177. data/app/views/users/mailer/confirmation_instructions.html.haml +4 -0
  178. data/app/views/users/mailer/reset_password_instructions.html.haml +6 -0
  179. data/app/views/users/mailer/unlock_instructions.html.haml +5 -0
  180. data/app/views/users/passwords/edit.html.haml +16 -0
  181. data/app/views/users/passwords/new.html.haml +9 -0
  182. data/app/views/users/registrations/edit.html.haml +27 -0
  183. data/app/views/users/registrations/new.html.haml +17 -0
  184. data/app/views/users/sessions/new.html.haml +14 -0
  185. data/app/views/users/shared/_links.haml +14 -0
  186. data/app/views/users/unlocks/new.html.haml +11 -0
  187. data/config.ru +4 -0
  188. data/config/application.rb +86 -0
  189. data/config/boot.rb +6 -0
  190. data/config/bottom_navigation.rb +13 -0
  191. data/config/cucumber.yml +8 -0
  192. data/config/database.yml +20 -0
  193. data/config/environment.rb +5 -0
  194. data/config/environments/development.rb +38 -0
  195. data/config/environments/production.rb +71 -0
  196. data/config/environments/test.rb +39 -0
  197. data/config/exceptional.yml +7 -0
  198. data/config/initializers/active_admin.rb +129 -0
  199. data/config/initializers/backtrace_silencers.rb +7 -0
  200. data/config/initializers/contacts_monkey_patch.rb +8 -0
  201. data/config/initializers/core_extensions.rb +1 -0
  202. data/config/initializers/delayed_job_config.rb +6 -0
  203. data/config/initializers/devise.rb +236 -0
  204. data/config/initializers/formtastic.rb +1 -0
  205. data/config/initializers/generators.rb +2 -0
  206. data/config/initializers/inflections.rb +15 -0
  207. data/config/initializers/mime_types.rb +5 -0
  208. data/config/initializers/net_ssl_monkey_patch.rb +22 -0
  209. data/config/initializers/secret_token.rb +7 -0
  210. data/config/initializers/session_store.rb +8 -0
  211. data/config/initializers/settings.rb +20 -0
  212. data/config/initializers/setup_mailer.rb +1 -0
  213. data/config/initializers/wrap_parameters.rb +14 -0
  214. data/config/locales/devise.en.yml +57 -0
  215. data/config/locales/en.yml +131 -0
  216. data/config/navigation.rb +25 -0
  217. data/config/omniauth.yml +54 -0
  218. data/config/routes.rb +41 -0
  219. data/config/sendgrid.yml +18 -0
  220. data/config/sendgrid.yml.example +18 -0
  221. data/config/top_navigation.rb +28 -0
  222. data/data/.gitkeep +0 -0
  223. data/db/migrate/20120615102902_create_users.rb +10 -0
  224. data/db/migrate/20120615103611_add_devise_to_users.rb +53 -0
  225. data/db/migrate/20120615104044_add_facebook_id_to_users.rb +5 -0
  226. data/db/migrate/20120618051144_add_twitter_id_to_users.rb +5 -0
  227. data/db/migrate/20120618051522_add_google_id_to_users.rb +5 -0
  228. data/db/migrate/20120618083140_add_linkedin_id_to_users.rb +5 -0
  229. data/db/migrate/20120618094240_add_yahoo_id_to_users.rb +5 -0
  230. data/db/migrate/20120618102303_add_windowslive_id_to_users.rb +5 -0
  231. data/db/migrate/20120618121959_create_survey_templates.rb +9 -0
  232. data/db/migrate/20120618122120_create_survey_results.rb +10 -0
  233. data/db/migrate/20120618122346_create_questions.rb +12 -0
  234. data/db/migrate/20120618122442_create_answers.rb +11 -0
  235. data/db/migrate/20120618122551_create_question_results.rb +10 -0
  236. data/db/migrate/20120618123137_create_question_choices.rb +10 -0
  237. data/db/migrate/20120619142239_create_admin_notes.rb +17 -0
  238. data/db/migrate/20120619142255_move_admin_notes_to_comments.rb +25 -0
  239. data/db/migrate/20120619142315_add_fields_to_survey_template.rb +6 -0
  240. data/db/migrate/20120621124117_add_role_to_users.rb +5 -0
  241. data/db/migrate/20120625115344_rename_surveys_to_interviews.rb +5 -0
  242. data/db/migrate/20120625120613_rename_survey_relation_field.rb +7 -0
  243. data/db/migrate/20120625121230_rename_survey_results_to_interview_results.rb +5 -0
  244. data/db/migrate/20120625134119_add_type_field_to_interview_templates.rb +5 -0
  245. data/db/migrate/20120627104823_add_display_as_field_to_question.rb +5 -0
  246. data/db/migrate/20120628115724_rename_question_choices_to_answer_choices.rb +5 -0
  247. data/db/migrate/20120628124041_rename_answers_to_possible_answers.rb +5 -0
  248. data/db/migrate/20120628125515_rename_question_results_to_answers.rb +5 -0
  249. data/db/migrate/20120628125728_rename_questions_body_to_text.rb +5 -0
  250. data/db/migrate/20120628125839_rename_possible_answers_body_to_text.rb +5 -0
  251. data/db/migrate/20120628131944_fix_answer_choice_fields.rb +6 -0
  252. data/db/migrate/20120704144442_add_text_to_answer_choices.rb +5 -0
  253. data/db/migrate/20120706065743_add_body_from3rd_point_view_to_possible_answers.rb +5 -0
  254. data/db/migrate/20120706125136_change_facebook_id_and_twitter_id_type.rb +11 -0
  255. data/db/migrate/20120710070940_create_invitations.rb +10 -0
  256. data/db/migrate/20120710105054_create_delayed_jobs.rb +22 -0
  257. data/db/migrate/20120711084512_create_recommendations.rb +14 -0
  258. data/db/migrate/20120712092224_create_invitation_identifiers.rb +8 -0
  259. data/db/migrate/20120712130638_remove_user_id_from_recommendations.rb +9 -0
  260. data/db/migrate/20120712130711_remove_interview_template_id_from_recommendations.rb +9 -0
  261. data/db/migrate/20120712130744_add_invitation_id_to_recommendations.rb +5 -0
  262. data/db/migrate/20120716113646_create_contacts.rb +12 -0
  263. data/db/migrate/20120718135613_add_secret_to_interview_results.rb +5 -0
  264. data/db/migrate/20120718162312_fix_recommendation_relation.rb +5 -0
  265. data/db/migrate/20120724095308_add_state_to_interview_results.rb +5 -0
  266. data/db/migrate/20120724142439_create_carriers.rb +11 -0
  267. data/db/migrate/20120725071947_create_campaigns.rb +11 -0
  268. data/db/migrate/20120725083605_add_last_visited_path_to_users.rb +5 -0
  269. data/db/migrate/20120725085526_create_interesting_facts.rb +13 -0
  270. data/db/migrate/20120725131809_add_attachment_to_campaigns.rb +5 -0
  271. data/db/migrate/20120726115141_create_attachments.rb +10 -0
  272. data/db/migrate/20120726115644_extract_attachment_from_campaign.rb +11 -0
  273. data/db/migrate/20120726135706_create_buying_attempts.rb +11 -0
  274. data/db/migrate/20120727104402_add_campaign_id_to_interview_result.rb +5 -0
  275. data/db/migrate/20120730064404_change_interesting_facts.rb +6 -0
  276. data/db/migrate/20120730114402_add_attachment_id_to_interesting_facts.rb +5 -0
  277. data/db/migrate/20120730115758_remove_campaign_id_from_interesting_facts.rb +9 -0
  278. data/db/schema.rb +201 -0
  279. data/db/seeds.rb +86 -0
  280. data/doc/Ability.html +221 -0
  281. data/doc/Admin/InterviewHelper.html +292 -0
  282. data/doc/Answer.html +241 -0
  283. data/doc/AnswerChoice.html +296 -0
  284. data/doc/AnswersHelper.html +194 -0
  285. data/doc/ApplicationController.html +318 -0
  286. data/doc/ApplicationHelper.html +119 -0
  287. data/doc/CellPhoneInsuranceInterview.html +192 -0
  288. data/doc/Contact.html +186 -0
  289. data/doc/ContactsController.html +283 -0
  290. data/doc/CoreExtensions.html +129 -0
  291. data/doc/CoreExtensions/Object.html +210 -0
  292. data/doc/DefaultInterview.html +192 -0
  293. data/doc/DevelopmentMailInterceptor.html +203 -0
  294. data/doc/EmailValidator.html +210 -0
  295. data/doc/InterviewResult.html +251 -0
  296. data/doc/InterviewResultInvitationsController.html +218 -0
  297. data/doc/InterviewResultsController.html +280 -0
  298. data/doc/InterviewTemplate.html +330 -0
  299. data/doc/InterviewTemplatesController.html +145 -0
  300. data/doc/Invitation.html +362 -0
  301. data/doc/InvitationIdentifier.html +287 -0
  302. data/doc/InvitationMailer.html +218 -0
  303. data/doc/LayoutHelper.html +188 -0
  304. data/doc/NavLinksRenderer.html +214 -0
  305. data/doc/NumericQuestion.html +196 -0
  306. data/doc/OneCorrectQuestion.html +269 -0
  307. data/doc/PagesController.html +206 -0
  308. data/doc/PossibleAnswer.html +627 -0
  309. data/doc/Question.html +620 -0
  310. data/doc/Recommendation.html +186 -0
  311. data/doc/RecommendationHelper.html +292 -0
  312. data/doc/RecommendationsController.html +230 -0
  313. data/doc/ResourcesController.html +141 -0
  314. data/doc/ScaleQuestion.html +525 -0
  315. data/doc/SocialProvidersConfig.html +240 -0
  316. data/doc/User.html +677 -0
  317. data/doc/Users/OmniauthCallbacksController.html +542 -0
  318. data/doc/Wisemuv/Contacts.html +188 -0
  319. data/doc/Wisemuv/Contacts/Google/ControllerConcerns.html +204 -0
  320. data/doc/Wisemuv/Contacts/Google/ModelConcerns.html +128 -0
  321. data/doc/Wisemuv/Contacts/WindowsLive/ControllerConcerns.html +204 -0
  322. data/doc/Wisemuv/Contacts/WindowsLive/Grabber.html +307 -0
  323. data/doc/Wisemuv/Contacts/WindowsLive/ModelConcerns.html +128 -0
  324. data/doc/Wisemuv/Contacts/Yahoo/ControllerConcerns.html +206 -0
  325. data/doc/Wisemuv/Contacts/Yahoo/Grabber.html +526 -0
  326. data/doc/Wisemuv/Contacts/Yahoo/ModelConcerns.html +128 -0
  327. data/doc/YesNoQuestion.html +209 -0
  328. data/doc/_index.html +509 -0
  329. data/doc/carriers-campaigns-interviews-relationships.png +0 -0
  330. data/doc/class_list.html +61 -0
  331. data/doc/css/common.css +1 -0
  332. data/doc/css/cucumber.css +222 -0
  333. data/doc/css/full_list.css +57 -0
  334. data/doc/css/style.css +328 -0
  335. data/doc/feature_list.html +513 -0
  336. data/doc/file.README.html +152 -0
  337. data/doc/file_list.html +63 -0
  338. data/doc/frames.html +28 -0
  339. data/doc/index.html +152 -0
  340. data/doc/js/app.js +214 -0
  341. data/doc/js/cucumber.js +305 -0
  342. data/doc/js/full_list.js +173 -0
  343. data/doc/js/jquery.js +4 -0
  344. data/doc/method_list.html +740 -0
  345. data/doc/requirements.html +196 -0
  346. data/doc/requirements/features.html +180 -0
  347. data/doc/requirements/features/admin_manages_users.html +1260 -0
  348. data/doc/requirements/features/ask_friends_and_family.html +918 -0
  349. data/doc/requirements/features/create_interview.html +1734 -0
  350. data/doc/requirements/features/edit_interview.html +832 -0
  351. data/doc/requirements/features/pass_interview.html +757 -0
  352. data/doc/requirements/features/pulling_contacts.html +718 -0
  353. data/doc/requirements/features/questions_order_during_creating_interview.html +126 -0
  354. data/doc/requirements/features/sign_in.html +1035 -0
  355. data/doc/requirements/features/sign_up.html +1948 -0
  356. data/doc/requirements/step_transformers.html +10401 -0
  357. data/doc/requirements/tags.html +670 -0
  358. data/doc/requirements/tags/javascript.html +245 -0
  359. data/doc/requirements/tags/omniauth.html +165 -0
  360. data/doc/requirements/tags/users.html +227 -0
  361. data/doc/tag_list.html +82 -0
  362. data/doc/top-level-namespace.html +128 -0
  363. data/features/admin_manages_users.feature +57 -0
  364. data/features/ask_friends_and_family.feature +39 -0
  365. data/features/buying_tracking_code.feature +11 -0
  366. data/features/campaign_management.feature +42 -0
  367. data/features/create_interview.feature +74 -0
  368. data/features/edit_interview.feature +40 -0
  369. data/features/interesting_facts_parser.feature +11 -0
  370. data/features/interview_completion.feature +6 -0
  371. data/features/pass_interview.feature +31 -0
  372. data/features/pulling_contacts.feature +21 -0
  373. data/features/questions_order_during_creating_interview.feature +2 -0
  374. data/features/redirecting_after_signing_in.feature +19 -0
  375. data/features/sign_in.feature +51 -0
  376. data/features/sign_up.feature +43 -0
  377. data/features/step_definitions/admin_manages_users_steps.rb +91 -0
  378. data/features/step_definitions/ask_friends_and_family_steps.rb +41 -0
  379. data/features/step_definitions/buying_tracking_code_steps.rb +15 -0
  380. data/features/step_definitions/campaign_management_steps.rb +50 -0
  381. data/features/step_definitions/create_interview_steps.rb +130 -0
  382. data/features/step_definitions/edit_interview_steps.rb +35 -0
  383. data/features/step_definitions/interesting_facts_parser_steps.rb +34 -0
  384. data/features/step_definitions/interview_completion_steps.rb +8 -0
  385. data/features/step_definitions/interview_results_steps.rb +7 -0
  386. data/features/step_definitions/interview_steps.rb +11 -0
  387. data/features/step_definitions/pass_interview_steps.rb +52 -0
  388. data/features/step_definitions/pulling_contacts_steps.rb +24 -0
  389. data/features/step_definitions/redirecting_after_sign_in_steps.rb +19 -0
  390. data/features/step_definitions/sign_in_steps.rb +110 -0
  391. data/features/step_definitions/sign_up_steps.rb +56 -0
  392. data/features/support/env.rb +23 -0
  393. data/features/support/omniauth.rb +69 -0
  394. data/features/support/pickle.rb +26 -0
  395. data/features/support/uploading.rb +6 -0
  396. data/features/support/users.rb +18 -0
  397. data/features/upload-files/Life Insurance Facts-Final.xls +0 -0
  398. data/lib/assets/.gitkeep +0 -0
  399. data/lib/core_extensions/object.rb +9 -0
  400. data/lib/interceptors/development_mail_interceptor.rb +5 -0
  401. data/lib/social_providers_config.rb +10 -0
  402. data/lib/tasks/auto_annotate_models.rake +22 -0
  403. data/lib/tasks/cucumber.rake +65 -0
  404. data/lib/tasks/db/reseed.rake +12 -0
  405. data/lib/tasks/db/seed/interviews.rake +14 -0
  406. data/lib/tasks/db/truncate.rake +19 -0
  407. data/lib/tasks/yardoc.rake +19 -0
  408. data/lib/validators/email_validator.rb +7 -0
  409. data/lib/wisemuv/contacts.rb +5 -0
  410. data/lib/wisemuv/contacts/google/controller_concerns.rb +19 -0
  411. data/lib/wisemuv/contacts/google/model_concerns.rb +17 -0
  412. data/lib/wisemuv/contacts/windows_live/controller_concerns.rb +23 -0
  413. data/lib/wisemuv/contacts/windows_live/grabber.rb +22 -0
  414. data/lib/wisemuv/contacts/windows_live/model_concerns.rb +17 -0
  415. data/lib/wisemuv/contacts/yahoo/controller_concerns.rb +29 -0
  416. data/lib/wisemuv/contacts/yahoo/grabber.rb +55 -0
  417. data/lib/wisemuv/contacts/yahoo/model_concerns.rb +17 -0
  418. data/lib/wisemuv/interesting_facts_parser.rb +65 -0
  419. data/log/.gitkeep +0 -0
  420. data/public/403.html +26 -0
  421. data/public/404.html +26 -0
  422. data/public/422.html +26 -0
  423. data/public/500.html +25 -0
  424. data/public/ZeroClipboard10.swf +0 -0
  425. data/public/favicon.ico +0 -0
  426. data/public/robots.txt +5 -0
  427. data/script/cucumber +10 -0
  428. data/script/delayed_job +5 -0
  429. data/script/rails +6 -0
  430. data/spec/factories/answer.rb +6 -0
  431. data/spec/factories/answer_choice.rb +6 -0
  432. data/spec/factories/attachment.rb +11 -0
  433. data/spec/factories/buying_attempts.rb +8 -0
  434. data/spec/factories/campaign.rb +8 -0
  435. data/spec/factories/carrier.rb +6 -0
  436. data/spec/factories/contact.rb +8 -0
  437. data/spec/factories/interesting_facts.rb +10 -0
  438. data/spec/factories/interview_result.rb +27 -0
  439. data/spec/factories/interview_template.rb +46 -0
  440. data/spec/factories/invitation_identifier.rb +8 -0
  441. data/spec/factories/possible_answer.rb +23 -0
  442. data/spec/factories/question.rb +55 -0
  443. data/spec/factories/recommendation.rb +10 -0
  444. data/spec/factories/user.rb +21 -0
  445. data/spec/mailers/invitation_mailer_spec.rb +5 -0
  446. data/spec/models/answer_spec.rb +5 -0
  447. data/spec/models/attachment_spec.rb +5 -0
  448. data/spec/models/buying_attempt_spec.rb +5 -0
  449. data/spec/models/campaign_spec.rb +5 -0
  450. data/spec/models/carrier_spec.rb +5 -0
  451. data/spec/models/contact_spec.rb +5 -0
  452. data/spec/models/interesting_fact_spec.rb +5 -0
  453. data/spec/models/invitation_identifier_spec.rb +5 -0
  454. data/spec/models/question_choice_spec.rb +5 -0
  455. data/spec/models/question_result_spec.rb +5 -0
  456. data/spec/models/question_spec.rb +5 -0
  457. data/spec/models/recommendation_spec.rb +5 -0
  458. data/spec/models/survey_result_spec.rb +5 -0
  459. data/spec/models/survey_template_spec.rb +5 -0
  460. data/spec/spec_helper.rb +32 -0
  461. data/vendor/.rvmrc +53 -0
  462. data/vendor/Gemfile +60 -0
  463. data/vendor/Gemfile.lock +166 -0
  464. data/vendor/README.rdoc +261 -0
  465. data/vendor/Rakefile +7 -0
  466. data/vendor/assets/javascripts/ZeroClipboard.js +316 -0
  467. data/vendor/assets/javascripts/selectToUISlider.js +240 -0
  468. data/vendor/assets/javascripts/underscore.string.js +566 -0
  469. data/vendor/assets/stylesheets/.gitkeep +0 -0
  470. data/vendor/config.ru +4 -0
  471. data/vendor/plugins/.gitkeep +0 -0
  472. metadata +504 -55
  473. data/README.markdown +0 -44
  474. data/lib/shell-spinner.rb +0 -52
  475. data/lib/shell-spinner/version.rb +0 -3
  476. data/shell-spinner.gemspec +0 -18
@@ -0,0 +1,513 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+
7
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
8
+
9
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
10
+
11
+
12
+
13
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
+
17
+
18
+ <base id="base_target" target="_parent" />
19
+ </head>
20
+ <body>
21
+ <script type="text/javascript" charset="utf-8">
22
+ if (window.top.frames.main) {
23
+ document.getElementById('base_target').target = 'main';
24
+ document.body.className = 'frames';
25
+ }
26
+ </script>
27
+ <div id="content">
28
+ <h1 id="full_list_header">Feature List</h1>
29
+ <div id="nav">
30
+
31
+ <span><a target="_self" href="feature_list.html">
32
+ Features
33
+ </a></span>
34
+
35
+ <span><a target="_self" href="tag_list.html">
36
+ Tags
37
+ </a></span>
38
+
39
+ <span><a target="_self" href="class_list.html">
40
+ Classes
41
+ </a></span>
42
+
43
+ <span><a target="_self" href="method_list.html">
44
+ Methods
45
+ </a></span>
46
+
47
+ <span><a target="_self" href="file_list.html">
48
+ Files
49
+ </a></span>
50
+
51
+ </div>
52
+ <div id="search">Search: <input type="text" /></div>
53
+
54
+ <ul id="full_list" class="class">
55
+
56
+ <li class="r1">
57
+ <span class='object_link'><a href="requirements/features.html" title="requirements::features (featuredirectory)">All Features</a></span>
58
+ </li>
59
+
60
+
61
+ <li class="r2">
62
+ <a class='toggle'></a>
63
+ <span class='object_link'><a href="requirements/features/pass_interview.html" title="requirements::features::pass_interview (feature)">A user should be able to pass an interview if it exists</a></span>
64
+ <small>features/pass_interview.feature:2</small>
65
+ </li>
66
+
67
+
68
+ <ul>
69
+
70
+ <li class="r1">
71
+ <span class='object_link'>
72
+ <a href="requirements/features/pass_interview.html#scenario_0"
73
+ title="If a user answers all questions new interview result must be created">
74
+ If a user answers all questions new interview result must be created
75
+ </a>
76
+ </span>
77
+ <small>features/pass_interview.feature:7</small>
78
+ </li>
79
+
80
+
81
+ <li class="r2">
82
+ <span class='object_link'>
83
+ <a href="requirements/features/pass_interview.html#scenario_1"
84
+ title="If a user answers not all questions new interview result mustn't be created">
85
+ If a user answers not all questions new interview result mustn't be created
86
+ </a>
87
+ </span>
88
+ <small>features/pass_interview.feature:19</small>
89
+ </li>
90
+
91
+
92
+ <li class="r1">
93
+ <span class='object_link'>
94
+ <a href="requirements/features/pass_interview.html#scenario_2"
95
+ title="An interview can consist of questions of different display types">
96
+ An interview can consist of questions of different display types
97
+ </a>
98
+ </span>
99
+ <small>features/pass_interview.feature:25</small>
100
+ </li>
101
+
102
+
103
+ </ul>
104
+
105
+
106
+ <li class="r2">
107
+ <a class='toggle'></a>
108
+ <span class='object_link'><a href="requirements/features/sign_in.html" title="requirements::features::sign_in (feature)">A user should be able to sign in via different OAuth providers, wisemuv credentials or sign up directly</a></span>
109
+ <small>features/sign_in.feature:1</small>
110
+ </li>
111
+
112
+
113
+ <ul>
114
+
115
+ <li class="r1">
116
+ <span class='object_link'>
117
+ <a href="requirements/features/sign_in.html#scenario_0"
118
+ title="A user should see modal window to have possibility to sign in">
119
+ A user should see modal window to have possibility to sign in
120
+ </a>
121
+ </span>
122
+ <small>features/sign_in.feature:4</small>
123
+ </li>
124
+
125
+
126
+ <li class="r2">
127
+ <span class='object_link'>
128
+ <a href="requirements/features/sign_in.html#scenario_1"
129
+ title="A regular user successfully signs in with Wisemuv credentials">
130
+ A regular user successfully signs in with Wisemuv credentials
131
+ </a>
132
+ </span>
133
+ <small>features/sign_in.feature:14</small>
134
+ </li>
135
+
136
+
137
+ <li class="r1">
138
+ <span class='object_link'>
139
+ <a href="requirements/features/sign_in.html#scenario_2"
140
+ title="An admin user successfully signs in with Wisemuv credentials">
141
+ An admin user successfully signs in with Wisemuv credentials
142
+ </a>
143
+ </span>
144
+ <small>features/sign_in.feature:24</small>
145
+ </li>
146
+
147
+
148
+ <li class="r2">
149
+ <span class='object_link'>
150
+ <a href="requirements/features/sign_in.html#scenario_3"
151
+ title="A user successfully signs in with different OAuth providers">
152
+ A user successfully signs in with different OAuth providers
153
+ </a>
154
+ </span>
155
+ <small>features/sign_in.feature:34</small>
156
+ </li>
157
+
158
+
159
+ </ul>
160
+
161
+
162
+ <li class="r1">
163
+ <a class='toggle'></a>
164
+ <span class='object_link'><a href="requirements/features/sign_up.html" title="requirements::features::sign_up (feature)">A user should be able to sign up on Wisemuv site</a></span>
165
+ <small>features/sign_up.feature:1</small>
166
+ </li>
167
+
168
+
169
+ <ul>
170
+
171
+ <li class="r2">
172
+ <span class='object_link'>
173
+ <a href="requirements/features/sign_up.html#scenario_0"
174
+ title="A user should be redirected to sign up page from modal window">
175
+ A user should be redirected to sign up page from modal window
176
+ </a>
177
+ </span>
178
+ <small>features/sign_up.feature:4</small>
179
+ </li>
180
+
181
+
182
+ <li class="r1">
183
+ <span class='object_link'>
184
+ <a href="requirements/features/sign_up.html#scenario_1"
185
+ title="Creating a new account">
186
+ Creating a new account
187
+ </a>
188
+ </span>
189
+ <small>features/sign_up.feature:11</small>
190
+ </li>
191
+
192
+
193
+ <li class="r2">
194
+ <span class='object_link'>
195
+ <a href="requirements/features/sign_up.html#scenario_2"
196
+ title="A user must provide valid data to be successfully registered">
197
+ A user must provide valid data to be successfully registered
198
+ </a>
199
+ </span>
200
+ <small>features/sign_up.feature:28</small>
201
+ </li>
202
+
203
+
204
+ </ul>
205
+
206
+
207
+ <li class="r1">
208
+ <a class='toggle'></a>
209
+ <span class='object_link'><a href="requirements/features/create_interview.html" title="requirements::features::create_interview (feature)">as admin I can create interview</a></span>
210
+ <small>features/create_interview.feature:2</small>
211
+ </li>
212
+
213
+
214
+ <ul>
215
+
216
+ <li class="r2">
217
+ <span class='object_link'>
218
+ <a href="requirements/features/create_interview.html#scenario_0"
219
+ title="If a user is logged in as an admin he could create an interview">
220
+ If a user is logged in as an admin he could create an interview
221
+ </a>
222
+ </span>
223
+ <small>features/create_interview.feature:7</small>
224
+ </li>
225
+
226
+
227
+ <li class="r1">
228
+ <span class='object_link'>
229
+ <a href="requirements/features/create_interview.html#scenario_1"
230
+ title="Interview mustn't be created without obligatory attributes">
231
+ Interview mustn't be created without obligatory attributes
232
+ </a>
233
+ </span>
234
+ <small>features/create_interview.feature:22</small>
235
+ </li>
236
+
237
+
238
+ <li class="r2">
239
+ <span class='object_link'>
240
+ <a href="requirements/features/create_interview.html#scenario_2"
241
+ title="one-correct-question">
242
+ one-correct-question
243
+ </a>
244
+ </span>
245
+ <small>features/create_interview.feature:27</small>
246
+ </li>
247
+
248
+
249
+ <li class="r1">
250
+ <span class='object_link'>
251
+ <a href="requirements/features/create_interview.html#scenario_3"
252
+ title="yes-no-question">
253
+ yes-no-question
254
+ </a>
255
+ </span>
256
+ <small>features/create_interview.feature:36</small>
257
+ </li>
258
+
259
+
260
+ <li class="r2">
261
+ <span class='object_link'>
262
+ <a href="requirements/features/create_interview.html#scenario_4"
263
+ title="scale-question">
264
+ scale-question
265
+ </a>
266
+ </span>
267
+ <small>features/create_interview.feature:45</small>
268
+ </li>
269
+
270
+
271
+ <li class="r1">
272
+ <span class='object_link'>
273
+ <a href="requirements/features/create_interview.html#scenario_5"
274
+ title="numeric-question">
275
+ numeric-question
276
+ </a>
277
+ </span>
278
+ <small>features/create_interview.feature:54</small>
279
+ </li>
280
+
281
+
282
+ <li class="r2">
283
+ <span class='object_link'>
284
+ <a href="requirements/features/create_interview.html#scenario_6"
285
+ title="non-authenticated user mustn't have access to the admin section">
286
+ non-authenticated user mustn't have access to the admin section
287
+ </a>
288
+ </span>
289
+ <small>features/create_interview.feature:63</small>
290
+ </li>
291
+
292
+
293
+ <li class="r1">
294
+ <span class='object_link'>
295
+ <a href="requirements/features/create_interview.html#scenario_7"
296
+ title="non-admin user mustn't have access to the admin section">
297
+ non-admin user mustn't have access to the admin section
298
+ </a>
299
+ </span>
300
+ <small>features/create_interview.feature:69</small>
301
+ </li>
302
+
303
+
304
+ </ul>
305
+
306
+
307
+ <li class="r2">
308
+
309
+ <span class='object_link'><a href="requirements/features/questions_order_during_creating_interview.html" title="requirements::features::questions_order_during_creating_interview (feature)">as admin I can create interview and set questions order</a></span>
310
+ <small>features/questions_order_during_creating_interview.feature:2</small>
311
+ </li>
312
+
313
+
314
+ <ul>
315
+
316
+ </ul>
317
+
318
+
319
+ <li class="r1">
320
+ <a class='toggle'></a>
321
+ <span class='object_link'><a href="requirements/features/edit_interview.html" title="requirements::features::edit_interview (feature)">as admin I can edit interview</a></span>
322
+ <small>features/edit_interview.feature:2</small>
323
+ </li>
324
+
325
+
326
+ <ul>
327
+
328
+ <li class="r2">
329
+ <span class='object_link'>
330
+ <a href="requirements/features/edit_interview.html#scenario_0"
331
+ title="If an admin enters incorrect data interview mustn't be updated with these wrong values">
332
+ If an admin enters incorrect data interview mustn't be updated with these wrong values
333
+ </a>
334
+ </span>
335
+ <small>features/edit_interview.feature:9</small>
336
+ </li>
337
+
338
+
339
+ <li class="r1">
340
+ <span class='object_link'>
341
+ <a href="requirements/features/edit_interview.html#scenario_1"
342
+ title="If an admin enters proper data then interview must be updated">
343
+ If an admin enters proper data then interview must be updated
344
+ </a>
345
+ </span>
346
+ <small>features/edit_interview.feature:21</small>
347
+ </li>
348
+
349
+
350
+ <li class="r2">
351
+ <span class='object_link'>
352
+ <a href="requirements/features/edit_interview.html#scenario_2"
353
+ title="If an admin changes interview type then it must be updated properly">
354
+ If an admin changes interview type then it must be updated properly
355
+ </a>
356
+ </span>
357
+ <small>features/edit_interview.feature:32</small>
358
+ </li>
359
+
360
+
361
+ </ul>
362
+
363
+
364
+ <li class="r1">
365
+ <a class='toggle'></a>
366
+ <span class='object_link'><a href="requirements/features/admin_manages_users.html" title="requirements::features::admin_manages_users (feature)">as admin I can edit users</a></span>
367
+ <small>features/admin_manages_users.feature:2</small>
368
+ </li>
369
+
370
+
371
+ <ul>
372
+
373
+ <li class="r2">
374
+ <span class='object_link'>
375
+ <a href="requirements/features/admin_manages_users.html#scenario_0"
376
+ title="Admin can create new user">
377
+ Admin can create new user
378
+ </a>
379
+ </span>
380
+ <small>features/admin_manages_users.feature:8</small>
381
+ </li>
382
+
383
+
384
+ <li class="r1">
385
+ <span class='object_link'>
386
+ <a href="requirements/features/admin_manages_users.html#scenario_1"
387
+ title="If admin enters incorrect data user shouldn't have been created">
388
+ If admin enters incorrect data user shouldn't have been created
389
+ </a>
390
+ </span>
391
+ <small>features/admin_manages_users.feature:23</small>
392
+ </li>
393
+
394
+
395
+ <li class="r2">
396
+ <span class='object_link'>
397
+ <a href="requirements/features/admin_manages_users.html#scenario_2"
398
+ title="If an admin changes user role it must be stored properly">
399
+ If an admin changes user role it must be stored properly
400
+ </a>
401
+ </span>
402
+ <small>features/admin_manages_users.feature:37</small>
403
+ </li>
404
+
405
+
406
+ <li class="r1">
407
+ <span class='object_link'>
408
+ <a href="requirements/features/admin_manages_users.html#scenario_3"
409
+ title="Admin should be able to delete user">
410
+ Admin should be able to delete user
411
+ </a>
412
+ </span>
413
+ <small>features/admin_manages_users.feature:45</small>
414
+ </li>
415
+
416
+
417
+ <li class="r2">
418
+ <span class='object_link'>
419
+ <a href="requirements/features/admin_manages_users.html#scenario_4"
420
+ title="Admin should be able to find user by filters">
421
+ Admin should be able to find user by filters
422
+ </a>
423
+ </span>
424
+ <small>features/admin_manages_users.feature:52</small>
425
+ </li>
426
+
427
+
428
+ </ul>
429
+
430
+
431
+ <li class="r1">
432
+ <a class='toggle'></a>
433
+ <span class='object_link'><a href="requirements/features/ask_friends_and_family.html" title="requirements::features::ask_friends_and_family (feature)">as user I could ask mentions of my friends and family about interview which I've passed</a></span>
434
+ <small>features/ask_friends_and_family.feature:2</small>
435
+ </li>
436
+
437
+
438
+ <ul>
439
+
440
+ <li class="r2">
441
+ <span class='object_link'>
442
+ <a href="requirements/features/ask_friends_and_family.html#scenario_0"
443
+ title="send invitations to my friend">
444
+ send invitations to my friend
445
+ </a>
446
+ </span>
447
+ <small>features/ask_friends_and_family.feature:13</small>
448
+ </li>
449
+
450
+
451
+ <li class="r1">
452
+ <span class='object_link'>
453
+ <a href="requirements/features/ask_friends_and_family.html#scenario_1"
454
+ title="send invitations to several friends at one time">
455
+ send invitations to several friends at one time
456
+ </a>
457
+ </span>
458
+ <small>features/ask_friends_and_family.feature:21</small>
459
+ </li>
460
+
461
+
462
+ </ul>
463
+
464
+
465
+ <li class="r2">
466
+ <a class='toggle'></a>
467
+ <span class='object_link'><a href="requirements/features/pulling_contacts.html" title="requirements::features::pulling_contacts (feature)">as wisemuv user I can pull contacts from different mail providers</a></span>
468
+ <small>features/pulling_contacts.feature:2</small>
469
+ </li>
470
+
471
+
472
+ <ul>
473
+
474
+ <li class="r1">
475
+ <span class='object_link'>
476
+ <a href="requirements/features/pulling_contacts.html#scenario_0"
477
+ title="ask for a contacts without sign in and ensure that I will be redirected to the authentication page">
478
+ ask for a contacts without sign in and ensure that I will be redirected to the authentication page
479
+ </a>
480
+ </span>
481
+ <small>features/pulling_contacts.feature:4</small>
482
+ </li>
483
+
484
+
485
+ <li class="r2">
486
+ <span class='object_link'>
487
+ <a href="requirements/features/pulling_contacts.html#scenario_1"
488
+ title="ask for unknown provider and ensure that I will be redirected to 404 page">
489
+ ask for unknown provider and ensure that I will be redirected to 404 page
490
+ </a>
491
+ </span>
492
+ <small>features/pulling_contacts.feature:8</small>
493
+ </li>
494
+
495
+
496
+ <li class="r1">
497
+ <span class='object_link'>
498
+ <a href="requirements/features/pulling_contacts.html#scenario_2"
499
+ title="ask for contacts and check that I will be redirected to the provider authentication page">
500
+ ask for contacts and check that I will be redirected to the provider authentication page
501
+ </a>
502
+ </span>
503
+ <small>features/pulling_contacts.feature:13</small>
504
+ </li>
505
+
506
+
507
+ </ul>
508
+
509
+
510
+ </ul>
511
+ </div>
512
+ </body>
513
+ </html>