chanzuckerberg / sorbet-rails

A set of tools to make the Sorbet typechecker work with Ruby on Rails seamlessly.
MIT License
637 stars 82 forks source link

Stack overflow when running `srb rbi hidden-definitions` #404

Open tophattom opened 3 years ago

tophattom commented 3 years ago

Describe the bug: I'm getting the following error when trying to run srb rbi hidden-definitions after installing sorbet-rails:

Naming ActiveRecordTraceback (most recent call last):
    10921: from /gems/gems/sorbet-0.5.6336/bin/srb-rbi:237:in `<main>'
    10920: from /gems/gems/sorbet-0.5.6336/bin/srb-rbi:224:in `main'
    10919: from /gems/gems/sorbet-0.5.6336/bin/srb-rbi:232:in `block in make_step'
    10918: from /gems/gems/sorbet-0.5.6336/lib/hidden-definition-finder.rb:38:in `main'
    10917: from /gems/gems/sorbet-0.5.6336/lib/hidden-definition-finder.rb:44:in `main'
    10916: from /gems/gems/sorbet-0.5.6336/lib/hidden-definition-finder.rb:75:in `all_modules_and_aliases'
    10915: from /gems/gems/sorbet-0.5.6336/lib/hidden-definition-finder.rb:68:in `constant_cache'
    10914: from /ge ms/gems/sorbet-0.5.6336/lib/gem-generator-tracepoint/tracer.rb:40:in `new'
     ... 10909 levels...
        4: from /gems/gems/sorbet-rails-0.7.3/lib/sorbet-rails/railtie.rb:32:in `inherited'
        3: from /gems/gems/sorbet-rails-0.7.3/lib/sorbet-rails/railtie.rb:32:in `inherited'
        2: from /gems/gems/sorbet-rails-0.7.3/lib/sorbet-rails/railtie.rb:32:in `inherited'
        1: from /gems/gems/sorbet-rails-0.7.3/lib/sorbet-rails/railtie.rb:32:in `inherited'
