Browse Source

adding web dashboard frontend

kermit 1 year ago
parent
commit
7c49474e05
100 changed files with 2181 additions and 0 deletions
  1. 1 0
      www/.env.web
  2. 21 0
      www/.gitignore
  3. 74 0
      www/.gitlab-ci.yml
  4. 7 0
      www/Capfile
  5. 25 0
      www/Dockerfile
  6. 18 0
      www/Dockerfile-base
  7. 9 0
      www/Dockerfile-prod
  8. 16 0
      www/Dockerfile-test
  9. 191 0
      www/Gemfile
  10. 990 0
      www/Gemfile.lock
  11. 69 0
      www/Guardfile
  12. 2 0
      www/Procfile
  13. 0 0
      www/README.md
  14. 6 0
      www/Rakefile
  15. BIN
      www/app/assets/fonts/FontAwesome.otf
  16. BIN
      www/app/assets/fonts/fontawesome-webfont.eot
  17. 196 0
      www/app/assets/fonts/fontawesome-webfont.svg
  18. BIN
      www/app/assets/fonts/fontawesome-webfont.ttf
  19. BIN
      www/app/assets/fonts/fontawesome-webfont.woff
  20. BIN
      www/app/assets/fonts/fontawesome-webfont.woff2
  21. BIN
      www/app/assets/fonts/orbitron-black.otf
  22. BIN
      www/app/assets/fonts/orbitron-bold.otf
  23. BIN
      www/app/assets/fonts/orbitron-light.otf
  24. BIN
      www/app/assets/fonts/orbitron-light.ttf
  25. BIN
      www/app/assets/fonts/orbitron-medium.otf
  26. BIN
      www/app/assets/fonts/proximanova-black-webfont.eot
  27. BIN
      www/app/assets/fonts/proximanova-bold-webfont.eot
  28. BIN
      www/app/assets/fonts/proximanova-light-webfont.eot
  29. BIN
      www/app/assets/fonts/proximanova-regular-webfont.eot
  30. BIN
      www/app/assets/fonts/proximanova-semibold-webfont.eot
  31. BIN
      www/app/assets/fonts/proximanova-thin-webfont.eot
  32. BIN
      www/app/assets/fonts/themify.eot
  33. 24 0
      www/app/assets/fonts/themify.svg
  34. BIN
      www/app/assets/fonts/themify.ttf
  35. BIN
      www/app/assets/fonts/themify.woff
  36. BIN
      www/app/assets/images/ajax-loader.gif
  37. BIN
      www/app/assets/images/america.jpg
  38. BIN
      www/app/assets/images/avatar-blank.jpg
  39. BIN
      www/app/assets/images/avatar.png
  40. BIN
      www/app/assets/images/cards.png
  41. BIN
      www/app/assets/images/client1.png
  42. BIN
      www/app/assets/images/dashboard.png
  43. BIN
      www/app/assets/images/engine.jpg
  44. BIN
      www/app/assets/images/error.gif
  45. BIN
      www/app/assets/images/favicon-16x16.png
  46. BIN
      www/app/assets/images/favicon-32x32.png
  47. BIN
      www/app/assets/images/favicon-96x96.png
  48. BIN
      www/app/assets/images/favicon.ico
  49. BIN
      www/app/assets/images/feature-shadow.png
  50. BIN
      www/app/assets/images/hot-coffee-cinemagraph-collection-3.gif
  51. BIN
      www/app/assets/images/icon_18px_1.png
  52. BIN
      www/app/assets/images/icon_18px_2.png
  53. BIN
      www/app/assets/images/image_77px_not2.png
  54. BIN
      www/app/assets/images/iphone.png
  55. BIN
      www/app/assets/images/launch.jpg
  56. BIN
      www/app/assets/images/launchbg.jpg
  57. BIN
      www/app/assets/images/loader.gif
  58. BIN
      www/app/assets/images/logo-sm.png
  59. BIN
      www/app/assets/images/logo.png
  60. BIN
      www/app/assets/images/meteors.jpg
  61. BIN
      www/app/assets/images/mock-up1.png
  62. BIN
      www/app/assets/images/mock-up2-k'.png
  63. BIN
      www/app/assets/images/mock-up2.png
  64. BIN
      www/app/assets/images/nightsky.jpg
  65. BIN
      www/app/assets/images/not1_bg_image.jpg
  66. BIN
      www/app/assets/images/not3_bg_image.jpg
  67. BIN
      www/app/assets/images/not4_avatar.png
  68. BIN
      www/app/assets/images/not4_bg_image.jpg
  69. BIN
      www/app/assets/images/not5_bg_image.jpg
  70. BIN
      www/app/assets/images/not5_icon61px.png
  71. BIN
      www/app/assets/images/not6_bg_image.jpg
  72. BIN
      www/app/assets/images/not6_icon75px.png
  73. BIN
      www/app/assets/images/pattern1.jpg
  74. BIN
      www/app/assets/images/pattern1.png
  75. BIN
      www/app/assets/images/pattern2.jpg
  76. BIN
      www/app/assets/images/preview.png
  77. BIN
      www/app/assets/images/resource/check.png
  78. BIN
      www/app/assets/images/rolladeck_bg.png
  79. BIN
      www/app/assets/images/secure.png
  80. BIN
      www/app/assets/images/sphere.png
  81. BIN
      www/app/assets/images/spin.jpg
  82. BIN
      www/app/assets/images/sprite-skin-flat.png
  83. BIN
      www/app/assets/images/ssl.png
  84. BIN
      www/app/assets/images/stripe.png
  85. BIN
      www/app/assets/images/success.gif
  86. BIN
      www/app/assets/images/thumbsup.jpg
  87. BIN
      www/app/assets/images/tilebg.jpg
  88. BIN
      www/app/assets/images/work.jpg
  89. 44 0
      www/app/assets/javascripts/app.js
  90. 14 0
      www/app/assets/javascripts/application.js
  91. 19 0
      www/app/assets/javascripts/bootstrap-sortable.js
  92. 21 0
      www/app/assets/javascripts/bootstrap-tour-standalone.min.js
  93. 21 0
      www/app/assets/javascripts/bootstrap-tour.min.js
  94. 5 0
      www/app/assets/javascripts/bootstrap.min.js
  95. 3 0
      www/app/assets/javascripts/bots.coffee
  96. 3 0
      www/app/assets/javascripts/brains.coffee
  97. 155 0
      www/app/assets/javascripts/common.js
  98. 3 0
      www/app/assets/javascripts/image_assets.coffee
  99. 12 0
      www/app/assets/javascripts/import.coffee
  100. 232 0
      www/app/assets/javascripts/jqcloud-1.0.4.js

+ 1 - 0
www/.env.web

@@ -0,0 +1 @@
+ELASTICSEARCH_URL=http://elasticsearch:9200

+ 21 - 0
www/.gitignore