/gems/gems/sorbet-rails-0.7.3/lib/sorbet-rails/railtie.rb:32:in `inherited': stack level too deep (SystemStackError)

Steps to reproduce: Install sorbet-rails, run srb rbi hidden-definitions either before of after running Rails RBI generator tasks.

Expected behavior: Should not crash.

Versions:

tophattom commented 3 years ago

Still happens with Sorbet version 0.5.6357

hdoan741 commented 3 years ago

@tophattom Hi Jaakko, can I ask if your ActiveRecord::Base has any method overriding "inherited"? I haven't seen this bug before and I suspect there is something that conflicts with the way sorbet-rails set up the inherited method.

https://github.com/chanzuckerberg/sorbet-rails/blob/master/lib/sorbet-rails/railtie.rb#L32

    class ::ActiveRecord::Base
        # open ActiveRecord::Base to override inherited
        class << self
          alias_method :sbr_old_inherited, :inherited

          def inherited(child)
            sbr_old_inherited(child)
            # make the relation classes public so that they can be used for sorbet runtime checks
           ...
tophattom commented 3 years ago

I can't find anything in our codebase that would override it. Maybe some gem could do that? I couldn't figure out what gem would do that if any so I'll attach my Gemfile and Gemfile.lock here.

Gemfile ```ruby source 'https://rubygems.org' ruby '2.5.5' gem 'rails', '5.2.4.5' # Not part of Ruby in Ruby 2.4 gem 'xmlrpc', '0.3.0' # MySQL gem 'mysql2', '0.5.3' # Elasticsearch client gem 'elasticsearch', '~> 2.0.2' # Authentication library gem 'devise', '4.7.1' # Easy-to-setup Rails administration gem 'rails_admin', '1.4.3' gem 'codemirror-rails' # Basic localizations for most languages gem 'rails-i18n', '5.1.1' # All sorts of monitoring gem 'dogstatsd-ruby', '3.3.0' # mini replacement for RMagick gem 'mini_magick', '~> 4.9.5' # XLSX reader. It's in the name! gem 'simple_xlsx_reader', '1.0.4', require: false # Geospatial data types gem 'rgeo', '1.0.0' # GeoJSON extensions for RGeo gem 'rgeo-geojson', '2.0.0' # Encrypted model attributes gem 'attr_encrypted', '3.1.0' # Application timeout gem "rack-timeout", '0.5.1', require: "rack/timeout/base" # ---- Engines ---------------------------------------------------------------- gem 'api_v1', path: 'engines/api_v1' gem 'diy_forms', path: 'engines/diy_forms' gem 'newsroom', path: 'engines/newsroom' gem 'systems_api', path: 'engines/systems_api' gem 'webhooks', path: 'engines/webhooks' # ---- APIs ------------------------------------------------------------------- # OAuth lib (APIs) gem 'oauth', '0.5.4' # Oauth2: last commit after 1.4.0 that works with LinkedIn gem gem 'oauth2', git: 'https://github.com/oauth-xx/oauth2.git', ref: '2d8b8be4788a1b97407132e40bb03315581a139f' # Auth0 API gem 'auth0', '4.9.0' # Google Oauth gem 'omniauth-google-oauth2', '0.6.0' # Google API client gem 'google-api-client', '0.23.0', require: false # google-cloud-translate is the official library for Google Cloud Translation API. gem 'google-cloud-translate', '1.2.4' # Vimeo API gem 'vimeo', '~> 1.5.4' # Facebook Graph API gem 'koala', git: 'https://github.com/borc/koala.git', ref: 'ddde3b2' # Twitter API gem 'twitter', git: 'https://github.com/borc/twitter.git', ref: 'c73f8c4' # Instagram API gem 'instagram-continued', '1.4.0', require: "instagram" # HTTParty for raw http-requests gem 'httparty', '0.14.0' # Faraday for HTTP requests gem 'faraday', '0.13.1' gem 'faraday_middleware', '0.12.2' # Module for the 'fog' gem to support Amazon Web Services gem 'fog-aws', '3.6.7' # Wordpress XML-RPC API helper gem 'rubypress', git: 'https://github.com/borc/rubypress.git' # Google reCaptcha gem 'recaptcha', '5.4.1', require: 'recaptcha/rails' # Google+ API gem 'google_plus', '0.2.5' # LinkedIn API gem 'linkedin-oauth2', '1.0.0' # Wufoo API wrapper gem 'wuparty', '1.2.7' # Amazon Product advertising API gem 'amazon-ecs', '2.5.0' # Yammer API gem # PR for newer rest-client (2.5.0 + PR #51) gem 'yam', git: 'https://github.com/networkedbenny/yam.git' # SoundCloud API gem gem 'soundcloud', '0.3.4' # ---- /end APIs -------------------------------------------------------------- # HTML sanitizer gem 'sanitize', '5.2.1' # Useful extensions to Ruby's String gem 'stringex', '2.8.4' # Authorization and authentication gem 'cancancan', '2.2.0' # curl wrapper gem 'curb', '0.9.10' # Markup (HTML/XML) parsing, manipulation and sanitization gem 'nokogiri', '1.10.8' gem 'feedjira', '2.2.0' # Themes for rails with Rails 4+ support gem 'themes_for_rails', git: 'https://github.com/peritpatrio/themes_for_rails.git', ref: '70647ad8fa5b7a32ab682b96fc5aea2269cf8b2c' # Caching gem 'redis', '3.3.1' # Parse and linkify tweets gem 'twitter-text', '2.1.0' # Truncate HTML strings http://rubygems.org/gems/html_truncator gem 'html_truncator', '0.4.2' # FastImage finds the size or type of an image given its uri by fetching as little as needed gem 'fastimage', '2.1.5' # VideoInfo shows info for different video providers gem 'video_info', '2.7.0' # Receive emails gem 'mailman', '0.7.3' # Auto link text links gem 'rinku', '2.0.4' # Improve typography gem 'typogruby', '1.0.18' # Automatically strips all attributes of leading and trailing whitespace before validation gem 'strip_attributes', '1.8.0' # Awesome JSON builder for APIs gem 'jbuilder', '2.8.0' # Extends ActiveRecord to add simple support for organizing items into parent–children relationships. gem 'acts_as_tree', '2.7.1' # Helps with turning hashes into easily accessible with dot notation gem 'recursive-open-struct', '1.0.5' # update requires kubeclient update (requires twitter gem update) # For parsing OpenGraph data from url gem 'opengraph_parser', git: 'https://github.com/tophattom/opengraph_parser.git', ref: '2c4037e' # Preflight for HTML email https://premailer.github.io/premailer gem 'premailer', '1.11.1' # Simple, efficient background processing for Ruby. gem 'sidekiq', '4.2.9' # Needed for sidekiq to work properly (no idea why this is not in sidekiq gemspec) gem 'redis-namespace', '1.5.2' gem 'sidekiq-status', '~> 0.5.4' # Rate-limit creation of jobs gem 'sidekiq-debounce', '1.0.2' # Control uniqueness of jobs gem 'sidekiq-unique-jobs', '5.0.10' # allows for calling "render" from anywhere gem 'render_anywhere', '0.0.10', require: false # This plugin uses the conductor pattern to wrap multiple models as one object. # It's basically like the Presenter pattern, but for saving and creating multiple models. gem 'active_conductor', '0.2.2' # allows for custom tagging along dynamic contexts gem 'acts-as-taggable-on', '7.0.0' # Request throttle gem 'rack-attack', '6.0.0' # Code highlighter gem 'coderay', '1.1.2' # Excel sheet generation gem 'axlsx_rails', '~> 0.5.2' # axlsx: fix rubyzip relative path vulnerability gem 'axlsx', git: 'https://github.com/randym/axlsx.git', ref: '5a8a685c5acf91fb40c4e42b18de61dbbbd18f57' # Faster .blank? for strings gem 'fast_blank', '1.0.0' # Cross-process remote locking (mutexes) gem 'remote_lock', '~> 1.1.0' # Rack::UTF8Sanitizer is a Rack middleware which cleans up invalid UTF8 characters in request URI and headers. gem 'rack-utf8_sanitizer', '1.5.0' # A list of languages based upon ISO-639-1 and ISO-639-3 gem 'language_list', '1.2.1' # Sentry.io gem 'sentry-raven', '2.9.0' # Contains CLDR data gem 'twitter_cldr', '4.4.3' # Country data gem 'countries', '3.0.0' # Helper to get an HTML select list of countries using the ISO 3166-1 standard. gem 'country_select', '4.0.0' # Replacement for URI gem 'addressable', '2.5.2' gem 'savon', '~> 2.12.0' # For deep-converting hash keys from CamelCase to snake_case gem 'plissken', '1.2.0' # For deep-converting hash keys from snake_case to camelCase gem 'awrence', '1.0.0' # Intercom (https://www.intercom.io) is a customer relationship management and messaging tool for web app owners. gem 'intercom', '3.7.6' gem 'intercom-rails', '0.4.0' # Stripe Payment Integration gem 'stripe', '5.7.0' # Validate VAT ID gem 'valvat', '0.9.1' # PDF generation gem 'prawn', '2.2.2', require: false gem 'prawn-svg', '0.27.1', require: false # Wrapper for pusher.com REST api gem 'pusher', '1.3.1' # Rails logging in JSON format gem 'lograge', '0.10.0' gem 'logstash-event', '1.2.02' # Other loggers in JSON gem 'logstash-logger', '0.26.1' # Clarifai API client gem 'clarinet', '0.5.1' gem 'net-sftp', '2.1.2', require: false # Ruby/Rsync is a Ruby library that can syncronize files between remote hosts by wrapping a call to the rsync binary. gem 'rsync', '1.0.9' # A slim ruby wrapper for posting to slack webhooks gem 'slack-notifier', '2.3.2', require: false # Let's Encrypt certificates gem 'acme-client', '2.0.5', require: false # Punycode domain names gem 'simpleidn' # Text::Hyphen is a Ruby library to hyphenate words in various languages using Ruby-fied versions of TeX hyphenation patterns. gem 'text-hyphen', '1.4.1' # Kubernetes client gem 'kubeclient', '2.5.2' # AWS client for credentials gem 'aws-sdk-core', '3.109.1' group :deploy, :default do # full text search gem 'thinking-sphinx', '4.4.1' # Rackspace API gem 'fog-rackspace', '~> 0.1.5' # Secret management gem 'ejson', '1.2.1' # Unicode Normalization Form (UNF) gem 'unf', '0.1.4' # https://appsignal.com/ # gem 'appsignal', '2.11.0' end group :deploy do # Deploy with Capistrano gem 'capistrano', '3.11.2' gem 'capistrano-bundler', '1.6.0' gem 'capistrano-rails', '1.4.0' # Notify Capistrano deployments via webhook API. Just set the webhook URL and message. gem 'capistrano-hook', '0.3.3' end # Rails observer (removed from core in Rails 4.0) gem 'rails-observers', '~> 0.1.5' gem 'sassc-rails', '2.1.2' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # Embed the V8 Javascript Interpreter into Ruby gem 'therubyracer', '0.12.3', platforms: :ruby # Javascript compactor gem 'uglifier', '4.1.10' # Precompile Handlebar templates gem 'handlebars_assets', '0.23.2' # Use hashids when you do not want to expose your database ids to the user. gem 'hashids', '1.0.5' # A pure ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard. gem 'jwt', '2.2.1' gem 'sorbet-runtime', '0.5.6357' gem 'sorbet-rails', '0.7.3' group :development, :dev_prod do # A thin and fast web server (needed for https in local env) # Generate a certificate and start with: # bundle exec thin start -p 3001 --ssl --ssl-key-file ~/.ssl/rails.key --ssl-cert-file ~/.ssl/rails.crt # gem 'thin', '1.7.0' gem 'puma', '4.3.5' # Process manager for applications with multiple components # (run rails and sidekiq with one command: foreman start -f Procfile.development) gem 'foreman', '0.85.0' # Catch eager and N+1 queries gem 'bullet', '5.9.0' # Ruby process tracing gem 'rbtrace', '0.4.11', require: false # Memory profiling routines for Ruby 2.1+ gem 'memory_profiler', '0.9.13', require: false # Automatic Ruby code style checking tool. Aims to enforce the community-driven Ruby Style Guide. # gem 'rubocop', '0.66', require: false # Middleware that will make Rack-based apps CORS compatible gem 'rack-cors', '1.0.6', require: 'rack/cors' # Logs the source of execution of all queries to the Rails log gem 'active_record_query_trace', '1.6.2' # Access an IRB console on exception pages or by using <%= console %> in views gem 'web-console', '3.3.0' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring # gem 'spring' # Displays a speed badge on every page # gem 'rack-mini-profiler' # Better Rails error pages in dev # gem 'better_errors' gem 'sorbet', '0.5.6357' # -- CLI tools: ----------------------------------------------------------- # Check for security vulnerabilities # gem 'brakeman', require: false # Spits out list of best practices you are not following # gem 'rails_best_practices', require: false end # Rails console needs test gems in Ruby 2.2 gem 'minitest', '5.11.3' gem 'minitest-rails', '3.0.0' group :test do # Integration test framework gem 'capybara', '3.16.1' # For debugging capybara tests gem 'launchy', '~> 2.4' # Clean it, clean it good gem 'database_cleaner', '1.7.0' # Freeze time gem 'timecop', '0.9.1' # Mock web requests gem 'webmock', '3.5.1' # Update crack for newer safe_yaml gem 'crack', '0.4.3' # allows the parent process to control the behaviour of child processes using breakpoints gem 'fork_break', '~> 0.1.4' # Record HTTP interactions and replay them with tests gem 'vcr', '4.0.0' # Stub constants for the duration of a block in MiniTest. gem 'minitest-stub-const', '0.6' # PhantomJS driver for Capybara gem 'poltergeist', '1.18.1' # Stripe webhook tests gem 'stripe_tester', '~> 0.5.0' # Use SQLite3 for some tests gem 'sqlite3', '1.3.13' # Lorem ipsum 2.0 for factories and content creation gem 'faker', '1.8.7' # Simple one-liner tests for common Rails functionality gem 'shoulda', '~> 3.5' gem 'shoulda-matchers', '~> 2.0' gem 'rails-controller-testing' # Mocha is a mocking and stubbing library for Ruby gem 'mocha', '1.11.2' end group :development, :test do # Rails: 2 CPUs = 2x Testing Speed for RSpec, Test::Unit and Cucumber gem 'parallel_tests', '2.29.1' # Runtime developer console for debugging gem 'pry-rails', '0.3.9' end group :development, :test, :sandbox do # Easy-to-use fixtures gem 'factory_bot_rails', '4.8.2' end group :production, :staging, :sandbox do # Kill Unicorn workers gem 'unicorn-worker-killer', '0.4.4' # Use unicorn as the app server gem 'unicorn', '5.5.0' end ```
Gemfile.lock ``` GIT remote: https://github.com/borc/koala.git revision: ddde3b2e2e5d7239b2903badaedd0306e4301395 ref: ddde3b2 specs: koala (3.0.0) addressable faraday json (>= 1.8) GIT remote: https://github.com/borc/rubypress.git revision: 1215e24131fb72ac909c93e58ba39ea427f9b6af specs: rubypress (1.0.3) GIT remote: https://github.com/borc/twitter.git revision: c73f8c41442c4c4cb69229de73360e2d121966d1 ref: c73f8c4 specs: twitter (5.15.0) addressable (~> 2.3) buftok (~> 0.2.0) equalizer (~> 0.0.11) http (~> 2.0) http-form_data (~> 1.0) http_parser.rb (~> 0.6.0) memoizable (~> 0.4.0) multipart-post (~> 2.0) naught (~> 1.0) simple_oauth (~> 0.3.0) GIT remote: https://github.com/networkedbenny/yam.git revision: c37a1748634f724bdc034a350ae87b2ec07d37b4 specs: yam (2.6.0) addressable (~> 2.5) multi_json (~> 1.12) oauth2-client (~> 2.0) oj (~> 2.18) rest-client (~> 2.0) GIT remote: https://github.com/oauth-xx/oauth2.git revision: 2d8b8be4788a1b97407132e40bb03315581a139f ref: 2d8b8be4788a1b97407132e40bb03315581a139f specs: oauth2 (1.4.0) faraday (>= 0.8, < 0.14) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) GIT remote: https://github.com/peritpatrio/themes_for_rails.git revision: 70647ad8fa5b7a32ab682b96fc5aea2269cf8b2c ref: 70647ad8fa5b7a32ab682b96fc5aea2269cf8b2c specs: themes_for_rails (0.5.2) rails (~> 5.0) GIT remote: https://github.com/randym/axlsx.git revision: 5a8a685c5acf91fb40c4e42b18de61dbbbd18f57 ref: 5a8a685c5acf91fb40c4e42b18de61dbbbd18f57 specs: axlsx (2.1.0.pre) htmlentities (~> 4.3.4) mimemagic (~> 0.3) nokogiri (>= 1.6.6) rubyzip (>= 1.2.1) GIT remote: https://github.com/tophattom/opengraph_parser.git revision: 2c4037e6e5c6a6292ba84fdb52789c60ad6c8982 ref: 2c4037e specs: opengraph_parser (0.2.3) addressable nokogiri PATH remote: engines/api_v1 specs: api_v1 (0.0.1) jbuilder rails (~> 5.2.4.5) PATH remote: engines/diy_forms specs: diy_forms (0.0.1) rails (~> 5.2.4.5) render_anywhere (= 0.0.10) wuparty (~> 1.2.6) PATH remote: engines/newsroom specs: newsroom (1.0.0) coderay ember-handlebars-template (= 0.7.5) ember-source (= 1.12.2) kss rails (~> 5.2.4.5) PATH remote: engines/systems_api specs: systems_api (0.0.1) jb (= 0.5.0) rails (~> 5.2.4.5) PATH remote: engines/webhooks specs: webhooks (0.0.1) rails (~> 5.2.4.5) GEM remote: https://rubygems.org/ specs: acme-client (2.0.5) faraday (~> 0.9, >= 0.9.1) actioncable (5.2.4.5) actionpack (= 5.2.4.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) actionmailer (5.2.4.5) actionpack (= 5.2.4.5) actionview (= 5.2.4.5) activejob (= 5.2.4.5) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) actionpack (5.2.4.5) actionview (= 5.2.4.5) activesupport (= 5.2.4.5) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) actionview (5.2.4.5) activesupport (= 5.2.4.5) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) active_conductor (0.2.2) activemodel (>= 3.0.0) active_record_query_trace (1.6.2) activejob (5.2.4.5) activesupport (= 5.2.4.5) globalid (>= 0.3.6) activemodel (5.2.4.5) activesupport (= 5.2.4.5) activerecord (5.2.4.5) activemodel (= 5.2.4.5) activesupport (= 5.2.4.5) arel (>= 9.0) activestorage (5.2.4.5) actionpack (= 5.2.4.5) activerecord (= 5.2.4.5) marcel (~> 0.3.1) activesupport (5.2.4.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) acts-as-taggable-on (7.0.0) activerecord (>= 5.0, < 6.2) acts_as_tree (2.7.1) activerecord (>= 3.0.0) addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) airbrussh (1.4.0) sshkit (>= 1.6.1, != 1.7.0) akami (1.3.1) gyoku (>= 0.4.0) nokogiri amazon-ecs (2.5.0) nokogiri (~> 1.4) ruby-hmac (~> 0.3) ansi (1.5.0) arel (9.0.0) ast (2.4.0) attr_encrypted (3.1.0) encryptor (~> 3.0.0) auth0 (4.9.0) rest-client (~> 2.0.0) awrence (1.0.0) aws-eventstream (1.1.0) aws-partitions (1.393.0) aws-sdk-core (3.109.1) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) aws-sigv4 (1.2.2) aws-eventstream (~> 1, >= 1.0.2) axlsx_rails (0.5.2) actionpack (>= 3.1) axlsx (>= 2.0.1) barber (0.12.2) ember-source (>= 1.0, < 3.1) execjs (>= 1.2, < 3) bcrypt (3.1.13) bcrypt-ruby (3.1.5) bcrypt (>= 3.1.3) buftok (0.2.0) builder (3.2.4) bullet (5.9.0) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) camertron-eprun (1.1.1) cancancan (2.2.0) capistrano (3.11.2) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) sshkit (>= 1.9.0) capistrano-bundler (1.6.0) capistrano (~> 3.1) capistrano-hook (0.3.3) capistrano (~> 3.1) capistrano-rails (1.4.0) capistrano (~> 3.1) capistrano-bundler (~> 1.1) capybara (3.16.1) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) regexp_parser (~> 1.2) xpath (~> 3.2) celluloid (0.16.0) timers (~> 4.0.0) clarinet (0.5.1) addressable (~> 2.5) httparty (~> 0.14) cldr-plurals-runtime-rb (1.0.1) cliver (0.3.2) codemirror-rails (5.16.0) railties (>= 3.0, < 6.0) coderay (1.1.2) coffee-rails (4.2.2) coffee-script (>= 2.2.0) railties (>= 4.0.0) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.12.2) commander (4.5.2) highline (~> 2.0.0) concurrent-ruby (1.1.8) connection_pool (2.2.3) countries (3.0.0) i18n_data (~> 0.8.0) sixarm_ruby_unaccent (~> 1.1) unicode_utils (~> 1.4) country_select (4.0.0) countries (~> 3.0) sort_alphabetical (~> 1.0) crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.6) css_parser (1.6.0) addressable curb (0.9.10) database_cleaner (1.7.0) debug_inspector (0.0.3) declarative (0.0.10) declarative-option (0.1.0) devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) responders warden (~> 1.2.3) dogstatsd-ruby (3.3.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) ejson (1.2.1) elasticsearch (2.0.2) elasticsearch-api (= 2.0.2) elasticsearch-transport (= 2.0.2) elasticsearch-api (2.0.2) multi_json elasticsearch-transport (2.0.2) faraday multi_json ember-handlebars-template (0.7.5) barber (>= 0.11.0) sprockets (>= 3.3, < 4) ember-source (1.12.2) encryptor (3.0.0) equalizer (0.0.11) erubi (1.10.0) excon (0.71.0) execjs (2.7.0) factory_bot (4.8.2) activesupport (>= 3.0.0) factory_bot_rails (4.8.2) factory_bot (~> 4.8.2) railties (>= 3.0.0) faker (1.8.7) i18n (>= 0.7) faraday (0.13.1) multipart-post (>= 1.2, < 3) faraday_middleware (0.12.2) faraday (>= 0.7.4, < 1.0) fast_blank (1.0.0) fastimage (2.1.5) feedjira (2.2.0) faraday (>= 0.9) faraday_middleware (>= 0.9) loofah (>= 2.0) sax-machine (>= 1.0) ffi (1.9.25) fog-aws (3.6.7) fog-core (~> 2.1) fog-json (~> 1.1) fog-xml (~> 0.1) ipaddress (~> 0.8) fog-core (2.1.0) builder excon (~> 0.58) formatador (~> 0.2) mime-types fog-json (1.1.0) fog-core (~> 2.0) multi_json (~> 1.10) fog-rackspace (0.1.5) fog-core (>= 1.35) fog-json (>= 1.0) fog-xml (>= 0.1) ipaddress (>= 0.8) fog-xml (0.1.3) fog-core nokogiri (>= 1.5.11, < 2.0.0) font-awesome-rails (4.7.0.5) railties (>= 3.2, < 6.1) foreman (0.85.0) thor (~> 0.19.1) fork (1.0.1) fork_break (0.1.4) fork (= 1.0.1) formatador (0.2.5) get_process_mem (0.2.3) globalid (0.4.2) activesupport (>= 4.2.0) google-api-client (0.23.0) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.5, < 0.7.0) httpclient (>= 2.8.1, < 3.0) mime-types (~> 3.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) google-cloud-core (1.2.7) google-cloud-env (~> 1.0) google-cloud-env (1.0.5) faraday (~> 0.11) google-cloud-translate (1.2.4) faraday (~> 0.13) google-cloud-core (~> 1.2) googleauth (~> 0.6.2) google_plus (0.2.5) json rest-client (~> 2.0.1) googleauth (0.6.2) faraday (~> 0.12) jwt (>= 1.4, < 3.0) logging (~> 2.0) memoist (~> 0.12) multi_json (~> 1.11) os (~> 0.9) signet (~> 0.7) gyoku (1.3.1) builder (>= 2.1.2) haml (5.2.0) temple (>= 0.8.0) tilt handlebars_assets (0.23.2) execjs (~> 2.0) sprockets (>= 2.0.0) tilt (>= 1.2) hashdiff (0.3.8) hashids (1.0.5) hashie (3.6.0) highline (2.0.3) hitimes (1.2.4) html_truncator (0.4.2) nokogiri (~> 1.5) htmlentities (4.3.4) httmultiparty (0.3.16) httparty (>= 0.7.3) mimemagic multipart-post http (2.0.3) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 1.0.1) http_parser.rb (~> 0.6.0) http-cookie (1.0.3) domain_name (~> 0.5) http-form_data (1.0.1) http_parser.rb (0.6.0) httparty (0.14.0) multi_xml (>= 0.5.2) httpclient (2.8.3) httpi (2.4.5) rack socksify i18n (1.8.9) concurrent-ruby (~> 1.0) i18n_data (0.8.0) idn-ruby (0.1.0) innertube (1.1.0) instagram-continued (1.4.0) faraday (~> 0.11) faraday_middleware hashie (>= 3.5.1) multi_json intercom (3.7.6) intercom-rails (0.4.0) activesupport (> 3.0) ipaddress (0.8.3) iso8601 (0.9.1) jb (0.5.0) multi_json jbuilder (2.8.0) activesupport (>= 4.2.0) multi_json (>= 1.2) jmespath (1.4.0) joiner (0.4.2) activerecord (>= 5.2.beta1) jquery-rails (4.4.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) json (2.3.0) jwt (2.2.1) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) kaminari-activerecord (= 1.2.1) kaminari-core (= 1.2.1) kaminari-actionview (1.2.1) actionview kaminari-core (= 1.2.1) kaminari-activerecord (1.2.1) activerecord kaminari-core (= 1.2.1) kaminari-core (1.2.1) kgio (2.11.2) kss (0.5.0) kubeclient (2.5.2) http (>= 0.98, < 3) recursive-open-struct (~> 1.0.0) rest-client language_list (1.2.1) launchy (2.4.3) addressable (~> 2.3) libv8 (3.16.14.17) linkedin-oauth2 (1.0.0) faraday (~> 0.9) hashie (~> 3.2) oauth2 (~> 1.0) listen (2.10.1) celluloid (~> 0.16.0) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) little-plugger (1.1.4) logging (2.2.2) little-plugger (~> 1.1) multi_json (~> 1.10) lograge (0.10.0) actionpack (>= 4) activesupport (>= 4) railties (>= 4) request_store (~> 1.0) logstash-event (1.2.02) logstash-logger (0.26.1) logstash-event (~> 1.2) loofah (2.9.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) maildir (2.2.1) mailman (0.7.3) activesupport (>= 2.3.4) i18n (>= 0.4.1) listen (~> 2.2) mail (>= 2.0.3) maildir (>= 0.5.0) marcel (0.3.3) mimemagic (~> 0.3.2) memoist (0.16.0) memoizable (0.4.2) thread_safe (~> 0.3, >= 0.3.1) memory_profiler (0.9.13) method_source (0.9.2) middleware (0.1.0) mime-types (3.3.1) mime-types-data (~> 3.2015) mime-types-data (3.2019.1009) mimemagic (0.3.2) mini_magick (4.9.5) mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.11.3) minitest-rails (3.0.0) minitest (~> 5.8) railties (~> 5.0) minitest-stub-const (0.6) mocha (1.11.2) msgpack (1.2.9) multi_json (1.13.1) multi_xml (0.6.0) multipart-post (2.1.1) mysql2 (0.5.3) naught (1.1.0) nested_form (0.3.2) net-scp (2.0.0) net-ssh (>= 2.6.5, < 6.0.0) net-sftp (2.1.2) net-ssh (>= 2.6.5) net-ssh (5.2.0) net_http_timeout_errors (0.3.0) netrc (0.11.0) nio4r (2.5.5) nokogiri (1.10.8) mini_portile2 (~> 2.4.0) nokogumbo (2.0.2) nokogiri (~> 1.8, >= 1.8.4) nori (2.6.0) oauth (0.5.4) oauth2-client (2.0.0) addressable (~> 2.3) bcrypt-ruby (~> 3.0) oga (2.15) ast ruby-ll (~> 2.1) oj (2.18.5) omniauth (1.9.0) hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) omniauth-google-oauth2 (0.6.0) jwt (>= 2.0) omniauth (>= 1.1.1) omniauth-oauth2 (>= 1.5) omniauth-oauth2 (1.6.0) oauth2 (~> 1.1) omniauth (~> 1.9) optimist (3.0.0) orm_adapter (0.5.0) os (0.9.6) parallel (1.17.0) parallel_tests (2.29.1) parallel parlour (6.0.0) commander (~> 4.5) parser rainbow (~> 3.0) sorbet-runtime (>= 0.5) parser (2.7.1.3) ast (~> 2.4.0) pdf-core (0.7.0) plissken (1.2.0) poltergeist (1.18.1) capybara (>= 2.1, < 4) cliver (~> 0.3.1) websocket-driver (>= 0.2.0) polyfill (1.9.0) prawn (2.2.2) pdf-core (~> 0.7.0) ttfunk (~> 1.5) prawn-svg (0.27.1) css_parser (~> 1.3) prawn (>= 0.11.1, < 3) premailer (1.11.1) addressable css_parser (>= 1.6.0) htmlentities (>= 4.0.0) pry (0.12.2) coderay (~> 1.1.0) method_source (~> 0.9.0) pry-rails (0.3.9) pry (>= 0.10.4) public_suffix (3.1.1) puma (4.3.5) nio4r (~> 2.0) pusher (1.3.1) httpclient (~> 2.7) multi_json (~> 1.0) pusher-signature (~> 0.1.8) pusher-signature (0.1.8) rack (2.2.3) rack-attack (6.0.0) rack (>= 1.0, < 3) rack-cors (1.0.6) rack (>= 1.6.0) rack-pjax (1.1.0) nokogiri (~> 1.5) rack (>= 1.1) rack-protection (2.1.0) rack rack-test (1.1.0) rack (>= 1.0, < 3) rack-timeout (0.5.1) rack-utf8_sanitizer (1.5.0) rack (>= 1.0, < 3.0) rails (5.2.4.5) actioncable (= 5.2.4.5) actionmailer (= 5.2.4.5) actionpack (= 5.2.4.5) actionview (= 5.2.4.5) activejob (= 5.2.4.5) activemodel (= 5.2.4.5) activerecord (= 5.2.4.5) activestorage (= 5.2.4.5) activesupport (= 5.2.4.5) bundler (>= 1.3.0) railties (= 5.2.4.5) sprockets-rails (>= 2.0.0) rails-controller-testing (0.0.3) rails (>= 4.2) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.3.0) loofah (~> 2.3) rails-i18n (5.1.1) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) rails-observers (0.1.5) activemodel (>= 4.0) rails_admin (1.4.3) builder (~> 3.1) coffee-rails (~> 4.0) font-awesome-rails (>= 3.0, < 5) haml (>= 4.0, < 6) jquery-rails (>= 3.0, < 5) jquery-ui-rails (>= 5.0, < 7) kaminari (>= 0.14, < 2.0) nested_form (~> 0.3) rack-pjax (>= 0.7) rails (>= 4.0, < 6) remotipart (~> 1.3) sass-rails (>= 4.0, < 6) railties (5.2.4.5) actionpack (= 5.2.4.5) activesupport (= 5.2.4.5) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) rainbow (3.0.0) raindrops (0.19.0) rake (13.0.3) rb-fsevent (0.10.3) rb-inotify (0.10.0) ffi (~> 1.0) rbtrace (0.4.11) ffi (>= 1.0.6) msgpack (>= 0.4.3) optimist (>= 3.0.0) recaptcha (5.4.1) json recursive-open-struct (1.0.5) redis (3.3.1) redis-namespace (1.5.2) redis (~> 3.0, >= 3.0.4) ref (2.0.0) regexp_parser (1.4.0) remote_lock (1.1.0) remotipart (1.4.4) render_anywhere (0.0.10) rails (>= 3.0.7) representable (3.0.4) declarative (< 0.1.0) declarative-option (< 0.2.0) uber (< 0.2.0) request_store (1.4.1) rack (>= 1.4) responders (2.4.1) actionpack (>= 4.2.0, < 6.0) railties (>= 4.2.0, < 6.0) rest-client (2.0.2) http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) retriable (3.1.1) rgeo (1.0.0) rgeo-geojson (2.0.0) rgeo (~> 1.0) riddle (2.4.2) rinku (2.0.4) rsync (1.0.9) ruby-hmac (0.4.0) ruby-ll (2.1.2) ansi ast rubypants (0.2.0) rubyzip (2.0.0) safe_type (1.1.1) safe_yaml (1.0.5) sanitize (5.2.1) crass (~> 1.0.2) nokogiri (>= 1.8.0) nokogumbo (~> 2.0) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) sass-rails (5.0.7) railties (>= 4.0.0, < 6) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) sassc (2.4.0) ffi (~> 1.9) sassc-rails (2.1.2) railties (>= 4.0.0) sassc (>= 2.0) sprockets (> 3.0) sprockets-rails tilt savon (2.12.1) akami (~> 1.2) builder (>= 2.1.2) gyoku (~> 1.2) httpi (~> 2.3) nokogiri (>= 1.8.1) nori (~> 2.4) wasabi (~> 3.4) sax-machine (1.3.2) sentry-raven (2.9.0) faraday (>= 0.7.6, < 1.0) shoulda (3.5.0) shoulda-context (~> 1.0, >= 1.0.1) shoulda-matchers (>= 1.4.1, < 3.0) shoulda-context (1.2.2) shoulda-matchers (2.8.0) activesupport (>= 3.0.0) sidekiq (4.2.9) concurrent-ruby (~> 1.0) connection_pool (~> 2.2, >= 2.2.0) rack-protection (>= 1.5.0) redis (~> 3.2, >= 3.2.1) sidekiq-debounce (1.0.2) sidekiq (>= 3.1.0) sidekiq-status (0.5.4) sidekiq (>= 2.7) sidekiq-unique-jobs (5.0.10) sidekiq (>= 4.0, <= 6.0) thor (~> 0) signet (0.8.1) addressable (~> 2.3) faraday (~> 0.9) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) simple_oauth (0.3.1) simple_xlsx_reader (1.0.4) nokogiri rubyzip simpleidn (0.1.1) unf (~> 0.1.4) sixarm_ruby_unaccent (1.2.0) slack-notifier (2.3.2) socksify (1.7.1) sorbet (0.5.6357) sorbet-static (= 0.5.6357) sorbet-coerce (0.4.0) polyfill (~> 1.8) safe_type (~> 1.1, >= 1.1.1) sorbet-runtime (>= 0.4.4704) sorbet-rails (0.7.3) method_source (>= 0.9.2) parlour (>= 4.0.1) parser (>= 2.7) sorbet-coerce (>= 0.2.6) sorbet-runtime (>= 0.5) sorbet-runtime (0.5.6357) sorbet-static (0.5.6357-universal-darwin-14) sort_alphabetical (1.1.0) unicode_utils (>= 1.2.2) soundcloud (0.3.4) hashie httmultiparty (~> 0.3.0) sprockets (3.7.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.2.2) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) sqlite3 (1.3.13) sshkit (1.20.0) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) stringex (2.8.4) strip_attributes (1.8.0) activemodel (>= 3.0, < 6.0) stripe (5.7.0) stripe_tester (0.5.0) temple (0.8.2) text-hyphen (1.4.1) therubyracer (0.12.3) libv8 (~> 3.16.14.15) ref thinking-sphinx (4.4.1) activerecord (>= 3.1.0) builder (>= 2.1.2) innertube (>= 1.0.2) joiner (>= 0.2.0) middleware (>= 0.1.0) riddle (~> 2.3) thor (0.19.4) thread_safe (0.3.6) tilt (2.0.9) timecop (0.9.1) timers (4.0.4) hitimes ttfunk (1.6.2.1) twitter-text (2.1.0) idn-ruby unf (~> 0.1.0) twitter_cldr (4.4.3) camertron-eprun cldr-plurals-runtime-rb (~> 1.0) tzinfo typogruby (1.0.18) rubypants tzinfo (1.2.9) thread_safe (~> 0.1) uber (0.1.0) uglifier (4.1.10) execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext unf_ext (0.0.7.7) unicode_utils (1.4.0) unicorn (5.5.0) kgio (~> 2.6) raindrops (~> 0.7) unicorn-worker-killer (0.4.4) get_process_mem (~> 0) unicorn (>= 4, < 6) uniform_notifier (1.12.1) valvat (0.9.1) savon (>= 2.3.0) vcr (4.0.0) video_info (2.7) iso8601 (~> 0.9.1) net_http_timeout_errors (~> 0.3.0) oga (~> 2.7) vimeo (1.5.4) httparty (>= 0.4.5) httpclient (>= 2.1.5.2) json (>= 1.1.9) multipart-post (>= 1.0.1) oauth (>= 0.4.3) warden (1.2.7) rack (>= 1.0) wasabi (3.6.1) addressable httpi (~> 2.0) nokogiri (>= 1.4.2) web-console (3.3.0) activemodel (>= 4.2) debug_inspector railties (>= 4.2) webmock (3.5.1) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) wuparty (1.2.7) httparty (>= 0.6.1) mime-types (>= 1.16) multipart-post (>= 1.0.1) xmlrpc (0.3.0) xpath (3.2.0) nokogiri (~> 1.8) PLATFORMS ruby DEPENDENCIES acme-client (= 2.0.5) active_conductor (= 0.2.2) active_record_query_trace (= 1.6.2) acts-as-taggable-on (= 7.0.0) acts_as_tree (= 2.7.1) addressable (= 2.5.2) amazon-ecs (= 2.5.0) api_v1! attr_encrypted (= 3.1.0) auth0 (= 4.9.0) awrence (= 1.0.0) aws-sdk-core (= 3.109.1) axlsx! axlsx_rails (~> 0.5.2) bullet (= 5.9.0) cancancan (= 2.2.0) capistrano (= 3.11.2) capistrano-bundler (= 1.6.0) capistrano-hook (= 0.3.3) capistrano-rails (= 1.4.0) capybara (= 3.16.1) clarinet (= 0.5.1) codemirror-rails coderay (= 1.1.2) countries (= 3.0.0) country_select (= 4.0.0) crack (= 0.4.3) curb (= 0.9.10) database_cleaner (= 1.7.0) devise (= 4.7.1) diy_forms! dogstatsd-ruby (= 3.3.0) ejson (= 1.2.1) elasticsearch (~> 2.0.2) factory_bot_rails (= 4.8.2) faker (= 1.8.7) faraday (= 0.13.1) faraday_middleware (= 0.12.2) fast_blank (= 1.0.0) fastimage (= 2.1.5) feedjira (= 2.2.0) fog-aws (= 3.6.7) fog-rackspace (~> 0.1.5) foreman (= 0.85.0) fork_break (~> 0.1.4) google-api-client (= 0.23.0) google-cloud-translate (= 1.2.4) google_plus (= 0.2.5) handlebars_assets (= 0.23.2) hashids (= 1.0.5) html_truncator (= 0.4.2) httparty (= 0.14.0) instagram-continued (= 1.4.0) intercom (= 3.7.6) intercom-rails (= 0.4.0) jbuilder (= 2.8.0) jwt (= 2.2.1) koala! kubeclient (= 2.5.2) language_list (= 1.2.1) launchy (~> 2.4) linkedin-oauth2 (= 1.0.0) lograge (= 0.10.0) logstash-event (= 1.2.02) logstash-logger (= 0.26.1) mailman (= 0.7.3) memory_profiler (= 0.9.13) mini_magick (~> 4.9.5) minitest (= 5.11.3) minitest-rails (= 3.0.0) minitest-stub-const (= 0.6) mocha (= 1.11.2) mysql2 (= 0.5.3) net-sftp (= 2.1.2) newsroom! nokogiri (= 1.10.8) oauth (= 0.5.4) oauth2! omniauth-google-oauth2 (= 0.6.0) opengraph_parser! parallel_tests (= 2.29.1) plissken (= 1.2.0) poltergeist (= 1.18.1) prawn (= 2.2.2) prawn-svg (= 0.27.1) premailer (= 1.11.1) pry-rails (= 0.3.9) puma (= 4.3.5) pusher (= 1.3.1) rack-attack (= 6.0.0) rack-cors (= 1.0.6) rack-timeout (= 0.5.1) rack-utf8_sanitizer (= 1.5.0) rails (= 5.2.4.5) rails-controller-testing rails-i18n (= 5.1.1) rails-observers (~> 0.1.5) rails_admin (= 1.4.3) rbtrace (= 0.4.11) recaptcha (= 5.4.1) recursive-open-struct (= 1.0.5) redis (= 3.3.1) redis-namespace (= 1.5.2) remote_lock (~> 1.1.0) render_anywhere (= 0.0.10) rgeo (= 1.0.0) rgeo-geojson (= 2.0.0) rinku (= 2.0.4) rsync (= 1.0.9) rubypress! sanitize (= 5.2.1) sassc-rails (= 2.1.2) savon (~> 2.12.0) sentry-raven (= 2.9.0) shoulda (~> 3.5) shoulda-matchers (~> 2.0) sidekiq (= 4.2.9) sidekiq-debounce (= 1.0.2) sidekiq-status (~> 0.5.4) sidekiq-unique-jobs (= 5.0.10) simple_xlsx_reader (= 1.0.4) simpleidn slack-notifier (= 2.3.2) sorbet (= 0.5.6357) sorbet-rails (= 0.7.3) sorbet-runtime (= 0.5.6357) soundcloud (= 0.3.4) sqlite3 (= 1.3.13) stringex (= 2.8.4) strip_attributes (= 1.8.0) stripe (= 5.7.0) stripe_tester (~> 0.5.0) systems_api! text-hyphen (= 1.4.1) themes_for_rails! therubyracer (= 0.12.3) thinking-sphinx (= 4.4.1) timecop (= 0.9.1) twitter! twitter-text (= 2.1.0) twitter_cldr (= 4.4.3) typogruby (= 1.0.18) uglifier (= 4.1.10) unf (= 0.1.4) unicorn (= 5.5.0) unicorn-worker-killer (= 0.4.4) valvat (= 0.9.1) vcr (= 4.0.0) video_info (= 2.7.0) vimeo (~> 1.5.4) web-console (= 3.3.0) webhooks! webmock (= 3.5.1) wuparty (= 1.2.7) xmlrpc (= 0.3.0) yam! RUBY VERSION ruby 2.5.5p157 BUNDLED WITH 1.17.3 ```