@@ -0,0 +1,21 @@
+tmp/
+log/
+.DS_Store
+.idea
+.vagrant
+.chef
+.puppet
+.data
+engines/crm/log/
+engines/crm/tmp/
+engines/worker/log/
+engines/worker/tmp/
+public/assets
+tmp/
+vendor/bundle
+
+
+# Elastic Beanstalk Files
+.elasticbeanstalk/*
+!.elasticbeanstalk/*.cfg.yml
+!.elasticbeanstalk/*.global.yml

+ 74 - 0
www/.gitlab-ci.yml

@@ -0,0 +1,74 @@
+before_script:
+  - echo ">> LOADING..."
+after_script:
+  - echo "-- FINISHED --"
+
+stages:
+  - build
+  - test
+
+build:
+  stage: build
+  script:
+    - bundle install --without development
+    - bundle exec rake db:setup RAILS_ENV=test
+    - bundle exec rake db:migrate RAILS_ENV=test
+    - bundle exec rake assets:precompile RAILS_ENV=test
+  only:
+    - master
+  tags:
+    - ci
+
+unit:
+  script:
+  - bundle exec rspec spec/models
+  - bundle exec rspec spec/workers
+  - bundle exec rspec spec/controllers
+  stage: test
+  only:
+    - master
+  except:
+    - development
+  tags:
+    - ci
+  allow_failure: false
+
+integration:
+  script:
+  - bundle exec rspec spec/features
+  stage: test
+  only:
+    - master
+  except:
+    - development
+  tags:
+    - ci
+  allow_failure: true
+
+#predeploy:
+#  script:
+#  - cap test deploy
+#  stage: deploy
+#  only:
+#    - master
+#  tags:
+#    - ci
+#  allow_failure: false
+#
+#deploy:
+#  script:
+#  - cap production deploy
+#  stage: deploy
+#  only:
+#    - master
+#  tags:
+#    - ci
+#  allow_failure: false
+
+variables:
+  DATABASE_URL: "postgres://postgres:postgres@localhost/contactrocket"
+  REDIS_URL: "redis://localhost:6379/0"
+  ELASTICSEARCH_URL: "search-contactrocket-4v6tk3c5rhd3plrfsh277f6lcu.us-east-1.es.amazonaws.com"
+  POSTGRES_DB: postgres
+  POSTGRES_USER: postgres
+  POSTGRES_PASSWORD: "postgres"

+ 7 - 0
www/Capfile

@@ -0,0 +1,7 @@
+# Load DSL and Setup Up Stages
+require 'capistrano/setup'
+require 'capistrano/deploy'
+require 'capistrano/bundler'
+require 'capistrano/rails/assets'
+require 'capistrano/rails/migrations'
+Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }

+ 25 - 0
www/Dockerfile

@@ -0,0 +1,25 @@
+FROM ruby:2.3.3
+RUN apt-get update -qq && apt-get install -y --no-install-recommends build-essential \
+ nodejs libpq-dev libcurl3 zlib1g-dev libqt4-dev bison libpq-dev libkrb5-dev libicu-dev \
+  libssl-dev libyaml-dev libc6-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev
+
+RUN sudo ln -s `which nodejs` /usr/bin/node
+
+ENV RACK_ENV production
+ENV RAILS_ENV production
+ENV INSTALL_PATH /app
+
+WORKDIR /tmp
+COPY Gemfile Gemfile
+COPY Gemfile.lock Gemfile.lock
+RUN bundle install --without test development
+
+ADD . $INSTALL_PATH
+WORKDIR $INSTALL_PATH
+
+COPY . .
+RUN bundle install --without test development
+COPY Gemfile Gemfile
+COPY Gemfile.lock Gemfile.lock
+RUN bundle install --deployment
+CMD ['config/containers/app_cmd.sh']

+ 18 - 0
www/Dockerfile-base

@@ -0,0 +1,18 @@
+FROM ruby:2.2.5
+RUN apt-get update -qq && apt-get install -y --no-install-recommends build-essential \
+ nodejs libpq-dev libcurl3 zlib1g-dev libqt4-dev bison libpq-dev libkrb5-dev libicu-dev \
+  libssl-dev libyaml-dev libc6-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev
+
+ENV RACK_ENV production
+ENV RAILS_ENV production
+ENV INSTALL_PATH /app
+
+WORKDIR /tmp
+COPY Gemfile Gemfile
+COPY Gemfile.lock Gemfile.lock
+RUN bundle install --without test development
+
+ADD . $INSTALL_PATH
+WORKDIR $INSTALL_PATH
+
+COPY . .

+ 9 - 0
www/Dockerfile-prod

@@ -0,0 +1,9 @@
+FROM contactrocket/www:latest
+ENV RACK_ENV production
+ENV RAILS_ENV production
+ENV INSTALL_PATH /app
+WORKDIR $INSTALL_PATH
+COPY . .
+RUN bundle install --deployment
+CMD ['config/containers/app_cmd.sh']
+

+ 16 - 0
www/Dockerfile-test

@@ -0,0 +1,16 @@
+FROM contactrocket/www:latest
+RUN apt-get install -y xvfb sqlite3 libsqlite3-dev libqt5webkit5-dev \
+ libqtwebkit-dev xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic \
+ x11-apps libqt4-webkit libqt4-dev nodejs
+ENV INSTALL_PATH /app
+ENV RACK_ENV test
+ENV RAILS_ENV test
+ADD . $INSTALL_PATH
+WORKDIR $INSTALL_PATH
+RUN bundle install --without development
+RUN bundle exec rake db:drop
+RUN bundle exec rake db:create
+RUN bundle exec rake db:schema:load
+RUN bundle exec rake db:migrate
+RUN bundle exec rake db:seed
+RUN bundle exec rake assets:precompile

+ 191 - 0
www/Gemfile

@@ -0,0 +1,191 @@
+source 'https://rubygems.org'
+#  ruby '2.3.3'
+  gem 'rails', '4.2.6'
+  gem 'pg'
+  gem 'gravtastic'
+  gem 'sass-rails', '~> 5.0'
+  gem 'uglifier', '>= 1.3.0'
+  gem 'coffee-rails', '~> 4.1.0'
+  gem 'jbuilder', '~> 2.0'
+  gem 'execjs'
+  gem 'rb-readline'
+  gem 'jquery-rails'
+  gem 'bootstrap-sass'
+  gem 'momentjs-rails'
+  gem 'high_voltage'
+  gem 'koudoku'
+  gem 'devise'
+  gem 'oauth2'
+  gem 'devise-encryptable'
+  gem 'devise_invitable'
+ # gem 'devise-async'
+  gem 'doorkeeper'
+  gem 'devise_uid'
+  gem "devise_openid_authenticatable"
+  gem 'devise-doorkeeper'
+  gem 'omniauth'
+  gem 'omniauth-oauth2'
+  gem 'omniauth-facebook'
+  gem 'omniauth-linkedin'
+  gem 'omniauth-twitter'
+  gem 'omniauth-google'
+  gem 'bcrypt-ruby'
+  gem 'protected_attributes'
+  gem 'iconv'
+  gem 'phonelib'
+  gem 'phony_rails'
+  gem 'redis', '~> 3.2'
+  gem 'hiredis', '~> 0.6.1'
+  gem 'redis-objects'
+  gem 'redis-namespace'
+  gem 'rack-cache'
+  gem 'rack-attack'
+  gem 'rack-ssl-enforcer'
+  gem 'rack-cors', :require => 'rack/cors'
+  gem 'connection_pool'
+  gem 'activejob_backport'
+  gem 'bson_ext'
+  gem 'curb'
+  gem 'sidekiq', '< 5'
+#  gem 'sidekiq-pro', '< 4' # , :source => 'https://username:password@gems.contribsys.com/'
+  gem 'sidekiq-monitor-stats'
+  gem 'sidekiq-benchmark'
+  gem 'sidekiq-statistic'
+#  gem 'sidetiq'
+  gem 'sidekiq-failures'
+  gem 'sidekiq-throttler'
+#  gem 'sidekiq-grouping'
+#  gem 'sidekiq-limit_fetch'
+  # gem 'sidekiq_mailer'
+  gem 'sidekiq-unique-jobs'
+  gem 'sidekiq-status'
+
+  gem 'apartment'
+ # gem 'apartment-sidekiq'
+  gem 'paranoia', '~> 2.2'
+  gem 'eventmachine'
+  gem 'em-udns'
+  gem 'nokogiri'
+  gem 'faraday_middleware-aws-signers-v4'
+  gem 'elasticsearch', '>= 1.0.15'
+  gem 'searchkick'
+  gem 'searchjoy'
+  gem 'statsd-ruby'
+  gem 'Indirizzo'
+  gem 'valid_url'
+  gem 'dalli'
+  gem 'dalli-elasticache'
+  gem 'chartkick'
+  gem 'groupdate'
+  gem 'active_median'
+  gem 'by_star'
+  gem 'hightop'
+  gem 'will_paginate'
+  gem 'whenever'
+  gem 'polipus', '~> 0.5.1'
+  gem 'fletcher'
+  gem 'PageRankr'
+  gem 'googlepagerank'
+  gem 'social_shares'
+  gem 'linkedin-scraper'
+  gem 'docker-api'
+  gem 'net-telnet'
+  gem 'dnsruby'
+  gem 'metainspector'
+  gem 'whois'
+  gem 'pismo'
+  gem 'mechanize'
+  gem 'koala', '~> 2.2'
+  gem 'whatlanguage'
+  gem 'ruby-readability'
+  gem 'words_counted'
+  gem 'word_count_analyzer'
+  gem 'text'
+  gem 'namae'
+  gem 'fuzzy_match'
+  gem 'fuzzy-string-match'
+  gem 'engtagger'
+  gem 'guess'
+  gem 'sad_panda'
+  gem 'odyssey'
+  gem 'stopwords-filter'
+  gem 'sentimental'
+  gem 'predictionio', '0.9.6'
+  gem 'ffi'
+  gem 'reality'
+  gem 'validates_phone_number'
+  gem 'validate_url'
+  gem 'mx-validator'
+  gem 'email_validator', :require => 'email_validator/strict'
+  gem 'ValidateEmail'
+  gem 'email-authentication'
+  gem 'ruby-mailchecker'
+  gem 'email_domain_validator'
+  gem 'email_verifier'
+  gem 'swot'
+  gem 'gman'
+  gem 'area'
+  gem 'lograge'
+  gem 'summarize'
+  gem 'marky_markov'
+  gem 'rubydns'
+  gem "gritter", "1.2.0"
+  gem 'programr'
+  gem 'roo'
+  gem 'tika-app'
+  gem 'sidekiq-history'
+  gem 'sidekiq-hierarchy'
+  gem 'sidekiq-lock'
+  gem 'sidekiq-statsd'
+  gem 'sidekiq-throttler'
+  gem 'elastic-beanstalk'
+  #gem 'ahoy_matey'
+  gem 'ahoy_email'
+
+  group :development, :test do
+  gem 'sinatra', :require => false
+  gem 'capistrano'
+  gem 'capistrano-rvm'
+  gem 'capistrano-bundler'
+  gem 'capistrano-rails'
+  gem 'capistrano-sidekiq'
+  gem 'capistrano-rails-console'
+  gem 'capistrano-composer'
+  gem 'ffaker'
+  gem 'rspec-core'
+  gem 'rspec-rails'
+  gem 'headless'
+  gem 'launchy'
+  gem 'capybara'
+  gem 'poltergeist'
+  gem 'selenium-webdriver'
+  gem 'benchmark-ips'
+  gem 'derailed'
+  gem 'stackprof'
+  gem 'method_profiler'
+  gem 'database_cleaner'
+  gem 'quiet_assets'
+  gem 'better_errors'
+  gem 'guard' , :require => false
+  gem 'rb-fchange', :require => false
+  gem 'rb-fsevent', :require => false
+  gem 'rb-inotify', :require => false
+  gem 'guard-bundler'
+  gem 'guard-rspec'
+  gem 'guard-rails'
+  gem 'guard-sidekiq'
+  gem 'factory_girl_rails'
+  gem 'highline'
+  gem 'fuubar'
+  gem 'growl'
+  gem 'rails_layout'
+  gem 'spring-commands-rspec'
+  gem 'zip-zip'
+  gem 'letter_opener'
+  gem 'letter_opener_web'
+  gem 'serverspec'
+  gem 'capybara-webkit'
+    # gem 'spreadsheet_architect'
+    # gem 'underlock'
+    # gem 'wc'
+end

+ 990 - 0
www/Gemfile.lock

@@ -0,0 +1,990 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    Indirizzo (0.1.7)
+    PageRankr (4.4.0)
+      httparty (>= 0.9.0)
+      json (>= 1.4.6)
+      jsonpath (>= 0.4.2)
+      nokogiri (>= 1.4.1)
+      public_suffix (>= 1.4.4)
+    RubyInline (3.12.4)
+      ZenTest (~> 4.3)
+    ValidateEmail (1.0.1)
+    ZenTest (4.11.1)
+    actionmailer (4.2.6)
+      actionpack (= 4.2.6)
+      actionview (= 4.2.6)
+      activejob (= 4.2.6)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+    actionpack (4.2.6)
+      actionview (= 4.2.6)
+      activesupport (= 4.2.6)
+      rack (~> 1.6)
+      rack-test (~> 0.6.2)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.2)
+    actionview (4.2.6)
+      activesupport (= 4.2.6)
+      builder (~> 3.1)
+      erubis (~> 2.7.0)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.2)
+    active_median (0.1.4)
+      activerecord
+    activejob (4.2.6)
+      activesupport (= 4.2.6)
+      globalid (>= 0.3.0)
+    activejob_backport (0.0.3)
+      activesupport (>= 4.0.0)
+    activemodel (4.2.6)
+      activesupport (= 4.2.6)
+      builder (~> 3.1)
+    activerecord (4.2.6)
+      activemodel (= 4.2.6)
+      activesupport (= 4.2.6)
+      arel (~> 6.0)
+    activesupport (4.2.6)
+      i18n (~> 0.7)
+      json (~> 1.7, >= 1.7.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
+    addressable (2.5.1)
+      public_suffix (~> 2.0, >= 2.0.2)
+    ahoy_email (0.4.0)
+      addressable
+      nokogiri
+      rails
+      safely_block (>= 0.1.1)
+    airbrussh (1.1.2)
+      sshkit (>= 1.6.1, != 1.7.0)
+    apartment (1.2.0)
+      activerecord (>= 3.1.2, < 6.0)
+      rack (>= 1.3.6)
+    area (0.10.0)
+      fastercsv (~> 1.5)
+    arel (6.0.4)
+    autoprefixer-rails (6.7.6)
+      execjs
+    awesome_print (1.7.0)
+    aws-sdk (2.8.5)
+      aws-sdk-resources (= 2.8.5)
+    aws-sdk-core (2.8.5)
+      aws-sigv4 (~> 1.0)
+      jmespath (~> 1.0)
+    aws-sdk-resources (2.8.5)
+      aws-sdk-core (= 2.8.5)
+    aws-sigv4 (1.0.0)
+    backports (3.6.8)
+    bcrypt (3.1.11)
+    bcrypt-ruby (3.1.5)
+      bcrypt (>= 3.1.3)
+    benchmark-ips (2.7.2)
+    better_errors (2.1.1)
+      coderay (>= 1.0.0)
+      erubis (>= 2.6.6)
+      rack (>= 0.9.0)
+    bluecloth (2.2.0)
+    bootstrap-sass (3.3.7)
+      autoprefixer-rails (>= 5.2.1)
+      sass (>= 3.3.4)
+    bson (1.12.5)
+    bson_ext (1.12.5)
+      bson (~> 1.12.5)
+    builder (3.2.3)
+    by_star (2.2.1)
+      activesupport
+    capistrano (3.7.2)
+      airbrussh (>= 1.0.0)
+      capistrano-harrow
+      i18n
+      rake (>= 10.0.0)
+      sshkit (>= 1.9.0)
+    capistrano-bundler (1.2.0)
+      capistrano (~> 3.1)
+      sshkit (~> 1.2)
+    capistrano-composer (0.0.6)
+      capistrano (>= 3.0.0.pre)
+    capistrano-harrow (0.5.3)
+    capistrano-rails (1.2.2)
+      capistrano (~> 3.1)
+      capistrano-bundler (~> 1.1)
+    capistrano-rails-console (2.2.0)
+      capistrano (>= 3.5.0, < 4.0.0)
+      sshkit-interactive (~> 0.2.0)
+    capistrano-rvm (0.1.2)
+      capistrano (~> 3.0)
+      sshkit (~> 1.2)
+    capistrano-sidekiq (0.10.0)
+      capistrano
+      sidekiq (>= 3.4)
+    capybara (2.12.1)
+      addressable
+      mime-types (>= 1.16)
+      nokogiri (>= 1.3.3)
+      rack (>= 1.0.0)
+      rack-test (>= 0.5.4)
+      xpath (~> 2.0)
+    capybara-webkit (1.12.0)
+      capybara (>= 2.3.0, < 2.13.0)
+      json
+    celluloid (0.16.0)
+      timers (~> 4.0.0)
+    celluloid-io (0.16.2)
+      celluloid (>= 0.16.0)
+      nio4r (>= 1.1.0)
+    chartkick (2.2.3)
+    childprocess (0.6.2)
+      ffi (~> 1.0, >= 1.0.11)
+    chronic (0.10.2)
+    cliver (0.3.2)
+    coderay (1.1.1)
+    coffee-rails (4.1.1)
+      coffee-script (>= 2.2.0)
+      railties (>= 4.0.0, < 5.1.x)
+    coffee-script (2.4.1)
+      coffee-script-source
+      execjs
+    coffee-script-source (1.12.2)
+    colored (1.2)
+    concurrent-ruby (1.0.5)
+    connection_pool (2.2.1)
+    crass (1.0.2)
+    curb (0.9.3)
+    dalli (2.7.6)
+    dalli-elasticache (0.2.0)
+      dalli (>= 1.0.0)
+    database_cleaner (1.5.3)
+    deep_merge (1.1.1)
+    derailed (0.1.0)
+      derailed_benchmarks
+    derailed_benchmarks (1.3.2)
+      benchmark-ips (~> 2)
+      get_process_mem (~> 0)
+      heapy (~> 0)
+      memory_profiler (~> 0)
+      rack (>= 1)
+      rake (> 10, < 13)
+      thor (~> 0.19)
+    devise (4.2.1)
+      bcrypt (~> 3.0)
+      orm_adapter (~> 0.1)
+      railties (>= 4.1.0, < 5.1)
+      responders
+      warden (~> 1.2.3)
+    devise-doorkeeper (1.1.2)
+      devise
+      doorkeeper
+      rails
+    devise-encryptable (0.2.0)
+      devise (>= 2.1.0)
+    devise_invitable (1.7.1)
+      actionmailer (>= 4.1.0)
+      devise (>= 4.0.0)
+    devise_openid_authenticatable (1.3.0)
+      devise (>= 1.3)
+      rack-openid (>= 1.2.0)
+    devise_uid (0.1.1)
+      devise (>= 3.0.0)
+      railties (>= 3.0)
+    diff-lcs (1.3)
+    dnsruby (1.60.0)
+    docker-api (1.33.2)
+      excon (>= 0.38.0)
+      json
+    domain_name (0.5.20170404)
+      unf (>= 0.0.5, < 1.0.0)
+    doorkeeper (4.2.5)
+      railties (>= 4.2)
+    dry-config (1.2.7)
+      deep_merge
+    eb_deployer (0.6.6)
+      aws-sdk (~> 2, >= 2.0.0)
+    elastic-beanstalk (1.2.2)
+      awesome_print
+      dry-config (>= 1.2.0)
+      eb_deployer (>= 0.6.1)
+      nokogiri
+      railties (>= 3.2)
+      rubyzip
+      table_print
+      time_diff
+    elasticsearch (5.0.3)
+      elasticsearch-api (= 5.0.3)
+      elasticsearch-transport (= 5.0.3)
+    elasticsearch-api (5.0.3)
+      multi_json
+    elasticsearch-transport (5.0.3)
+      faraday
+      multi_json
+    em-udns (0.3.6)
+    email-authentication (0.2.5)
+      dnsruby
+      thor
+    email_domain_validator (0.0.1)
+    email_validator (1.6.0)
+      activemodel
+    email_verifier (0.1.0)
+      dnsruby (>= 1.5)
+    engtagger (0.2.1)
+    errbase (0.0.3)
+    erubis (2.7.0)
+    eventmachine (1.2.3)
+    excon (0.55.0)
+    execjs (2.7.0)
+    factory_girl (4.8.0)
+      activesupport (>= 3.0.0)
+    factory_girl_rails (4.8.0)
+      factory_girl (~> 4.8.0)
+      railties (>= 3.0.0)
+    faraday (0.11.0)
+      multipart-post (>= 1.2, < 3)
+    faraday-cookie_jar (0.0.6)
+      faraday (>= 0.7.4)
+      http-cookie (~> 1.0.0)
+    faraday-encoding (0.0.4)
+      faraday
+    faraday-http-cache (1.3.1)
+      faraday (~> 0.8)
+    faraday_middleware (0.11.0.1)
+      faraday (>= 0.7.4, < 1.0)
+    faraday_middleware-aws-signers-v4 (0.1.6)
+      aws-sdk (~> 2)
+      faraday (~> 0.9)
+    fast-stemmer (1.0.2)
+    fastercsv (1.5.5)
+    fastimage (2.1.0)
+    ffaker (2.5.0)
+    ffi (1.9.18)
+    fletcher (0.6.9)
+      hashie
+      monetize
+      money
+      nokogiri
+      thor
+    formatador (0.2.5)
+    fuubar (2.2.0)
+      rspec-core (~> 3.0)
+      ruby-progressbar (~> 1.4)
+    fuzzy-string-match (0.9.7)
+      RubyInline (>= 3.8.6)
+    fuzzy_match (2.1.0)
+    geokit (1.11.0)
+    get_process_mem (0.2.1)
+    globalid (0.3.7)
+      activesupport (>= 4.1.0)
+    gman (7.0.1)
+      colored (~> 1.2)
+      iso_country_codes (~> 0.6)
+      naughty_or_nice (~> 2.0)
+    googlepagerank (1.0.4)
+      activesupport (>= 1.4.2)
+      hoe (>= 1.5.3)
+      hpricot (>= 0.4.86)
+    gravtastic (3.2.6)
+    gritter (1.2.0)
+    groupdate (3.2.0)
+      activesupport (>= 3)
+    growl (1.0.3)
+    guard (2.14.1)
+      formatador (>= 0.2.4)
+      listen (>= 2.7, < 4.0)
+      lumberjack (~> 1.0)
+      nenv (~> 0.1)
+      notiffany (~> 0.0)
+      pry (>= 0.9.12)
+      shellany (~> 0.0)
+      thor (>= 0.18.1)
+    guard-bundler (2.1.0)
+      bundler (~> 1.0)
+      guard (~> 2.2)
+      guard-compat (~> 1.1)
+    guard-compat (1.2.1)
+    guard-rails (0.8.0)
+      guard (~> 2.11)
+      guard-compat (~> 1.0)
+    guard-rspec (4.7.3)
+      guard (~> 2.1)
+      guard-compat (~> 1.1)
+      rspec (>= 2.99.0, < 4.0)
+    guard-sidekiq (0.1.0)
+      guard (>= 2)
+      sidekiq
+    guess (0.1.1)
+    guess_html_encoding (0.0.11)
+    hashie (3.5.5)
+    headless (2.3.1)
+    heapy (0.1.2)
+    high_voltage (3.0.0)
+    highline (1.7.8)
+    hightop (0.1.4)
+      activerecord
+    hirb (0.7.3)
+    hiredis (0.6.1)
+    hitimes (1.2.4)
+    hoe (3.16.0)
+      rake (>= 0.8, < 13.0)
+    hpricot (0.8.6)
+    htmlentities (4.3.4)
+    http-cookie (1.0.3)
+      domain_name (~> 0.5)
+    httparty (0.14.0)
+      multi_xml (>= 0.5.2)
+    i18n (0.7.0)
+    iconv (1.0.4)
+    infoboxer (0.2.7)
+      addressable
+      backports
+      htmlentities
+      mediawiktory (>= 0.0.2)
+      procme
+      terminal-table
+    iso_country_codes (0.7.6)
+    jbuilder (2.6.3)
+      activesupport (>= 3.0.0, < 5.2)
+      multi_json (~> 1.2)
+    jmespath (1.3.1)
+    jquery-rails (4.2.2)
+      rails-dom-testing (>= 1, < 3)
+      railties (>= 4.2.0)
+      thor (>= 0.14, < 2.0)
+    json (1.8.6)
+    jsonpath (0.5.8)
+      multi_json
+    jwt (1.5.6)
+    koala (2.5.0)
+      addressable
+      faraday
+    koudoku (1.2.4)
+      bluecloth
+      rails
+      stripe
+      stripe_event
+    launchy (2.4.3)
+      addressable (~> 2.3)
+    letter_opener (1.4.1)
+      launchy (~> 2.2)
+    letter_opener_web (1.3.1)
+      actionmailer (>= 3.2)
+      letter_opener (~> 1.0)
+      railties (>= 3.2)
+    linkedin-scraper (2.1.1)
+      mechanize (~> 2)
+      random_user_agent
+    listen (3.1.5)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+      ruby_dep (~> 1.2)
+    lograge (0.4.1)
+      actionpack (>= 4, < 5.1)
+      activesupport (>= 4, < 5.1)
+      railties (>= 4, < 5.1)
+    loofah (2.0.3)
+      nokogiri (>= 1.5.9)
+    lumberjack (1.0.11)
+    mail (2.6.4)
+      mime-types (>= 1.16, < 4)
+    marky_markov (0.3.5)
+      msgpack
+    mechanize (2.7.5)
+      domain_name (~> 0.5, >= 0.5.1)
+      http-cookie (~> 1.0)
+      mime-types (>= 1.17.2)
+      net-http-digest_auth (~> 1.1, >= 1.1.1)
+      net-http-persistent (~> 2.5, >= 2.5.2)
+      nokogiri (~> 1.6)
+      ntlm-http (~> 0.1, >= 0.1.1)
+      webrobots (>= 0.0.9, < 0.2)
+    mediawiktory (0.0.2)
+      addressable
+      faraday
+      faraday_middleware
+      hashie
+    memory_profiler (0.9.7)
+    metainspector (5.4.0)
+      addressable (~> 2.4)
+      faraday (~> 0.9)
+      faraday-cookie_jar (~> 0.0)
+      faraday-encoding (~> 0.0.3)
+      faraday-http-cache (~> 1.2)
+      faraday_middleware (~> 0.10)
+      fastimage (~> 2.0)
+      nesty (~> 1.0)
+      nokogiri (~> 1.6)
+    method_profiler (2.0.1)
+      hirb (>= 0.6.0)
+    method_source (0.8.2)
+    mime-types (2.99.3)
+    mini_portile2 (2.1.0)
+    minitest (5.10.1)
+    momentjs-rails (2.17.1)
+      railties (>= 3.1)
+    monetize (1.6.0)
+      money (~> 6.8)
+    money (6.8.1)
+      i18n (>= 0.6.4, <= 0.7.0)
+      sixarm_ruby_unaccent (>= 1.1.1, < 2)
+    msgpack (1.0.3)
+    multi_json (1.12.1)
+    multi_xml (0.6.0)
+    multipart-post (2.0.0)
+    mx-validator (0.0.1)
+      dnsruby (>= 1.5.4)
+    namae (0.11.3)
+    naughty_or_nice (2.1.0)
+      addressable (~> 2.3)
+      public_suffix (~> 2.0)
+    nenv (0.3.0)
+    nesty (1.0.2)
+    net-http-digest_auth (1.4.1)
+    net-http-persistent (2.9.4)
+    net-scp (1.2.1)
+      net-ssh (>= 2.6.5)
+    net-ssh (4.1.0)
+    net-telnet (0.1.1)
+    netrc (0.11.0)
+    nio4r (2.0.0)
+    nokogiri (1.7.1)
+      mini_portile2 (~> 2.1.0)
+    nokogumbo (1.4.10)
+      nokogiri
+    notiffany (0.1.1)
+      nenv (~> 0.1)
+      shellany (~> 0.0)
+    ntlm-http (0.1.1)
+    oauth (0.5.1)
+    oauth2 (1.3.1)
+      faraday (>= 0.8, < 0.12)
+      jwt (~> 1.0)
+      multi_json (~> 1.3)
+      multi_xml (~> 0.5)
+      rack (>= 1.2, < 3)
+    odyssey (0.2.0)
+      require_all
+    omniauth (1.6.1)
+      hashie (>= 3.4.6, < 3.6.0)
+      rack (>= 1.6.2, < 3)
+    omniauth-facebook (4.0.0)
+      omniauth-oauth2 (~> 1.2)
+    omniauth-google (1.0.2)
+      multi_json
+      omniauth (~> 1.0)
+      omniauth-oauth
+    omniauth-linkedin (0.2.0)
+      omniauth-oauth (~> 1.0)
+    omniauth-oauth (1.1.0)
+      oauth
+      omniauth (~> 1.0)
+    omniauth-oauth2 (1.4.0)
+      oauth2 (~> 1.0)
+      omniauth (~> 1.2)
+    omniauth-twitter (1.4.0)
+      omniauth-oauth (~> 1.1)
+      rack
+    open-weather (0.12.0)
+      json (~> 1)
+    orm_adapter (0.5.0)
+    paranoia (2.2.1)
+      activerecord (>= 4.0, < 5.1)
+    pg (0.20.0)
+    phonelib (0.6.10)
+    phony (2.15.41)
+    phony_rails (0.14.5)
+      activesupport (>= 3.0)
+      phony (~> 2.15)
+    pismo (0.7.4)
+      awesome_print
+      chronic
+      fast-stemmer
+      nokogiri
+      sanitize
+    polipus (0.5.1)
+      hiredis (~> 0.5, >= 0.4.5)
+      http-cookie (~> 1.0, >= 1.0.1)
+      nokogiri (~> 1.6, >= 1.6.0)
+      redis (~> 3.0, >= 3.0.4)
+      redis-bloomfilter (~> 0.0, >= 0.0.3)
+      redis-queue (~> 0.0, >= 0.0.4)
+    poltergeist (1.13.0)
+      capybara (~> 2.1)
+      cliver (~> 0.3.1)
+      websocket-driver (>= 0.2.0)
+    predictionio (0.9.6)
+      json (~> 1.8)
+    procme (0.0.3)
+    programr (0.0.1)
+    protected_attributes (1.1.3)
+      activemodel (>= 4.0.1, < 5.0)
+    pry (0.10.4)
+      coderay (~> 1.1.0)
+      method_source (~> 0.8.1)
+      slop (~> 3.4)
+    public_suffix (2.0.5)
+    quandl (1.0.3)
+      activesupport (>= 4.2.3)
+      json (~> 1.8.3)
+      rest-client (~> 1.8.0)
+    quiet_assets (1.1.0)
+      railties (>= 3.1, < 5.0)
+    rack (1.6.5)
+    rack-attack (5.0.1)
+      rack
+    rack-cache (1.7.0)
+      rack (>= 0.4)
+    rack-cors (0.4.1)
+    rack-openid (1.4.2)
+      rack (>= 1.1.0)
+      ruby-openid (>= 2.1.8)
+    rack-protection (1.5.3)
+      rack
+    rack-ssl-enforcer (0.2.9)
+    rack-test (0.6.3)
+      rack (>= 1.0)
+    rails (4.2.6)
+      actionmailer (= 4.2.6)
+      actionpack (= 4.2.6)
+      actionview (= 4.2.6)
+      activejob (= 4.2.6)
+      activemodel (= 4.2.6)
+      activerecord (= 4.2.6)
+      activesupport (= 4.2.6)
+      bundler (>= 1.3.0, < 2.0)
+      railties (= 4.2.6)
+      sprockets-rails
+    rails-deprecated_sanitizer (1.0.3)
+      activesupport (>= 4.2.0.alpha)
+    rails-dom-testing (1.0.8)
+      activesupport (>= 4.2.0.beta, < 5.0)
+      nokogiri (~> 1.6)
+      rails-deprecated_sanitizer (>= 1.0.1)
+    rails-html-sanitizer (1.0.3)
+      loofah (~> 2.0)
+    rails_layout (1.0.34)
+    railties (4.2.6)
+      actionpack (= 4.2.6)
+      activesupport (= 4.2.6)
+      rake (>= 0.8.7)
+      thor (>= 0.18.1, < 2.0)
+    rake (12.0.0)
+    rake-compiler (1.0.3)
+      rake
+    random_user_agent (1.0.0)
+    rb-fchange (0.0.6)
+      ffi
+    rb-fsevent (0.9.8)
+    rb-inotify (0.9.8)
+      ffi (>= 0.5.0)
+    rb-readline (0.5.4)
+    reality (0.0.4)
+      geokit
+      hashie
+      infoboxer (>= 0.2.4)
+      open-weather
+      quandl
+      ruby-sun-times
+      time_boots
+      timezone (>= 0.99.0)
+      tzinfo
+    redis (3.3.3)
+    redis-bloomfilter (0.0.3)
+      hiredis (~> 0.5, >= 0.5.2)
+      redis (~> 3.0, >= 3.0.4)
+    redis-namespace (1.5.3)
+      redis (~> 3.0, >= 3.0.4)
+    redis-objects (1.2.1)
+      redis (>= 3.0.2)
+    redis-queue (0.0.4)
+      hiredis (~> 0.5, >= 0.5.2)
+      redis (~> 3.0, >= 3.0.4)
+    require_all (1.4.0)
+    responders (2.3.0)
+      railties (>= 4.2.0, < 5.1)
+    rest-client (1.8.0)
+      http-cookie (>= 1.0.2, < 2.0)
+      mime-types (>= 1.16, < 3.0)
+      netrc (~> 0.7)
+    roo (2.7.1)
+      nokogiri (~> 1)
+      rubyzip (~> 1.1, < 2.0.0)
+    rspec (3.5.0)
+      rspec-core (~> 3.5.0)
+      rspec-expectations (~> 3.5.0)
+      rspec-mocks (~> 3.5.0)
+    rspec-core (3.5.4)
+      rspec-support (~> 3.5.0)
+    rspec-expectations (3.5.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.5.0)
+    rspec-its (1.2.0)
+      rspec-core (>= 3.0.0)
+      rspec-expectations (>= 3.0.0)
+    rspec-mocks (3.5.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.5.0)
+    rspec-rails (3.5.2)
+      actionpack (>= 3.0)
+      activesupport (>= 3.0)
+      railties (>= 3.0)
+      rspec-core (~> 3.5.0)
+      rspec-expectations (~> 3.5.0)
+      rspec-mocks (~> 3.5.0)
+      rspec-support (~> 3.5.0)
+    rspec-support (3.5.0)
+    ruby-mailchecker (3.0.23)
+    ruby-openid (2.7.0)
+    ruby-progressbar (1.8.1)
+    ruby-readability (0.7.0)
+      guess_html_encoding (>= 0.0.4)
+      nokogiri (>= 1.6.0)
+    ruby-stemmer (0.9.6)
+    ruby-sun-times (0.1.5)
+    ruby_dep (1.5.0)
+    rubydns (1.0.3)
+      celluloid (= 0.16.0)
+      celluloid-io (= 0.16.2)
+      timers (~> 4.0.1)
+    rubyzip (1.2.1)
+    sad_panda (1.0.1)
+      ruby-stemmer
+    safely_block (0.1.1)
+      errbase
+    sanitize (4.4.0)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.4.4)
+      nokogumbo (~> 1.4.1)
+    sass (3.4.23)
+    sass-rails (5.0.6)
+      railties (>= 4.0.0, < 6)
+      sass (~> 3.1)
+      sprockets (>= 2.8, < 4.0)
+      sprockets-rails (>= 2.0, < 4.0)
+      tilt (>= 1.1, < 3)
+    searchjoy (0.2.0)
+      activerecord (>= 4)
+      chartkick
+      groupdate
+    searchkick (2.1.1)
+      activemodel (>= 4.1)
+      elasticsearch (>= 1)
+      hashie
+    selenium-webdriver (3.3.0)
+      childprocess (~> 0.5)
+      rubyzip (~> 1.0)
+      websocket (~> 1.0)
+    sentimental (1.4.1)
+    serverspec (2.38.0)
+      multi_json
+      rspec (~> 3.0)
+      rspec-its
+      specinfra (~> 2.53)
+    sfl (2.3)
+    shellany (0.0.1)
+    sidekiq (4.2.10)
+      concurrent-ruby (~> 1.0)
+      connection_pool (~> 2.2, >= 2.2.0)
+      rack-protection (>= 1.5.0)
+      redis (~> 3.2, >= 3.2.1)
+    sidekiq-benchmark (0.5.2)
+      chartkick (>= 1.1.1)
+      sidekiq (~> 4)
+    sidekiq-failures (0.4.5)
+      sidekiq (>= 2.16.0)
+    sidekiq-hierarchy (2.1.0)
+      connection_pool (~> 2.0)
+      sidekiq (> 3.3, < 5)
+    sidekiq-history (0.0.7)
+      sidekiq (>= 3.0.0)
+    sidekiq-lock (0.3.0)
+      redis (>= 3.0.5)
+      sidekiq (>= 2.14.0)
+    sidekiq-monitor-stats (0.0.1)
+      sidekiq
+    sidekiq-statistic (1.2.0)
+      sidekiq (>= 3.3.4, < 5)
+    sidekiq-statsd (0.1.5)
+      activesupport
+      sidekiq (>= 2.6)
+      statsd-ruby (>= 1.1.0)
+    sidekiq-status (0.6.0)
+      sidekiq (>= 2.7)
+    sidekiq-throttler (0.5.1)
+      activesupport
+      sidekiq (>= 2.5, < 5.0)
+    sidekiq-unique-jobs (4.0.18)
+      sidekiq (>= 2.6)
+      thor
+    sinatra (1.4.8)
+      rack (~> 1.5)
+      rack-protection (~> 1.4)
+      tilt (>= 1.3, < 3)
+    sixarm_ruby_unaccent (1.1.1)
+    slop (3.6.0)
+    social_shares (0.3.2)
+      json
+      rest-client
+    specinfra (2.67.3)
+      net-scp
+      net-ssh (>= 2.7, < 5.0)
+      net-telnet
+      sfl
+    spring (2.0.1)
+      activesupport (>= 4.2)
+    spring-commands-rspec (1.0.4)
+      spring (>= 0.9.1)
+    sprockets (3.7.1)
+      concurrent-ruby (~> 1.0)
+      rack (> 1, < 3)
+    sprockets-rails (3.2.0)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    sshkit (1.12.0)
+      net-scp (>= 1.1.2)
+      net-ssh (>= 2.8.0)
+    sshkit-interactive (0.2.0)
+      sshkit (~> 1.9)
+    stackprof (0.2.10)
+    statsd-ruby (1.3.0)
+    stopwords-filter (0.4.1)
+    stripe (2.0.1)
+      faraday (~> 0)
+    stripe_event (1.6.0)
+      activesupport (>= 3.1)
+      stripe (>= 1.6, < 3.0)
+    summarize (1.0.3)
+      rake-compiler
+    swot (1.0.0)
+      naughty_or_nice (~> 2.0)
+      public_suffix
+    table_print (1.5.6)
+    terminal-table (1.7.3)
+      unicode-display_width (~> 1.1.1)
+    text (1.3.1)
+    thor (0.19.4)
+    thread_safe (0.3.6)
+    tika-app (0.2.1)
+    tilt (2.0.7)
+    time_boots (0.0.2)
+    time_diff (0.3.0)
+      activesupport
+      i18n
+    timers (4.0.4)
+      hitimes
+    timezone (1.2.6)
+    tzinfo (1.2.3)
+      thread_safe (~> 0.1)
+    uglifier (3.1.13)
+      execjs (>= 0.3.0, < 3)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.2)
+    unicode-display_width (1.1.3)
+    valid_url (0.0.4)
+      addressable
+      rails
+    validate_url (1.0.2)
+      activemodel (>= 3.0.0)
+      addressable
+    validates_phone_number (2.0.1)
+    warden (1.2.7)
+      rack (>= 1.0)
+    webrobots (0.1.2)
+    websocket (1.2.4)
+    websocket-driver (0.6.5)
+      websocket-extensions (>= 0.1.0)
+    websocket-extensions (0.1.2)
+    whatlanguage (1.0.6)
+    whenever (0.9.7)
+      chronic (>= 0.6.3)
+    whois (4.0.1)
+    will_paginate (3.1.5)
+    word_count_analyzer (1.0.0)
+      engtagger
+    words_counted (1.0.2)
+    xpath (2.0.0)
+      nokogiri (~> 1.3)
+    zip-zip (0.3)
+      rubyzip (>= 1.0.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  Indirizzo
+  PageRankr
+  ValidateEmail
+  active_median
+  activejob_backport
+  ahoy_email
+  apartment
+  area
+  bcrypt-ruby
+  benchmark-ips
+  better_errors
+  bootstrap-sass
+  bson_ext
+  by_star
+  capistrano
+  capistrano-bundler
+  capistrano-composer
+  capistrano-rails
+  capistrano-rails-console
+  capistrano-rvm
+  capistrano-sidekiq
+  capybara
+  capybara-webkit
+  chartkick
+  coffee-rails (~> 4.1.0)
+  connection_pool
+  curb
+  dalli
+  dalli-elasticache
+  database_cleaner
+  derailed
+  devise
+  devise-doorkeeper
+  devise-encryptable
+  devise_invitable
+  devise_openid_authenticatable
+  devise_uid
+  dnsruby
+  docker-api
+  doorkeeper
+  elastic-beanstalk
+  elasticsearch (>= 1.0.15)
+  em-udns
+  email-authentication
+  email_domain_validator
+  email_validator
+  email_verifier
+  engtagger
+  eventmachine
+  execjs
+  factory_girl_rails
+  faraday_middleware-aws-signers-v4
+  ffaker
+  ffi
+  fletcher
+  fuubar
+  fuzzy-string-match
+  fuzzy_match
+  gman
+  googlepagerank
+  gravtastic
+  gritter (= 1.2.0)
+  groupdate
+  growl
+  guard
+  guard-bundler
+  guard-rails
+  guard-rspec
+  guard-sidekiq
+  guess
+  headless
+  high_voltage
+  highline
+  hightop
+  hiredis (~> 0.6.1)
+  iconv
+  jbuilder (~> 2.0)
+  jquery-rails
+  koala (~> 2.2)
+  koudoku
+  launchy
+  letter_opener
+  letter_opener_web
+  linkedin-scraper
+  lograge
+  marky_markov
+  mechanize
+  metainspector
+  method_profiler
+  momentjs-rails
+  mx-validator
+  namae
+  net-telnet
+  nokogiri
+  oauth2
+  odyssey
+  omniauth
+  omniauth-facebook
+  omniauth-google
+  omniauth-linkedin
+  omniauth-oauth2
+  omniauth-twitter
+  paranoia (~> 2.2)
+  pg
+  phonelib
+  phony_rails
+  pismo
+  polipus (~> 0.5.1)
+  poltergeist
+  predictionio (= 0.9.6)
+  programr
+  protected_attributes
+  quiet_assets
+  rack-attack
+  rack-cache
+  rack-cors
+  rack-ssl-enforcer
+  rails (= 4.2.6)
+  rails_layout
+  rb-fchange
+  rb-fsevent
+  rb-inotify
+  rb-readline
+  reality
+  redis (~> 3.2)
+  redis-namespace
+  redis-objects
+  roo
+  rspec-core
+  rspec-rails
+  ruby-mailchecker
+  ruby-readability
+  rubydns
+  sad_panda
+  sass-rails (~> 5.0)
+  searchjoy
+  searchkick
+  selenium-webdriver
+  sentimental
+  serverspec
+  sidekiq (< 5)
+  sidekiq-benchmark
+  sidekiq-failures
+  sidekiq-hierarchy
+  sidekiq-history
+  sidekiq-lock
+  sidekiq-monitor-stats
+  sidekiq-statistic
+  sidekiq-statsd
+  sidekiq-status
+  sidekiq-throttler
+  sidekiq-unique-jobs
+  sinatra
+  social_shares
+  spring-commands-rspec
+  stackprof
+  statsd-ruby
+  stopwords-filter
+  summarize
+  swot
+  text
+  tika-app
+  uglifier (>= 1.3.0)
+  valid_url
+  validate_url
+  validates_phone_number
+  whatlanguage
+  whenever
+  whois
+  will_paginate
+  word_count_analyzer
+  words_counted
+  zip-zip
+
+BUNDLED WITH
+   1.14.6

+ 69 - 0
www/Guardfile

@@ -0,0 +1,69 @@
+
+
+guard :bundler do
+  require 'guard/bundler'
+  require 'guard/bundler/verify'
+  helper = Guard::Bundler::Verify.new
+
+  files = ['Gemfile']
+  files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) }
+  files.each { |file| watch(helper.real_path(file)) }
+end
+
+
+  guard 'rails' do
+    watch('Gemfile.lock')
+    watch(%r{^(config|lib)/.*})
+  end
+
+# Sidekiq files
+# guard 'sidekiq', :config => '../engine/config/sidekiq.yml' do
+#   watch(%r{^workers/(.+)\.rb$})
+#   watch(%r{^models/(.+)\.rb$})
+# end
+
+
+guard :rspec, cmd: "bundle exec rspec" do
+  require "guard/rspec/dsl"
+  dsl = Guard::RSpec::Dsl.new(self)
+
+  # RSpec files
+  rspec = dsl.rspec
+  watch(rspec.spec_helper) { rspec.spec_dir }
+  watch(rspec.spec_support) { rspec.spec_dir }
+  watch(rspec.spec_files)
+
+  # Ruby files
+  ruby = dsl.ruby
+  dsl.watch_spec_files_for(ruby.lib_files)
+
+  # Rails files
+  rails = dsl.rails(view_extensions: %w(erb haml slim))
+  dsl.watch_spec_files_for(rails.app_files)
+  dsl.watch_spec_files_for(rails.views)
+
+  watch(rails.controllers) do |m|
+    [
+        rspec.spec.call("routing/#{m[1]}_routing"),
+        rspec.spec.call("controllers/#{m[1]}_controller"),
+        rspec.spec.call("features/#{m[1]}_spec")
+    ]
+  end
+
+  # Rails config changes
+  watch(rails.spec_helper)     { rspec.spec_dir }
+  watch(rails.routes)          { "#{rspec.spec_dir}/routing" }
+  watch(rails.app_controller)  { "#{rspec.spec_dir}/controllers" }
+
+  # Capybara features specs
+  watch(rails.view_dirs)     { |m| rspec.spec.call("features/#{m[1]}") }
+  watch(rails.layouts)       { |m| rspec.spec.call("features/#{m[1]}") }
+
+  # Turnip features and steps
+  watch(%r{^spec/acceptance/(.+)\.feature$})
+  watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
+    Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
+  end
+end
+
+

+ 2 - 0
www/Procfile

@@ -0,0 +1,2 @@
+web: rails s -e $RAILS_ENV -p $RAILS_PORT
+worker: sidekiq start -L log/sidekiq.log -P tmp/pids/sidekiq.pid -e $RAILS_ENV

+ 0 - 0
www/README.md


+ 6 - 0
www/Rakefile

@@ -0,0 +1,6 @@
+# Add your own tasks in files placed in lib/tasks ending in .rake,
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
+
+require File.expand_path('../config/application', __FILE__)
+Apartment.db_migrate_tenants = true
+Rails.application.load_tasks

BIN
www/app/assets/fonts/FontAwesome.otf


BIN
www/app/assets/fonts/fontawesome-webfont.eot


File diff suppressed because it is too large
+ 196 - 0
www/app/assets/fonts/fontawesome-webfont.svg


BIN
www/app/assets/fonts/fontawesome-webfont.ttf


BIN
www/app/assets/fonts/fontawesome-webfont.woff


BIN
www/app/assets/fonts/fontawesome-webfont.woff2


BIN
www/app/assets/fonts/orbitron-black.otf


BIN
www/app/assets/fonts/orbitron-bold.otf


BIN
www/app/assets/fonts/orbitron-light.otf


BIN
www/app/assets/fonts/orbitron-light.ttf


BIN
www/app/assets/fonts/orbitron-medium.otf


BIN
www/app/assets/fonts/proximanova-black-webfont.eot


BIN
www/app/assets/fonts/proximanova-bold-webfont.eot


BIN
www/app/assets/fonts/proximanova-light-webfont.eot


BIN
www/app/assets/fonts/proximanova-regular-webfont.eot


BIN
www/app/assets/fonts/proximanova-semibold-webfont.eot


BIN
www/app/assets/fonts/proximanova-thin-webfont.eot


BIN
www/app/assets/fonts/themify.eot


File diff suppressed because it is too large
+ 24 - 0
www/app/assets/fonts/themify.svg


BIN
www/app/assets/fonts/themify.ttf


BIN
www/app/assets/fonts/themify.woff


BIN
www/app/assets/images/ajax-loader.gif


BIN
www/app/assets/images/america.jpg


BIN
www/app/assets/images/avatar-blank.jpg


BIN
www/app/assets/images/avatar.png


BIN
www/app/assets/images/cards.png


BIN
www/app/assets/images/client1.png


BIN
www/app/assets/images/dashboard.png


BIN
www/app/assets/images/engine.jpg


BIN
www/app/assets/images/error.gif


BIN
www/app/assets/images/favicon-16x16.png


BIN
www/app/assets/images/favicon-32x32.png


BIN
www/app/assets/images/favicon-96x96.png


BIN
www/app/assets/images/favicon.ico


BIN
www/app/assets/images/feature-shadow.png


BIN
www/app/assets/images/hot-coffee-cinemagraph-collection-3.gif


BIN
www/app/assets/images/icon_18px_1.png


BIN
www/app/assets/images/icon_18px_2.png


BIN
www/app/assets/images/image_77px_not2.png


BIN
www/app/assets/images/iphone.png


BIN
www/app/assets/images/launch.jpg


BIN
www/app/assets/images/launchbg.jpg


BIN
www/app/assets/images/loader.gif


BIN
www/app/assets/images/logo-sm.png


BIN
www/app/assets/images/logo.png


BIN
www/app/assets/images/meteors.jpg


BIN
www/app/assets/images/mock-up1.png


BIN
www/app/assets/images/mock-up2-k'.png


BIN
www/app/assets/images/mock-up2.png


BIN
www/app/assets/images/nightsky.jpg


BIN
www/app/assets/images/not1_bg_image.jpg


BIN
www/app/assets/images/not3_bg_image.jpg


BIN
www/app/assets/images/not4_avatar.png


BIN
www/app/assets/images/not4_bg_image.jpg


BIN
www/app/assets/images/not5_bg_image.jpg


BIN
www/app/assets/images/not5_icon61px.png


BIN
www/app/assets/images/not6_bg_image.jpg


BIN
www/app/assets/images/not6_icon75px.png


BIN
www/app/assets/images/pattern1.jpg


BIN
www/app/assets/images/pattern1.png


BIN
www/app/assets/images/pattern2.jpg


BIN
www/app/assets/images/preview.png


BIN
www/app/assets/images/resource/check.png


BIN
www/app/assets/images/rolladeck_bg.png


BIN
www/app/assets/images/secure.png


BIN
www/app/assets/images/sphere.png


BIN
www/app/assets/images/spin.jpg


BIN
www/app/assets/images/sprite-skin-flat.png


BIN
www/app/assets/images/ssl.png


BIN
www/app/assets/images/stripe.png


BIN
www/app/assets/images/success.gif


BIN
www/app/assets/images/thumbsup.jpg


BIN
www/app/assets/images/tilebg.jpg


BIN
www/app/assets/images/work.jpg


File diff suppressed because it is too large
+ 44 - 0
www/app/assets/javascripts/app.js


+ 14 - 0
www/app/assets/javascripts/application.js

@@ -0,0 +1,14 @@
+// This is a manifest file that'll be compiled into application.js, which will include all the files
+// listed below.
+//
+// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
+// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
+//
+// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
+// compiled file.
+//
+// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
+// about supported directives.
+//
+//= require moment
+//= require bootstrap

File diff suppressed because it is too large
+ 19 - 0
www/app/assets/javascripts/bootstrap-sortable.js


File diff suppressed because it is too large
+ 21 - 0
www/app/assets/javascripts/bootstrap-tour-standalone.min.js


File diff suppressed because it is too large
+ 21 - 0
www/app/assets/javascripts/bootstrap-tour.min.js


File diff suppressed because it is too large
+ 5 - 0
www/app/assets/javascripts/bootstrap.min.js


+ 3 - 0
www/app/assets/javascripts/bots.coffee

@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/

+ 3 - 0
www/app/assets/javascripts/brains.coffee

@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/

+ 155 - 0
www/app/assets/javascripts/common.js

@@ -0,0 +1,155 @@
+$(document).ready(function(){
+    
+    "use strict";
+
+    //***** Progress Bar *****//
+    var loaded = 0;
+    var imgCounter = $("body img").length;
+    if(imgCounter > 0){
+        $("body img").load(function() {
+          loaded++;
+          var newWidthPercentage = (loaded / imgCounter) * 100;
+          console.log('ok');
+          animateLoader(newWidthPercentage + '%');      
+        });
+    }else{
+      setTimeout(function(){
+          $("#progressBar").css({
+            "opacity":0,
+            "width":"100%"
+          });
+      },500);
+    }
+    function animateLoader(newWidth) {
+        $("#progressBar").width(newWidth);
+        if(imgCounter === loaded){
+          setTimeout(function(){
+              $("#progressBar").animate({opacity:0});
+          },500);
+        }
+    }
+
+    //***** Side Menu *****//
+      $(".side-menus li.menu-item-has-children > a").on("click",function(){
+          $(this).parent().siblings().children("ul").slideUp();
+          $(this).parent().siblings().removeClass("active");
+          $(this).parent().children("ul").slideToggle();
+          $(this).parent().toggleClass("active");
+          return false;
+      });
+
+      //***** Side Menu Option *****//
+      $('.menu-options').on("click", function(){
+        $(".side-header.opened-menu").toggleClass('slide-menu');
+        $(".main-content").toggleClass('wide-content');
+        $("footer").toggleClass('wide-footer');
+        $(".menu-options").toggleClass('active');
+      });
+
+    /*** FIXED Menu APPEARS ON SCROLL DOWN ***/   
+    $(window).scroll(function() {    
+        var scroll = $(window).scrollTop();
+        if (scroll >= 10) {
+        $(".side-header").addClass("sticky");
+        }
+        else{
+        $(".side-header").removeClass("sticky");
+        $(".side-header").addClass("");
+        }
+    }); 
+
+    $(".side-menus nav > ul > li ul li > a").on("click", function(){
+        $(".side-header").removeClass("slide-menu");
+        $(".menu-options").removeClass("active");
+    });
+
+      //***** Quick Stats *****//
+      $('.show-stats').on("click", function(){
+        $(".toggle-content").addClass('active');
+      });
+     
+       //***** Quick Stats *****//
+      $('.toggle-content > span').on("click", function(){
+        $(".toggle-content").removeClass('active');
+      });
+
+      //***** Quick Stats *****//
+      $('.quick-links > ul > li > a').on("click", function(){
+        $(this).parent().siblings().find('.dialouge').fadeOut();
+        $(this).next('.dialouge').fadeIn();
+        return false;
+      });
+
+      $("html").on("click", function(){
+        $(".dialouge").fadeOut();
+      });
+      $(".quick-links > ul > li > a, .dialouge").on("click",function(e){
+            e.stopPropagation();
+        });
+      
+      //***** Toggle Full Screen *****//
+      function goFullScreen() {
+        var
+            el = document.documentElement
+          , rfs =
+                 el.requestFullScreen
+              || el.webkitRequestFullScreen
+              || el.mozRequestFullScreen
+              || el.msRequestFullscreen
+
+      ;
+      rfs.call(el);
+      }
+      $("#toolFullScreen").on("click",function() {
+          goFullScreen();
+      });
+
+      //***** Side Menu *****//
+      $(function(){
+          $('.side-menus').slimScroll({
+              height: '400px',
+              wheelStep: 10,
+              size: '2px'
+          });
+      });
+
+
+      $(".data-attributes span").peity("donut");
+
+    // Activates Tooltips for Social Links
+    $('[data-toggle="tooltip"]').tooltip(); 
+
+    // Activates Popovers for Social Links 
+    $('[data-toggle="popover"]').popover(); 
+
+
+    //*** Refresh Content ***//
+    $('.refresh-content').on("click", function(){
+      $(this).parent().parent().addClass("loading-wait").delay(3000).queue(function(next){
+        $(this).removeClass("loading-wait");
+        next();
+    });
+    $(this).addClass("fa-spin").delay(3000).queue(function(next){
+        $(this).removeClass("fa-spin");
+        next();
+    });
+    });
+
+    //*** Expand Content ***//
+    $('.expand-content').on("click", function(){
+      $(this).parent().parent().toggleClass("expand-this");
+    });
+
+    //*** Delete Content ***//
+    $('.close-content').on("click", function(){
+      $(this).parent().parent().slideUp();
+    });
+
+    // Activates Tooltips for Social Links
+    $('.tooltip-social').tooltip({
+      selector: "a[data-toggle=tooltip]"
+    });
+
+
+
+});

+ 3 - 0
www/app/assets/javascripts/image_assets.coffee

@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/

+ 12 - 0
www/app/assets/javascripts/import.coffee

@@ -0,0 +1,12 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/
+$(document).ready ->
+
+$realInputField = $('#real_file')
+
+$realInputField.change ->
+$('#file-display').val $(@).val().replace(/^.*[\\\/]/, '')
+
+$('#upload-btn').click ->
+$realInputField.click()

+ 232 - 0
www/app/assets/javascripts/jqcloud-1.0.4.js

@@ -0,0 +1,232 @@
+/*!
+ * jQCloud Plugin for jQuery
+ *
+ * Version 1.0.4
+ *
+ * Copyright 2011, Luca Ongaro
+ * Licensed under the MIT license.
+ *
+ * Date: 2013-05-09 18:54:22 +0200
+*/
+
+(function( $ ) {
+  "use strict";
+  $.fn.jQCloud = function(word_array, options) {
+    // Reference to the container element
+    var $this = this;
+    // Namespace word ids to avoid collisions between multiple clouds
+    var cloud_namespace = $this.attr('id') || Math.floor((Math.random()*1000000)).toString(36);
+
+    // Default options value
+    var default_options = {
+      width: $this.width(),
+      height: $this.height(),
+      center: {
+        x: ((options && options.width) ? options.width : $this.width()) / 2.0,
+        y: ((options && options.height) ? options.height : $this.height()) / 2.0
+      },
+      delayedMode: word_array.length > 50,
+      shape: false, // It defaults to elliptic shape
+      encodeURI: true,
+      removeOverflowing: true
+    };
+
+    options = $.extend(default_options, options || {});
+
+    // Add the "jqcloud" class to the container for easy CSS styling, set container width/height
+    $this.addClass("jqcloud").width(options.width).height(options.height);
+
+    // Container's CSS position cannot be 'static'
+    if ($this.css("position") === "static") {
+      $this.css("position", "relative");
+    }
+
+    var drawWordCloud = function() {
+      // Helper function to test if an element overlaps others
+      var hitTest = function(elem, other_elems) {
+        // Pairwise overlap detection
+        var overlapping = function(a, b) {
+          if (Math.abs(2.0*a.offsetLeft + a.offsetWidth - 2.0*b.offsetLeft - b.offsetWidth) < a.offsetWidth + b.offsetWidth) {
+            if (Math.abs(2.0*a.offsetTop + a.offsetHeight - 2.0*b.offsetTop - b.offsetHeight) < a.offsetHeight + b.offsetHeight) {
+              return true;
+            }
+          }
+          return false;
+        };
+        var i = 0;
+        // Check elements for overlap one by one, stop and return false as soon as an overlap is found
+        for(i = 0; i < other_elems.length; i++) {
+          if (overlapping(elem, other_elems[i])) {
+            return true;
+          }
+        }
+        return false;
+      };
+
+      // Make sure every weight is a number before sorting
+      for (var i = 0; i < word_array.length; i++) {
+        word_array[i].weight = parseFloat(word_array[i].weight, 10);
+      }
+
+      // Sort word_array from the word with the highest weight to the one with the lowest
+      word_array.sort(function(a, b) { if (a.weight < b.weight) {return 1;} else if (a.weight > b.weight) {return -1;} else {return 0;} });
+
+      var step = (options.shape === "rectangular") ? 18.0 : 2.0,
+          already_placed_words = [],
+          aspect_ratio = options.width / options.height;
+
+      // Function to draw a word, by moving it in spiral until it finds a suitable empty place. This will be iterated on each word.
+      var drawOneWord = function(index, word) {
+        // Define the ID attribute of the span that will wrap the word, and the associated jQuery selector string
+        var word_id = cloud_namespace + "_word_" + index,
+            word_selector = "#" + word_id,
+            angle = 6.28 * Math.random(),
+            radius = 0.0,
+
+            // Only used if option.shape == 'rectangular'
+            steps_in_direction = 0.0,
+            quarter_turns = 0.0,
+
+            weight = 5,
+            custom_class = "",
+            inner_html = "",
+            word_span;
+
+        // Extend word html options with defaults
+        word.html = $.extend(word.html, {id: word_id});
+
+        // If custom class was specified, put them into a variable and remove it from html attrs, to avoid overwriting classes set by jQCloud
+        if (word.html && word.html["class"]) {
+          custom_class = word.html["class"];
+          delete word.html["class"];
+        }
+
+        // Check if min(weight) > max(weight) otherwise use default
+        if (word_array[0].weight > word_array[word_array.length - 1].weight) {
+          // Linearly map the original weight to a discrete scale from 1 to 10
+          weight = Math.round((word.weight - word_array[word_array.length - 1].weight) /
+                              (word_array[0].weight - word_array[word_array.length - 1].weight) * 9.0) + 1;
+        }
+        word_span = $('<span>').attr(word.html).addClass('w' + weight + " " + custom_class);
+
+        // Append link if word.url attribute was set
+        if (word.link) {
+          // If link is a string, then use it as the link href
+          if (typeof word.link === "string") {
+            word.link = {href: word.link};
+          }
+
+          // Extend link html options with defaults
+          if ( options.encodeURI ) {
+            word.link = $.extend(word.link, { href: encodeURI(word.link.href).replace(/'/g, "%27") });
+          }
+
+          inner_html = $('<a>').attr(word.link).text(word.text);
+        } else {
+          inner_html = word.text;
+        }
+        word_span.append(inner_html);
+
+        // Bind handlers to words
+        if (!!word.handlers) {
+          for (var prop in word.handlers) {
+            if (word.handlers.hasOwnProperty(prop) && typeof word.handlers[prop] === 'function') {
+              $(word_span).bind(prop, word.handlers[prop]);
+            }
+          }
+        }
+
+        $this.append(word_span);
+
+        var width = word_span.width(),
+            height = word_span.height(),
+            left = options.center.x - width / 2.0,
+            top = options.center.y - height / 2.0;
+
+        // Save a reference to the style property, for better performance
+        var word_style = word_span[0].style;
+        word_style.position = "absolute";
+        word_style.left = left + "px";
+        word_style.top = top + "px";
+
+        while(hitTest(word_span[0], already_placed_words)) {
+          // option shape is 'rectangular' so move the word in a rectangular spiral
+          if (options.shape === "rectangular") {
+            steps_in_direction++;
+            if (steps_in_direction * step > (1 + Math.floor(quarter_turns / 2.0)) * step * ((quarter_turns % 4 % 2) === 0 ? 1 : aspect_ratio)) {
+              steps_in_direction = 0.0;
+              quarter_turns++;
+            }
+            switch(quarter_turns % 4) {
+              case 1:
+                left += step * aspect_ratio + Math.random() * 2.0;
+                break;
+              case 2:
+                top -= step + Math.random() * 2.0;
+                break;
+              case 3:
+                left -= step * aspect_ratio + Math.random() * 2.0;
+                break;
+              case 0:
+                top += step + Math.random() * 2.0;
+                break;
+            }
+          } else { // Default settings: elliptic spiral shape
+            radius += step;
+            angle += (index % 2 === 0 ? 1 : -1)*step;
+
+            left = options.center.x - (width / 2.0) + (radius*Math.cos(angle)) * aspect_ratio;
+            top = options.center.y + radius*Math.sin(angle) - (height / 2.0);
+          }
+          word_style.left = left + "px";
+          word_style.top = top + "px";
+        }
+
+        // Don't render word if part of it would be outside the container
+        if (options.removeOverflowing && (left < 0 || top < 0 || (left + width) > options.width || (top + height) > options.height)) {
+          word_span.remove()
+          return;
+        }
+
+
+        already_placed_words.push(word_span[0]);
+
+        // Invoke callback if existing
+        if ($.isFunction(word.afterWordRender)) {
+          word.afterWordRender.call(word_span);
+        }
+      };
+
+      var drawOneWordDelayed = function(index) {
+        index = index || 0;
+        if (!$this.is(':visible')) { // if not visible then do not attempt to draw
+          setTimeout(function(){drawOneWordDelayed(index);},10);
+          return;
+        }
+        if (index < word_array.length) {
+          drawOneWord(index, word_array[index]);
+          setTimeout(function(){drawOneWordDelayed(index + 1);}, 10);
+        } else {
+          if ($.isFunction(options.afterCloudRender)) {
+            options.afterCloudRender.call($this);
+          }
+        }
+      };
+
+      // Iterate drawOneWord on every word. The way the iteration is done depends on the drawing mode (delayedMode is true or false)
+      if (options.delayedMode){
+        drawOneWordDelayed();
+      }
+      else {
+        $.each(word_array, drawOneWord);
+        if ($.isFunction(options.afterCloudRender)) {
+          options.afterCloudRender.call($this);
+        }
+      }
+    };
+
+    // Delay execution so that the browser can render the page before the computatively intensive word cloud drawing
+    setTimeout(function(){drawWordCloud();}, 10);
+    return $this;
+  };
+})(jQuery);

Some files were not shown because too many files changed in this diff