11 |
12 | #import "AppDelegate.h"
13 |
14 | int main(int argc, char * argv[]) {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/abcrn/ios/abcrnTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/abcrn/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "abcrn",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "start": "node_modules/react-native/packager/packager.sh"
7 | },
8 | "dependencies": {
9 | "lodash": "^4.6.1",
10 | "react-native": "^0.21.0",
11 | "react-native-vector-icons": "^1.3.2"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2 | #
3 | # If you find yourself ignoring temporary files generated by your text editor
4 | # or operating system, you probably want to add a global ignore instead:
5 | # git config --global core.excludesfile '~/.gitignore_global'
6 |
7 | # Ignore bundler config.
8 | /.bundle
9 |
10 | # Ignore the default SQLite database.
11 | /db/*.sqlite3
12 | /db/*.sqlite3-journal
13 |
14 | # Ignore all logfiles and tempfiles.
15 | /log/*
16 | /tmp/*
17 | !/log/.keep
18 | !/tmp/.keep
19 |
20 | # Ignore Byebug command history file.
21 | .byebug_history
22 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | gem 'rails', '~> 5.0.0'
4 | gem 'pg'
5 | gem 'pry-rails'
6 | gem 'watir'
7 | gem 'rack-cors'
8 |
9 | gem 'algoliasearch'
10 |
11 | gem 'puma', '~> 3.0'
12 | gem 'sass-rails', '~> 5.0'
13 | gem 'uglifier', '>= 1.3.0'
14 | gem 'coffee-rails', '~> 4.2'
15 |
16 | gem 'jquery-rails'
17 | gem 'jbuilder', '~> 2.5'
18 |
19 | group :development, :test do
20 | gem 'byebug', platform: :mri
21 | end
22 |
23 | group :development do
24 | gem 'web-console'
25 | gem 'listen', '~> 3.0.5'
26 | gem 'spring'
27 | gem 'spring-watcher-listen', '~> 2.0.0'
28 | end
29 |
30 | gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
31 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/README.md:
--------------------------------------------------------------------------------
1 | # README
2 |
3 | This README would normally document whatever steps are necessary to get the
4 | application up and running.
5 |
6 | Things you may want to cover:
7 |
8 | * Ruby version
9 |
10 | * System dependencies
11 |
12 | * Configuration
13 |
14 | * Database creation
15 |
16 | * Database initialization
17 |
18 | * How to run the test suite
19 |
20 | * Services (job queues, cache servers, search engines, etc.)
21 |
22 | * Deployment instructions
23 |
24 | * ...
25 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/Rakefile:
--------------------------------------------------------------------------------
1 | # Add your own tasks in files placed in lib/tasks ending in .rake,
2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3 |
4 | require_relative 'config/application'
5 |
6 | Rails.application.load_tasks
7 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/assets/config/manifest.js:
--------------------------------------------------------------------------------
1 | //= link_tree ../images
2 | //= link_directory ../javascripts .js
3 | //= link_directory ../stylesheets .css
4 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/assets/images/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/app/assets/images/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/assets/javascripts/application.js:
--------------------------------------------------------------------------------
1 | // This is a manifest file that'll be compiled into application.js, which will include all the files
2 | // listed below.
3 | //
4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 | // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6 | //
7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 | // compiled file. JavaScript code in this file should be added after the last require_* statement.
9 | //
10 | // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11 | // about supported directives.
12 | //
13 | //= require jquery
14 | //= require jquery_ujs
15 | //= require_tree .
16 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/assets/javascripts/cable.js:
--------------------------------------------------------------------------------
1 | // Action Cable provides the framework to deal with WebSockets in Rails.
2 | // You can generate new channels where WebSocket features live using the rails generate channel command.
3 | //
4 | //= require action_cable
5 | //= require_self
6 | //= require_tree ./channels
7 |
8 | (function() {
9 | this.App || (this.App = {});
10 |
11 | App.cable = ActionCable.createConsumer();
12 |
13 | }).call(this);
14 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/assets/javascripts/channels/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/app/assets/javascripts/channels/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/assets/stylesheets/application.css:
--------------------------------------------------------------------------------
1 | /*
2 | * This is a manifest file that'll be compiled into application.css, which will include all the files
3 | * listed below.
4 | *
5 | * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6 | * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7 | *
8 | * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9 | * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10 | * files in this directory. Styles in this file should be added after the last require_* statement.
11 | * It is generally better to create a new file per style scope.
12 | *
13 | *= require_tree .
14 | *= require_self
15 | */
16 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/channels/application_cable/channel.rb:
--------------------------------------------------------------------------------
1 | module ApplicationCable
2 | class Channel < ActionCable::Channel::Base
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/channels/application_cable/connection.rb:
--------------------------------------------------------------------------------
1 | module ApplicationCable
2 | class Connection < ActionCable::Connection::Base
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/controllers/application_controller.rb:
--------------------------------------------------------------------------------
1 | class ApplicationController < ActionController::Base
2 | protect_from_forgery with: :exception
3 | end
4 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/controllers/concerns/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/app/controllers/concerns/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/controllers/pages_controller.rb:
--------------------------------------------------------------------------------
1 | class PagesController < ApplicationController
2 |
3 | def homepage
4 | render text: "This is the homepage"
5 | end
6 |
7 | end
8 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/controllers/players_controller.rb:
--------------------------------------------------------------------------------
1 | class PlayersController < ApplicationController
2 | skip_before_filter :verify_authenticity_token
3 |
4 | def index
5 | render json: NbaPlayer.all.map { |player| player.serialize_algolia }
6 | end
7 |
8 | end
9 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/controllers/tweets_controller.rb:
--------------------------------------------------------------------------------
1 | class TweetsController < ApplicationController
2 | skip_before_filter :verify_authenticity_token
3 |
4 | def index
5 | render json: Tweet.all.map { |tweet| tweet.serialize_algolia }
6 | end
7 |
8 | end
9 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/helpers/application_helper.rb:
--------------------------------------------------------------------------------
1 | module ApplicationHelper
2 | end
3 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/jobs/application_job.rb:
--------------------------------------------------------------------------------
1 | class ApplicationJob < ActiveJob::Base
2 | end
3 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/mailers/application_mailer.rb:
--------------------------------------------------------------------------------
1 | class ApplicationMailer < ActionMailer::Base
2 | default from: 'from@example.com'
3 | layout 'mailer'
4 | end
5 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/models/application_record.rb:
--------------------------------------------------------------------------------
1 | class ApplicationRecord < ActiveRecord::Base
2 | self.abstract_class = true
3 | end
4 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/models/concerns/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/app/models/concerns/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/models/nba_player.rb:
--------------------------------------------------------------------------------
1 | class NbaPlayer < ApplicationRecord
2 | @@ALGOLIA_INDEX_NAME = "nba_players"
3 |
4 | after_create :index_to_algolia
5 | after_destroy :remove_from_algolia
6 |
7 | def serialize_algolia
8 | {
9 | objectID: self.id,
10 | display_name: self.display_name,
11 | position: self.position,
12 | team_display_name: self.team_display_name,
13 | points: self.points
14 | }
15 | end
16 |
17 | def self.algolia_import
18 | index = Algolia::Index.new(@@ALGOLIA_INDEX_NAME)
19 | index.add_objects(NbaPlayer.all.map(&:serialize_algolia))
20 | end
21 |
22 | def index_to_algolia
23 | index = Algolia::Index.new(@@ALGOLIA_INDEX_NAME)
24 | index.save_object(self.serialize_algolia)
25 | end
26 |
27 | def remove_from_algolia
28 | index = Algolia::Index.new(@@ALGOLIA_INDEX_NAME)
29 | index.delete_object(self.id)
30 | end
31 |
32 | end
33 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/models/tweet.rb:
--------------------------------------------------------------------------------
1 | class Tweet < ApplicationRecord
2 | @@Algolia_Index_Name = "tweets"
3 |
4 | after_create :index_to_algolia
5 | after_destroy :remove_from_algolia
6 |
7 | def serialize_algolia
8 | {
9 | objectID: self.id,
10 | tweetID: self.tweet_id,
11 | in_reply_to_status_id: self.in_reply_to_status_id,
12 | in_reply_to_user_id: self.in_reply_to_user_id,
13 | timestamp: self.timestamp.to_i,
14 | source: self.source,
15 | text: self.text,
16 | retweeted_status_id: self.retweeted_status_id,
17 | retweeted_status_timestamp: self.retweeted_status_timestamp.to_i,
18 | expanded_url: self.expanded_url
19 | }
20 | end
21 |
22 | def self.algolia_import
23 | self.all.each_slice(1000) do |batch|
24 | index = Algolia::Index.new(@@Algolia_Index_Name)
25 | index.add_objects(batch.map { |tweet| tweet.serialize_algolia })
26 | end
27 | end
28 |
29 | def index_to_algolia
30 | index = Algolia::Index.new(@@Algolia_Index_Name)
31 | index.save_object(self.serialize_algolia)
32 | end
33 |
34 | def remove_from_algolia
35 | index = Algolia::Index.new(@@Algolia_Index_Name)
36 | index.delete_object(self.id)
37 | end
38 |
39 |
40 | end
41 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/views/layouts/application.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ExampleApp
5 | <%= csrf_meta_tags %>
6 |
7 | <%= stylesheet_link_tag 'application', media: 'all' %>
8 | <%= javascript_include_tag 'application' %>
9 |
10 |
11 |
12 | <%= yield %>
13 |
14 |
15 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/views/layouts/mailer.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
11 | <%= yield %>
12 |
13 |
14 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/views/layouts/mailer.text.erb:
--------------------------------------------------------------------------------
1 | <%= yield %>
2 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/app/views/players/index.html.erb:
--------------------------------------------------------------------------------
1 | Hello World!!
2 |
3 |
4 |
5 |
6 | Player Name
7 | Position
8 | Team
9 | Points
10 |
11 |
12 |
13 |
14 | <% @players.each do |player| %>
15 |
16 | <%= player.display_name %>
17 | <%= player.position %>
18 | <%= player.team_display_name %>
19 | <%= player.points %>
20 |
21 | <% end %>
22 |
23 |
24 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/bin/bundle:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3 | load Gem.bin_path('bundler', 'bundle')
4 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/bin/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | begin
3 | load File.expand_path('../spring', __FILE__)
4 | rescue LoadError => e
5 | raise unless e.message.include?('spring')
6 | end
7 | APP_PATH = File.expand_path('../config/application', __dir__)
8 | require_relative '../config/boot'
9 | require 'rails/commands'
10 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/bin/rake:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | begin
3 | load File.expand_path('../spring', __FILE__)
4 | rescue LoadError => e
5 | raise unless e.message.include?('spring')
6 | end
7 | require_relative '../config/boot'
8 | require 'rake'
9 | Rake.application.run
10 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/bin/setup:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require 'pathname'
3 | require 'fileutils'
4 | include FileUtils
5 |
6 | # path to your application root.
7 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
8 |
9 | def system!(*args)
10 | system(*args) || abort("\n== Command #{args} failed ==")
11 | end
12 |
13 | chdir APP_ROOT do
14 | # This script is a starting point to setup your application.
15 | # Add necessary setup steps to this file.
16 |
17 | puts '== Installing dependencies =='
18 | system! 'gem install bundler --conservative'
19 | system('bundle check') || system!('bundle install')
20 |
21 | # puts "\n== Copying sample files =="
22 | # unless File.exist?('config/database.yml')
23 | # cp 'config/database.yml.sample', 'config/database.yml'
24 | # end
25 |
26 | puts "\n== Preparing database =="
27 | system! 'bin/rails db:setup'
28 |
29 | puts "\n== Removing old logs and tempfiles =="
30 | system! 'bin/rails log:clear tmp:clear'
31 |
32 | puts "\n== Restarting application server =="
33 | system! 'bin/rails restart'
34 | end
35 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/bin/spring:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | # This file loads spring without using Bundler, in order to be fast.
4 | # It gets overwritten when you run the `spring binstub` command.
5 |
6 | unless defined?(Spring)
7 | require 'rubygems'
8 | require 'bundler'
9 |
10 | if (match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m))
11 | Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(Gem.path_separator) }
12 | gem 'spring', match[1]
13 | require 'spring/binstub'
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/bin/update:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require 'pathname'
3 | require 'fileutils'
4 | include FileUtils
5 |
6 | # path to your application root.
7 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
8 |
9 | def system!(*args)
10 | system(*args) || abort("\n== Command #{args} failed ==")
11 | end
12 |
13 | chdir APP_ROOT do
14 | # This script is a way to update your development environment automatically.
15 | # Add necessary update steps to this file.
16 |
17 | puts '== Installing dependencies =='
18 | system! 'gem install bundler --conservative'
19 | system('bundle check') || system!('bundle install')
20 |
21 | puts "\n== Updating database =="
22 | system! 'bin/rails db:migrate'
23 |
24 | puts "\n== Removing old logs and tempfiles =="
25 | system! 'bin/rails log:clear tmp:clear'
26 |
27 | puts "\n== Restarting application server =="
28 | system! 'bin/rails restart'
29 | end
30 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 |
3 | require_relative 'config/environment'
4 |
5 | run Rails.application
6 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/application.rb:
--------------------------------------------------------------------------------
1 | require_relative 'boot'
2 |
3 | require 'rails/all'
4 |
5 | # Require the gems listed in Gemfile, including any gems
6 | # you've limited to :test, :development, or :production.
7 | Bundler.require(*Rails.groups)
8 |
9 | module ExampleApp
10 | class Application < Rails::Application
11 |
12 | config.middleware.insert_before 0, Rack::Cors do
13 | allow do
14 | origins '*'
15 | resource '*', :headers => :any, :methods => [:get, :post, :options]
16 | end
17 | end
18 |
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/boot.rb:
--------------------------------------------------------------------------------
1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2 |
3 | require 'bundler/setup' # Set up gems listed in the Gemfile.
4 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/cable.yml:
--------------------------------------------------------------------------------
1 | development:
2 | adapter: async
3 |
4 | test:
5 | adapter: async
6 |
7 | production:
8 | adapter: redis
9 | url: redis://localhost:6379/1
10 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/database.yml:
--------------------------------------------------------------------------------
1 | default: &default
2 | adapter: postgresql
3 | pool: 5
4 | timeout: 5000
5 |
6 | development:
7 | <<: *default
8 | database: algolia_development
9 |
10 | test:
11 | <<: *default
12 | database: algolia_test
13 |
14 | production:
15 | <<: *default
16 | database: db/production.sqlite3
17 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the Rails application.
2 | require_relative 'application'
3 |
4 | # Initialize the Rails application.
5 | Rails.application.initialize!
6 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/environments/test.rb:
--------------------------------------------------------------------------------
1 | Rails.application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb.
3 |
4 | # The test environment is used exclusively to run your application's
5 | # test suite. You never need to work with it otherwise. Remember that
6 | # your test database is "scratch space" for the test suite and is wiped
7 | # and recreated between test runs. Don't rely on the data there!
8 | config.cache_classes = true
9 |
10 | # Do not eager load code on boot. This avoids loading your whole application
11 | # just for the purpose of running a single test. If you are using a tool that
12 | # preloads Rails for running tests, you may have to set it to true.
13 | config.eager_load = false
14 |
15 | # Configure public file server for tests with Cache-Control for performance.
16 | config.public_file_server.enabled = true
17 | config.public_file_server.headers = {
18 | 'Cache-Control' => 'public, max-age=3600'
19 | }
20 |
21 | # Show full error reports and disable caching.
22 | config.consider_all_requests_local = true
23 | config.action_controller.perform_caching = false
24 |
25 | # Raise exceptions instead of rendering exception templates.
26 | config.action_dispatch.show_exceptions = false
27 |
28 | # Disable request forgery protection in test environment.
29 | config.action_controller.allow_forgery_protection = false
30 | config.action_mailer.perform_caching = false
31 |
32 | # Tell Action Mailer not to deliver emails to the real world.
33 | # The :test delivery method accumulates sent emails in the
34 | # ActionMailer::Base.deliveries array.
35 | config.action_mailer.delivery_method = :test
36 |
37 | # Print deprecation notices to the stderr.
38 | config.active_support.deprecation = :stderr
39 |
40 | # Raises error for missing translations
41 | # config.action_view.raise_on_missing_translations = true
42 | end
43 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/1-api_keys.rb:
--------------------------------------------------------------------------------
1 | Algolia.init(application_id: "4L9CPAAAZI", api_key: "fd9588d148d402e306130eb91b4becbd")
2 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/application_controller_renderer.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # ApplicationController.renderer.defaults.merge!(
4 | # http_host: 'example.org',
5 | # https: false
6 | # )
7 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/assets.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Version of your assets, change this if you want to expire all your assets.
4 | Rails.application.config.assets.version = '1.0'
5 |
6 | # Add additional assets to the asset load path
7 | # Rails.application.config.assets.paths << Emoji.images_path
8 |
9 | # Precompile additional assets.
10 | # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
11 | # Rails.application.config.assets.precompile += %w( search.js )
12 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/backtrace_silencers.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5 |
6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7 | # Rails.backtrace_cleaner.remove_silencers!
8 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/cookies_serializer.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Specify a serializer for the signed and encrypted cookie jars.
4 | # Valid options are :json, :marshal, and :hybrid.
5 | Rails.application.config.action_dispatch.cookies_serializer = :json
6 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/filter_parameter_logging.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Configure sensitive parameters which will be filtered from the log file.
4 | Rails.application.config.filter_parameters += [:password]
5 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/inflections.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new inflection rules using the following format. Inflections
4 | # are locale specific, and you may define rules for as many different
5 | # locales as you wish. All of these examples are active by default:
6 | # ActiveSupport::Inflector.inflections(:en) do |inflect|
7 | # inflect.plural /^(ox)$/i, '\1en'
8 | # inflect.singular /^(ox)en/i, '\1'
9 | # inflect.irregular 'person', 'people'
10 | # inflect.uncountable %w( fish sheep )
11 | # end
12 |
13 | # These inflection rules are supported but not enabled by default:
14 | # ActiveSupport::Inflector.inflections(:en) do |inflect|
15 | # inflect.acronym 'RESTful'
16 | # end
17 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/new_framework_defaults.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 | #
3 | # This file contains migration options to ease your Rails 5.0 upgrade.
4 | #
5 | # Read the Rails 5.0 release notes for more info on each option.
6 |
7 | # Enable per-form CSRF tokens. Previous versions had false.
8 | Rails.application.config.action_controller.per_form_csrf_tokens = true
9 |
10 | # Enable origin-checking CSRF mitigation. Previous versions had false.
11 | Rails.application.config.action_controller.forgery_protection_origin_check = true
12 |
13 | # Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`.
14 | # Previous versions had false.
15 | ActiveSupport.to_time_preserves_timezone = true
16 |
17 | # Require `belongs_to` associations by default. Previous versions had false.
18 | Rails.application.config.active_record.belongs_to_required_by_default = true
19 |
20 | # Do not halt callback chains when a callback returns false. Previous versions had true.
21 | ActiveSupport.halt_callback_chains_on_return_false = false
22 |
23 | # Configure SSL options to enable HSTS with subdomains. Previous versions had false.
24 | Rails.application.config.ssl_options = { hsts: { subdomains: true } }
25 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/session_store.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | Rails.application.config.session_store :cookie_store, key: '_ExampleApp_session'
4 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/initializers/wrap_parameters.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # This file contains settings for ActionController::ParamsWrapper which
4 | # is enabled by default.
5 |
6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7 | ActiveSupport.on_load(:action_controller) do
8 | wrap_parameters format: [:json]
9 | end
10 |
11 | # To enable root element in JSON for ActiveRecord objects.
12 | # ActiveSupport.on_load(:active_record) do
13 | # self.include_root_in_json = true
14 | # end
15 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/locales/en.yml:
--------------------------------------------------------------------------------
1 | # Files in the config/locales directory are used for internationalization
2 | # and are automatically loaded by Rails. If you want to use locales other
3 | # than English, add the necessary files in this directory.
4 | #
5 | # To use the locales, use `I18n.t`:
6 | #
7 | # I18n.t 'hello'
8 | #
9 | # In views, this is aliased to just `t`:
10 | #
11 | # <%= t('hello') %>
12 | #
13 | # To use a different locale, set it with `I18n.locale`:
14 | #
15 | # I18n.locale = :es
16 | #
17 | # This would use the information in config/locales/es.yml.
18 | #
19 | # To learn more, please read the Rails Internationalization guide
20 | # available at http://guides.rubyonrails.org/i18n.html.
21 |
22 | en:
23 | hello: "Hello world"
24 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/routes.rb:
--------------------------------------------------------------------------------
1 | Rails.application.routes.draw do
2 |
3 | root to: "pages#homepage"
4 |
5 | get "/players" => "players#index", as: :players_index
6 | get "/tweets" => "tweets#index", as: :tweets_index
7 |
8 | end
9 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/secrets.yml:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Your secret key is used for verifying the integrity of signed cookies.
4 | # If you change this key, all old signed cookies will become invalid!
5 |
6 | # Make sure the secret is at least 30 characters and all random,
7 | # no regular words or you'll be exposed to dictionary attacks.
8 | # You can use `rails secret` to generate a secure secret key.
9 |
10 | # Make sure the secrets in this file are kept private
11 | # if you're sharing your code publicly.
12 |
13 | development:
14 | secret_key_base: 5e7e0b48c0a12527746e35ec0b05558d5c478ba2f4b137d463fe11be56baa975b870b4fcfa17c6e485552f909f489739739b10fb9e04fccdad5d63764060935c
15 |
16 | test:
17 | secret_key_base: 7dad6d68070aa7c5ac0062a8ed640a968b184273212c5f10db8d2d0e3a8d7e501e357a06ebbbb660c6f85acb0150f31f9aa5142be1cee94fe9e1b139bfe798ab
18 |
19 | # Do not keep production secrets in the repository,
20 | # instead read values from the environment.
21 | production:
22 | secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
23 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/config/spring.rb:
--------------------------------------------------------------------------------
1 | %w(
2 | .ruby-version
3 | .rbenv-vars
4 | tmp/restart.txt
5 | tmp/caching-dev.txt
6 | ).each { |path| Spring.watch(path) }
7 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/db/migrate/20160806095721_create_nba_players.rb:
--------------------------------------------------------------------------------
1 | class CreateNbaPlayers < ActiveRecord::Migration[5.0]
2 | def change
3 | create_table :nba_players do |t|
4 | t.string :display_name
5 | t.string :position
6 | t.string :team_display_name
7 | t.integer :points
8 | t.timestamps
9 | end
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/db/migrate/20160807081218_create_tweets.rb:
--------------------------------------------------------------------------------
1 | class CreateTweets < ActiveRecord::Migration[5.0]
2 | def change
3 | create_table :tweets do |t|
4 | t.string :tweet_id
5 | t.string :in_reply_to_status_id
6 | t.string :in_reply_to_user_id
7 | t.datetime :timestamp
8 | t.string :source
9 | t.string :text
10 | t.string :retweeted_status_id
11 | t.string :retweeted_status_user_id
12 | t.datetime :retweeted_status_timestamp
13 | t.string :expanded_url
14 | t.timestamps
15 | end
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/db/schema.rb:
--------------------------------------------------------------------------------
1 | # This file is auto-generated from the current state of the database. Instead
2 | # of editing this file, please use the migrations feature of Active Record to
3 | # incrementally modify your database, and then regenerate this schema definition.
4 | #
5 | # Note that this schema.rb definition is the authoritative source for your
6 | # database schema. If you need to create the application database on another
7 | # system, you should be using db:schema:load, not running all the migrations
8 | # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9 | # you'll amass, the slower it'll run and the greater likelihood for issues).
10 | #
11 | # It's strongly recommended that you check this file into your version control system.
12 |
13 | ActiveRecord::Schema.define(version: 20160807081218) do
14 |
15 | # These are extensions that must be enabled in order to support this database
16 | enable_extension "plpgsql"
17 |
18 | create_table "nba_players", force: :cascade do |t|
19 | t.string "display_name"
20 | t.string "position"
21 | t.string "team_display_name"
22 | t.integer "points"
23 | t.datetime "created_at", null: false
24 | t.datetime "updated_at", null: false
25 | end
26 |
27 | create_table "tweets", force: :cascade do |t|
28 | t.string "tweet_id"
29 | t.string "in_reply_to_status_id"
30 | t.string "in_reply_to_user_id"
31 | t.datetime "timestamp"
32 | t.string "source"
33 | t.string "text"
34 | t.string "retweeted_status_id"
35 | t.string "retweeted_status_user_id"
36 | t.datetime "retweeted_status_timestamp"
37 | t.string "expanded_url"
38 | t.datetime "created_at", null: false
39 | t.datetime "updated_at", null: false
40 | end
41 |
42 | end
43 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/db/seeds.rb:
--------------------------------------------------------------------------------
1 | # This file should contain all the record creation needed to seed the database with its default values.
2 | # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
3 | #
4 | # Examples:
5 | #
6 | # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
7 | # Character.create(name: 'Luke', movie: movies.first)
8 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/lib/assets/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/lib/assets/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/lib/tasks/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/lib/tasks/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/log/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/log/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/public/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The page you were looking for doesn't exist (404)
5 |
6 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
The page you were looking for doesn't exist.
62 |
You may have mistyped the address or the page may have moved.
63 |
64 |
If you are the application owner check the logs for more information.
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/public/422.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The change you wanted was rejected (422)
5 |
6 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
The change you wanted was rejected.
62 |
Maybe you tried to change something you didn't have access to.
63 |
64 |
If you are the application owner check the logs for more information.
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/public/500.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | We're sorry, but something went wrong (500)
5 |
6 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
We're sorry, but something went wrong.
62 |
63 |
If you are the application owner check the logs for more information.
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/public/apple-touch-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/public/apple-touch-icon-precomposed.png
--------------------------------------------------------------------------------
/algolia/ExampleApp/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/algolia/ExampleApp/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/public/favicon.ico
--------------------------------------------------------------------------------
/algolia/ExampleApp/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | # User-agent: *
5 | # Disallow: /
6 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/controllers/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/test/controllers/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/fixtures/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/test/fixtures/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/fixtures/files/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/test/fixtures/files/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/fixtures/nba_players.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2 |
3 | # This model initially had no columns defined. If you add columns to the
4 | # model remove the '{}' from the fixture names and add the columns immediately
5 | # below each fixture, per the syntax in the comments below
6 | #
7 | one: {}
8 | # column: value
9 | #
10 | two: {}
11 | # column: value
12 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/fixtures/tweets.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2 |
3 | # This model initially had no columns defined. If you add columns to the
4 | # model remove the '{}' from the fixture names and add the columns immediately
5 | # below each fixture, per the syntax in the comments below
6 | #
7 | one: {}
8 | # column: value
9 | #
10 | two: {}
11 | # column: value
12 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/helpers/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/test/helpers/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/integration/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/test/integration/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/mailers/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/test/mailers/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/models/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/test/models/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/models/nba_player_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class NbaPlayerTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/models/tweet_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class TweetTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/test/test_helper.rb:
--------------------------------------------------------------------------------
1 | ENV['RAILS_ENV'] ||= 'test'
2 | require File.expand_path('../../config/environment', __FILE__)
3 | require 'rails/test_help'
4 |
5 | class ActiveSupport::TestCase
6 | # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
7 | fixtures :all
8 |
9 | # Add more helper methods to be used by all tests here...
10 | end
11 |
--------------------------------------------------------------------------------
/algolia/ExampleApp/tmp/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/tmp/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/vendor/assets/javascripts/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/vendor/assets/javascripts/.keep
--------------------------------------------------------------------------------
/algolia/ExampleApp/vendor/assets/stylesheets/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ExampleApp/vendor/assets/stylesheets/.keep
--------------------------------------------------------------------------------
/algolia/ui1/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | node_modules
5 |
6 | # production
7 | build
8 |
9 | # misc
10 | .DS_Store
11 | npm-debug.log
12 |
--------------------------------------------------------------------------------
/algolia/ui1/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ui1/favicon.ico
--------------------------------------------------------------------------------
/algolia/ui1/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | React App
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/algolia/ui1/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hello-world",
3 | "version": "0.0.1",
4 | "private": true,
5 | "devDependencies": {
6 | "react-scripts": "0.2.1"
7 | },
8 | "dependencies": {
9 | "react": "^15.2.1",
10 | "react-dom": "^15.2.1",
11 | "q": "^1.4.1",
12 | "lodash": "^4.14.1",
13 | "algoliasearch": "^3.18.0"
14 | },
15 | "scripts": {
16 | "start": "react-scripts start",
17 | "build": "react-scripts build",
18 | "eject": "react-scripts eject"
19 | },
20 | "eslintConfig": {
21 | "extends": "./node_modules/react-scripts/config/eslint.js"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/algolia/ui1/src/App.css:
--------------------------------------------------------------------------------
1 | .App {
2 |
3 | }
4 |
5 | input:focus {
6 | outline: none;
7 | }
8 |
9 | h1 {
10 | margin-top: 0px;
11 | margin-bottom: 15px;
12 | }
13 |
14 | table {
15 | border-spacing: 50px 0;
16 | }
17 |
18 | tr {
19 | }
20 |
21 | th {
22 |
23 | }
24 |
25 | td {
26 | }
27 |
28 | .App-Header {
29 | background-color: #222;
30 | height: 100px;
31 | padding: 20px;
32 | color: white;
33 | display: flex;
34 | flex-direction: column;
35 | justify-content: center;
36 | align-items: center;
37 | }
38 |
39 | .App-Content {
40 | display: flex;
41 | flex-direction: row;
42 | justify-content: center;
43 | align-items: center;
44 | margin-top: 15px;
45 | }
46 |
47 | .App-intro {
48 | font-size: large;
49 | }
50 |
51 | .search {
52 | width: 50%;
53 | padding: 10px 5px 10px 5px;
54 | font-size: 1em;
55 | font-weight: bold;
56 | text-align: center;
57 | }
58 |
--------------------------------------------------------------------------------
/algolia/ui1/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: sans-serif;
5 | }
6 |
--------------------------------------------------------------------------------
/algolia/ui1/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 | import './index.css';
5 |
6 | ReactDOM.render(
7 | ,
8 | document.getElementById('root')
9 | );
10 |
--------------------------------------------------------------------------------
/algolia/ui1/src/services/APIService.js:
--------------------------------------------------------------------------------
1 | import Q from 'q'
2 |
3 | class APIService {
4 |
5 | constructor(endpoint) {
6 | this.endpoint = endpoint;
7 | }
8 |
9 | getPlayers() {
10 | var deferred = Q.defer()
11 |
12 | fetch(`${this.endpoint}/players`, {})
13 | .then((response) => {
14 | deferred.resolve(response.json())
15 | })
16 | .catch((error) => deferred.reject(error.message))
17 |
18 | return deferred.promise
19 | }
20 |
21 | }
22 |
23 | module.exports = new APIService("http://localhost:3003")
24 |
--------------------------------------------------------------------------------
/algolia/ui1/src/services/AlgoliaService.js:
--------------------------------------------------------------------------------
1 | import algolia from 'algoliasearch'
2 |
3 | class AlgoliaService {
4 |
5 | constructor() {
6 | this.client = algolia("4L9CPAAAZI", "c2fa5539341be8b38a94d152c9bf6553")
7 | this.index = this.client.initIndex('nba_players')
8 | }
9 |
10 | }
11 |
12 | module.exports = new AlgoliaService()
13 |
--------------------------------------------------------------------------------
/algolia/ui2/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | node_modules
5 |
6 | # production
7 | build
8 |
9 | # misc
10 | .DS_Store
11 | npm-debug.log
12 |
--------------------------------------------------------------------------------
/algolia/ui2/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/algolia/ui2/favicon.ico
--------------------------------------------------------------------------------
/algolia/ui2/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | React App
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/algolia/ui2/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hello-world",
3 | "version": "0.0.1",
4 | "private": true,
5 | "devDependencies": {
6 | "react-scripts": "0.2.1"
7 | },
8 | "dependencies": {
9 | "react": "^15.2.1",
10 | "react-dom": "^15.2.1",
11 | "q": "^1.4.1",
12 | "lodash": "^4.14.1",
13 | "algoliasearch": "^3.18.0"
14 | },
15 | "scripts": {
16 | "start": "react-scripts start",
17 | "build": "react-scripts build",
18 | "eject": "react-scripts eject"
19 | },
20 | "eslintConfig": {
21 | "extends": "./node_modules/react-scripts/config/eslint.js"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/algolia/ui2/src/App.css:
--------------------------------------------------------------------------------
1 | .App {
2 |
3 | }
4 |
5 | em {
6 | background-color: aqua;
7 | }
8 |
9 | input:focus {
10 | outline: none;
11 | }
12 |
13 | h1 {
14 | margin-top: 0px;
15 | margin-bottom: 15px;
16 | }
17 |
18 | table {
19 | border-spacing: 50px 0;
20 | }
21 |
22 | tr {
23 | }
24 |
25 | th {
26 |
27 | }
28 |
29 | td {
30 | }
31 |
32 | .App-Header {
33 | background-color: #222;
34 | height: 100px;
35 | padding: 20px;
36 | color: white;
37 | display: flex;
38 | flex-direction: column;
39 | justify-content: center;
40 | align-items: center;
41 | }
42 |
43 | .App-Content {
44 | display: flex;
45 | flex-direction: row;
46 | justify-content: center;
47 | align-items: center;
48 | margin-top: 15px;
49 | }
50 |
51 | .App-intro {
52 | font-size: large;
53 | }
54 |
55 | .search {
56 | width: 50%;
57 | padding: 10px 5px 10px 5px;
58 | font-size: 1em;
59 | font-weight: bold;
60 | text-align: center;
61 | }
62 |
--------------------------------------------------------------------------------
/algolia/ui2/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: sans-serif;
5 | }
6 |
--------------------------------------------------------------------------------
/algolia/ui2/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 | import './index.css';
5 |
6 | ReactDOM.render(
7 | ,
8 | document.getElementById('root')
9 | );
10 |
--------------------------------------------------------------------------------
/algolia/ui2/src/services/APIService.js:
--------------------------------------------------------------------------------
1 | import Q from 'q'
2 |
3 | class APIService {
4 |
5 | constructor(endpoint) {
6 | this.endpoint = endpoint;
7 | }
8 |
9 | getPlayers() {
10 | var deferred = Q.defer()
11 |
12 | fetch(`${this.endpoint}/tweets`, {})
13 | .then((response) => {
14 | deferred.resolve(response.json())
15 | })
16 | .catch((error) => deferred.reject(error.message))
17 |
18 | return deferred.promise
19 | }
20 |
21 | }
22 |
23 | module.exports = new APIService("http://localhost:3003")
24 |
--------------------------------------------------------------------------------
/algolia/ui2/src/services/AlgoliaService.js:
--------------------------------------------------------------------------------
1 | import algolia from 'algoliasearch'
2 |
3 | class AlgoliaService {
4 |
5 | constructor() {
6 | this.client = algolia("4L9CPAAAZI", "c2fa5539341be8b38a94d152c9bf6553")
7 | this.index = this.client.initIndex('tweets')
8 | }
9 |
10 | }
11 |
12 | module.exports = new AlgoliaService()
13 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 | ruby '2.2.2'
3 |
4 | gem 'rails', '~> 5.0.0'
5 | gem 'pg'
6 | gem 'puma', '~> 3.0'
7 | gem 'pry-rails'
8 | gem "aws-sdk"
9 |
10 | gem 'sidekiq'
11 | gem 'sinatra', github: 'sinatra/sinatra'
12 |
13 | gem 'sass-rails', '~> 5.0'
14 | gem 'uglifier', '>= 1.3.0'
15 | gem 'coffee-rails', '~> 4.2'
16 | gem 'jquery-rails'
17 | gem 'turbolinks', '~> 5'
18 | gem 'jbuilder', '~> 2.5'
19 |
20 | group :development, :test do
21 | gem 'byebug', platform: :mri
22 | end
23 |
24 | group :development do
25 | gem 'web-console'
26 | gem 'listen', '~> 3.0.5'
27 | gem 'spring'
28 | gem 'spring-watcher-listen', '~> 2.0.0'
29 | end
30 |
31 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
32 | gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
33 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/Procfile:
--------------------------------------------------------------------------------
1 | web: bundle exec puma -C config/puma.rb
2 | reportworker: bundle exec sidekiq -c 1
3 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/README.md:
--------------------------------------------------------------------------------
1 | # README
2 |
3 | This README would normally document whatever steps are necessary to get the
4 | application up and running.
5 |
6 | Things you may want to cover:
7 |
8 | * Ruby version
9 |
10 | * System dependencies
11 |
12 | * Configuration
13 |
14 | * Database creation
15 |
16 | * Database initialization
17 |
18 | * How to run the test suite
19 |
20 | * Services (job queues, cache servers, search engines, etc.)
21 |
22 | * Deployment instructions
23 |
24 | * ...
25 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/Rakefile:
--------------------------------------------------------------------------------
1 | # Add your own tasks in files placed in lib/tasks ending in .rake,
2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3 |
4 | require_relative 'config/application'
5 |
6 | Rails.application.load_tasks
7 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/assets/config/manifest.js:
--------------------------------------------------------------------------------
1 | //= link_tree ../images
2 | //= link_directory ../javascripts .js
3 | //= link_directory ../stylesheets .css
4 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/assets/images/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/app/assets/images/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/assets/images/sales-report.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/app/assets/images/sales-report.png
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/assets/javascripts/application.js:
--------------------------------------------------------------------------------
1 | // This is a manifest file that'll be compiled into application.js, which will include all the files
2 | // listed below.
3 | //
4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 | // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6 | //
7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 | // compiled file. JavaScript code in this file should be added after the last require_* statement.
9 | //
10 | // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11 | // about supported directives.
12 | //
13 | //= require jquery
14 | //= require jquery_ujs
15 | //= require turbolinks
16 | //= require_tree .
17 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/assets/javascripts/cable.js:
--------------------------------------------------------------------------------
1 | // Action Cable provides the framework to deal with WebSockets in Rails.
2 | // You can generate new channels where WebSocket features live using the rails generate channel command.
3 | //
4 | //= require action_cable
5 | //= require_self
6 | //= require_tree ./channels
7 |
8 | (function() {
9 | this.App || (this.App = {});
10 |
11 | App.cable = ActionCable.createConsumer();
12 |
13 | }).call(this);
14 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/assets/javascripts/channels/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/app/assets/javascripts/channels/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/assets/stylesheets/application.css:
--------------------------------------------------------------------------------
1 | /*
2 | * This is a manifest file that'll be compiled into application.css, which will include all the files
3 | * listed below.
4 | *
5 | * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6 | * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7 | *
8 | * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9 | * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10 | * files in this directory. Styles in this file should be added after the last require_* statement.
11 | * It is generally better to create a new file per style scope.
12 | *
13 | *= require_tree .
14 | *= require_self
15 | */
16 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/channels/application_cable/channel.rb:
--------------------------------------------------------------------------------
1 | module ApplicationCable
2 | class Channel < ActionCable::Channel::Base
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/channels/application_cable/connection.rb:
--------------------------------------------------------------------------------
1 | module ApplicationCable
2 | class Connection < ActionCable::Connection::Base
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/controllers/application_controller.rb:
--------------------------------------------------------------------------------
1 | class ApplicationController < ActionController::Base
2 | protect_from_forgery with: :exception
3 | end
4 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/controllers/concerns/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/app/controllers/concerns/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/controllers/pages_controller.rb:
--------------------------------------------------------------------------------
1 | class PagesController < ApplicationController
2 |
3 | def homepage
4 | render text: "HOMEPAGE"
5 | end
6 |
7 | end
8 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/controllers/sales_controller.rb:
--------------------------------------------------------------------------------
1 | class SalesController < ApplicationController
2 |
3 | def index
4 | end
5 |
6 | def report
7 | # generate_report()
8 | ReportWorker.perform_async("07-01-2016", "08-01-2016")
9 | render text: "REQUEST TO GENERATE A REPORT ADDED TO THE QUEUE"
10 | end
11 |
12 | private
13 | def generate_report
14 | sleep 30
15 | end
16 |
17 | end
18 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/helpers/application_helper.rb:
--------------------------------------------------------------------------------
1 | module ApplicationHelper
2 | end
3 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/jobs/application_job.rb:
--------------------------------------------------------------------------------
1 | class ApplicationJob < ActiveJob::Base
2 | end
3 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/mailers/application_mailer.rb:
--------------------------------------------------------------------------------
1 | class ApplicationMailer < ActionMailer::Base
2 | default from: 'from@example.com'
3 | layout 'mailer'
4 | end
5 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/models/application_record.rb:
--------------------------------------------------------------------------------
1 | class ApplicationRecord < ActiveRecord::Base
2 | self.abstract_class = true
3 | end
4 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/models/concerns/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/app/models/concerns/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/views/layouts/application.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ExampleApp
5 | <%= csrf_meta_tags %>
6 |
7 | <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
8 | <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
9 |
10 |
11 |
12 | <%= yield %>
13 |
14 |
15 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/views/layouts/mailer.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
11 | <%= yield %>
12 |
13 |
14 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/views/layouts/mailer.text.erb:
--------------------------------------------------------------------------------
1 | <%= yield %>
2 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/views/sales/index.html.erb:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
Create A Sales Report
8 |
9 |
10 | GENERATE SALES REPORT
11 |
12 |
13 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/views/sales/report.html.erb:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
THIS IS THE SALES REPORT
10 |
11 | <%= image_tag "sales-report.png", class: "sales-report" %>
12 |
13 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/app/workers/report_worker.rb:
--------------------------------------------------------------------------------
1 | class ReportWorker
2 | include Sidekiq::Worker
3 | sidekiq_options retry: false
4 |
5 | def perform(start_date, end_date)
6 | puts "SIDEKIQ WORKER GENERATING A REPORT FROM #{start_date} to #{end_date}"
7 | end
8 |
9 | end
10 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/bin/bundle:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3 | load Gem.bin_path('bundler', 'bundle')
4 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/bin/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | begin
3 | load File.expand_path('../spring', __FILE__)
4 | rescue LoadError => e
5 | raise unless e.message.include?('spring')
6 | end
7 | APP_PATH = File.expand_path('../config/application', __dir__)
8 | require_relative '../config/boot'
9 | require 'rails/commands'
10 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/bin/rake:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | begin
3 | load File.expand_path('../spring', __FILE__)
4 | rescue LoadError => e
5 | raise unless e.message.include?('spring')
6 | end
7 | require_relative '../config/boot'
8 | require 'rake'
9 | Rake.application.run
10 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/bin/setup:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require 'pathname'
3 | require 'fileutils'
4 | include FileUtils
5 |
6 | # path to your application root.
7 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
8 |
9 | def system!(*args)
10 | system(*args) || abort("\n== Command #{args} failed ==")
11 | end
12 |
13 | chdir APP_ROOT do
14 | # This script is a starting point to setup your application.
15 | # Add necessary setup steps to this file.
16 |
17 | puts '== Installing dependencies =='
18 | system! 'gem install bundler --conservative'
19 | system('bundle check') || system!('bundle install')
20 |
21 | # puts "\n== Copying sample files =="
22 | # unless File.exist?('config/database.yml')
23 | # cp 'config/database.yml.sample', 'config/database.yml'
24 | # end
25 |
26 | puts "\n== Preparing database =="
27 | system! 'bin/rails db:setup'
28 |
29 | puts "\n== Removing old logs and tempfiles =="
30 | system! 'bin/rails log:clear tmp:clear'
31 |
32 | puts "\n== Restarting application server =="
33 | system! 'bin/rails restart'
34 | end
35 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/bin/spring:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | # This file loads spring without using Bundler, in order to be fast.
4 | # It gets overwritten when you run the `spring binstub` command.
5 |
6 | unless defined?(Spring)
7 | require 'rubygems'
8 | require 'bundler'
9 |
10 | if (match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m))
11 | Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(Gem.path_separator) }
12 | gem 'spring', match[1]
13 | require 'spring/binstub'
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/bin/update:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require 'pathname'
3 | require 'fileutils'
4 | include FileUtils
5 |
6 | # path to your application root.
7 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
8 |
9 | def system!(*args)
10 | system(*args) || abort("\n== Command #{args} failed ==")
11 | end
12 |
13 | chdir APP_ROOT do
14 | # This script is a way to update your development environment automatically.
15 | # Add necessary update steps to this file.
16 |
17 | puts '== Installing dependencies =='
18 | system! 'gem install bundler --conservative'
19 | system('bundle check') || system!('bundle install')
20 |
21 | puts "\n== Updating database =="
22 | system! 'bin/rails db:migrate'
23 |
24 | puts "\n== Removing old logs and tempfiles =="
25 | system! 'bin/rails log:clear tmp:clear'
26 |
27 | puts "\n== Restarting application server =="
28 | system! 'bin/rails restart'
29 | end
30 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 |
3 | require_relative 'config/environment'
4 |
5 | run Rails.application
6 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/application.rb:
--------------------------------------------------------------------------------
1 | require_relative 'boot'
2 |
3 | require 'rails/all'
4 |
5 | # Require the gems listed in Gemfile, including any gems
6 | # you've limited to :test, :development, or :production.
7 | Bundler.require(*Rails.groups)
8 |
9 | module ExampleApp
10 | class Application < Rails::Application
11 | # Settings in config/environments/* take precedence over those specified here.
12 | # Application configuration should go into files in config/initializers
13 | # -- all .rb files in that directory are automatically loaded.
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/boot.rb:
--------------------------------------------------------------------------------
1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2 |
3 | require 'bundler/setup' # Set up gems listed in the Gemfile.
4 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/cable.yml:
--------------------------------------------------------------------------------
1 | development:
2 | adapter: async
3 |
4 | test:
5 | adapter: async
6 |
7 | production:
8 | adapter: redis
9 | url: redis://localhost:6379/1
10 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/database.yml:
--------------------------------------------------------------------------------
1 | default: &default
2 | adapter: postgresql
3 | pool: 5
4 | timeout: 5000
5 |
6 | development:
7 | <<: *default
8 | database: abc_sandbox_development
9 |
10 | test:
11 | <<: *default
12 | database: abc_sandbox_test
13 |
14 | production:
15 | <<: *default
16 | database: abc_sandbox_production
17 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the Rails application.
2 | require_relative 'application'
3 |
4 | # Initialize the Rails application.
5 | Rails.application.initialize!
6 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/environments/test.rb:
--------------------------------------------------------------------------------
1 | Rails.application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb.
3 |
4 | # The test environment is used exclusively to run your application's
5 | # test suite. You never need to work with it otherwise. Remember that
6 | # your test database is "scratch space" for the test suite and is wiped
7 | # and recreated between test runs. Don't rely on the data there!
8 | config.cache_classes = true
9 |
10 | # Do not eager load code on boot. This avoids loading your whole application
11 | # just for the purpose of running a single test. If you are using a tool that
12 | # preloads Rails for running tests, you may have to set it to true.
13 | config.eager_load = false
14 |
15 | # Configure public file server for tests with Cache-Control for performance.
16 | config.public_file_server.enabled = true
17 | config.public_file_server.headers = {
18 | 'Cache-Control' => 'public, max-age=3600'
19 | }
20 |
21 | # Show full error reports and disable caching.
22 | config.consider_all_requests_local = true
23 | config.action_controller.perform_caching = false
24 |
25 | # Raise exceptions instead of rendering exception templates.
26 | config.action_dispatch.show_exceptions = false
27 |
28 | # Disable request forgery protection in test environment.
29 | config.action_controller.allow_forgery_protection = false
30 | config.action_mailer.perform_caching = false
31 |
32 | # Tell Action Mailer not to deliver emails to the real world.
33 | # The :test delivery method accumulates sent emails in the
34 | # ActionMailer::Base.deliveries array.
35 | config.action_mailer.delivery_method = :test
36 |
37 | # Print deprecation notices to the stderr.
38 | config.active_support.deprecation = :stderr
39 |
40 | # Raises error for missing translations
41 | # config.action_view.raise_on_missing_translations = true
42 | end
43 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/1-api_clients.rb:
--------------------------------------------------------------------------------
1 | AWS_S3_CLIENT = Aws::S3::Client.new(
2 | region: "us-standard",
3 | credentials: Aws::Credentials.new(
4 | Rails.application.secrets.aws_access_key,
5 | Rails.application.secrets.aws_secret_key
6 | )
7 | )
8 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/application_controller_renderer.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # ApplicationController.renderer.defaults.merge!(
4 | # http_host: 'example.org',
5 | # https: false
6 | # )
7 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/assets.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Version of your assets, change this if you want to expire all your assets.
4 | Rails.application.config.assets.version = '1.0'
5 |
6 | # Add additional assets to the asset load path
7 | # Rails.application.config.assets.paths << Emoji.images_path
8 |
9 | # Precompile additional assets.
10 | # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
11 | # Rails.application.config.assets.precompile += %w( search.js )
12 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/backtrace_silencers.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5 |
6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7 | # Rails.backtrace_cleaner.remove_silencers!
8 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/cookies_serializer.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Specify a serializer for the signed and encrypted cookie jars.
4 | # Valid options are :json, :marshal, and :hybrid.
5 | Rails.application.config.action_dispatch.cookies_serializer = :json
6 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/filter_parameter_logging.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Configure sensitive parameters which will be filtered from the log file.
4 | Rails.application.config.filter_parameters += [:password]
5 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/inflections.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new inflection rules using the following format. Inflections
4 | # are locale specific, and you may define rules for as many different
5 | # locales as you wish. All of these examples are active by default:
6 | # ActiveSupport::Inflector.inflections(:en) do |inflect|
7 | # inflect.plural /^(ox)$/i, '\1en'
8 | # inflect.singular /^(ox)en/i, '\1'
9 | # inflect.irregular 'person', 'people'
10 | # inflect.uncountable %w( fish sheep )
11 | # end
12 |
13 | # These inflection rules are supported but not enabled by default:
14 | # ActiveSupport::Inflector.inflections(:en) do |inflect|
15 | # inflect.acronym 'RESTful'
16 | # end
17 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/new_framework_defaults.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 | #
3 | # This file contains migration options to ease your Rails 5.0 upgrade.
4 | #
5 | # Read the Rails 5.0 release notes for more info on each option.
6 |
7 | # Enable per-form CSRF tokens. Previous versions had false.
8 | Rails.application.config.action_controller.per_form_csrf_tokens = true
9 |
10 | # Enable origin-checking CSRF mitigation. Previous versions had false.
11 | Rails.application.config.action_controller.forgery_protection_origin_check = true
12 |
13 | # Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`.
14 | # Previous versions had false.
15 | ActiveSupport.to_time_preserves_timezone = true
16 |
17 | # Require `belongs_to` associations by default. Previous versions had false.
18 | Rails.application.config.active_record.belongs_to_required_by_default = true
19 |
20 | # Do not halt callback chains when a callback returns false. Previous versions had true.
21 | ActiveSupport.halt_callback_chains_on_return_false = false
22 |
23 | # Configure SSL options to enable HSTS with subdomains. Previous versions had false.
24 | Rails.application.config.ssl_options = { hsts: { subdomains: true } }
25 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/session_store.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | Rails.application.config.session_store :cookie_store, key: '_ExampleApp_session'
4 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/initializers/wrap_parameters.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # This file contains settings for ActionController::ParamsWrapper which
4 | # is enabled by default.
5 |
6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7 | ActiveSupport.on_load(:action_controller) do
8 | wrap_parameters format: [:json]
9 | end
10 |
11 | # To enable root element in JSON for ActiveRecord objects.
12 | # ActiveSupport.on_load(:active_record) do
13 | # self.include_root_in_json = true
14 | # end
15 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/locales/en.yml:
--------------------------------------------------------------------------------
1 | # Files in the config/locales directory are used for internationalization
2 | # and are automatically loaded by Rails. If you want to use locales other
3 | # than English, add the necessary files in this directory.
4 | #
5 | # To use the locales, use `I18n.t`:
6 | #
7 | # I18n.t 'hello'
8 | #
9 | # In views, this is aliased to just `t`:
10 | #
11 | # <%= t('hello') %>
12 | #
13 | # To use a different locale, set it with `I18n.locale`:
14 | #
15 | # I18n.locale = :es
16 | #
17 | # This would use the information in config/locales/es.yml.
18 | #
19 | # To learn more, please read the Rails Internationalization guide
20 | # available at http://guides.rubyonrails.org/i18n.html.
21 |
22 | en:
23 | hello: "Hello world"
24 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/puma.rb:
--------------------------------------------------------------------------------
1 | workers Integer(ENV['WEB_CONCURRENCY'] || 2)
2 | threads_count = Integer(ENV['MAX_THREADS'] || 5)
3 | threads threads_count, threads_count
4 |
5 | preload_app!
6 |
7 | rackup DefaultRackup
8 | port ENV['PORT'] || 3000
9 | environment ENV['RACK_ENV'] || 'development'
10 |
11 | on_worker_boot do
12 | # Worker specific setup for Rails 4.1+
13 | # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
14 | ActiveRecord::Base.establish_connection
15 | end
16 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/routes.rb:
--------------------------------------------------------------------------------
1 | Rails.application.routes.draw do
2 |
3 | require 'sidekiq/web'
4 | mount Sidekiq::Web => "/sidekiq"
5 |
6 | root to: "pages#homepage"
7 |
8 | get "/sales" => "sales#index", as: "sales_index"
9 | get "/sales/report" => "sales#report", as: "sales_report"
10 |
11 | end
12 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/secrets.yml:
--------------------------------------------------------------------------------
1 | development:
2 | secret_key_base: 104e4f8072ff65128e391823bbea412825843831224962cdcb8852eb7a2622a941e6e6537eb0a03b07eec96097cc876af08aa5cc776d51f210a4815ddb8434e4
3 | aws_access_key: <%= ENV["ABC_SANDBOX_AWS_ACCESS_KEY"] %>
4 | aws_secret_key: <%= ENV["ABC_SANDBOX_AWS_SECRET_KEY"] %>
5 |
6 | test:
7 | secret_key_base: cc7d576841aeb78013fec7d29adca8c7a8b6c0b992837c81798f324791ff930ec5eb36feeb35cbc4e45f9cc1f49d9d3aaafb8178191a2c18c909da69770d026e
8 |
9 | # Do not keep production secrets in the repository,
10 | # instead read values from the environment.
11 | production:
12 | secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
13 | aws_access_key: <%= ENV["ABC_SANDBOX_AWS_ACCESS_KEY"] %>
14 | aws_secret_key: <%= ENV["ABC_SANDBOX_AWS_SECRET_KEY"] %>
15 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/config/spring.rb:
--------------------------------------------------------------------------------
1 | %w(
2 | .ruby-version
3 | .rbenv-vars
4 | tmp/restart.txt
5 | tmp/caching-dev.txt
6 | ).each { |path| Spring.watch(path) }
7 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/db/development.sqlite3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/db/development.sqlite3
--------------------------------------------------------------------------------
/background-processing/ExampleApp/db/seeds.rb:
--------------------------------------------------------------------------------
1 | # This file should contain all the record creation needed to seed the database with its default values.
2 | # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
3 | #
4 | # Examples:
5 | #
6 | # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
7 | # Character.create(name: 'Luke', movie: movies.first)
8 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/dump.rdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/dump.rdb
--------------------------------------------------------------------------------
/background-processing/ExampleApp/lib/assets/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/lib/assets/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/lib/tasks/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/lib/tasks/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/log/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/log/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/public/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The page you were looking for doesn't exist (404)
5 |
6 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
The page you were looking for doesn't exist.
62 |
You may have mistyped the address or the page may have moved.
63 |
64 |
If you are the application owner check the logs for more information.
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/public/422.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The change you wanted was rejected (422)
5 |
6 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
The change you wanted was rejected.
62 |
Maybe you tried to change something you didn't have access to.
63 |
64 |
If you are the application owner check the logs for more information.
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/public/500.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | We're sorry, but something went wrong (500)
5 |
6 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
We're sorry, but something went wrong.
62 |
63 |
If you are the application owner check the logs for more information.
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/public/apple-touch-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/public/apple-touch-icon-precomposed.png
--------------------------------------------------------------------------------
/background-processing/ExampleApp/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/background-processing/ExampleApp/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/public/favicon.ico
--------------------------------------------------------------------------------
/background-processing/ExampleApp/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | # User-agent: *
5 | # Disallow: /
6 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/test/controllers/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/test/controllers/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/test/fixtures/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/test/fixtures/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/test/fixtures/files/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/test/fixtures/files/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/test/helpers/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/test/helpers/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/test/integration/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/test/integration/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/test/mailers/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/test/mailers/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/test/models/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/test/models/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/test/test_helper.rb:
--------------------------------------------------------------------------------
1 | ENV['RAILS_ENV'] ||= 'test'
2 | require File.expand_path('../../config/environment', __FILE__)
3 | require 'rails/test_help'
4 |
5 | class ActiveSupport::TestCase
6 | # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
7 | fixtures :all
8 |
9 | # Add more helper methods to be used by all tests here...
10 | end
11 |
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/-e/-e0ECS-ooK0sochKTgf57H1oDsqEcx-PDi1eXT4_qc8.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/-e/-e0ECS-ooK0sochKTgf57H1oDsqEcx-PDi1eXT4_qc8.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/-n/-nNpe7s96U0iGld-nPMpDye902z-ifBm2XIMnRwfaMU.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/-n/-nNpe7s96U0iGld-nPMpDye902z-ifBm2XIMnRwfaMU.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/2e/2eAr534jXGX387s3X5h0Qwqo0b7U6r62S3x6WU-0R1k.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/2e/2eAr534jXGX387s3X5h0Qwqo0b7U6r62S3x6WU-0R1k.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/4a/4aWiDpuP3Xx86uMX2U3OC7UwJ-4H25xkTwtHdaWdcwk.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/4a/4aWiDpuP3Xx86uMX2U3OC7UwJ-4H25xkTwtHdaWdcwk.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/57/57Tq38Hsbpm1ZsrOZlp22SqFLwm9WIwF4zWy6UsBMeo.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/57/57Tq38Hsbpm1ZsrOZlp22SqFLwm9WIwF4zWy6UsBMeo.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/5C/5Cz2SZfooz8vHZSRjuioeK8z-HYbUPaj8wx8Bbkx3-4.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/5C/5Cz2SZfooz8vHZSRjuioeK8z-HYbUPaj8wx8Bbkx3-4.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/5Z/5ZfqjIcl34GiavyPtRbrmlym63GvR3G1OsOrp7C3Vtc.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/5Z/5ZfqjIcl34GiavyPtRbrmlym63GvR3G1OsOrp7C3Vtc.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/6O/6OM4eKWmyu8FP8ePoUbtvhdi-l6r99e2kGF0kAxXzr0.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/6O/6OM4eKWmyu8FP8ePoUbtvhdi-l6r99e2kGF0kAxXzr0.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/8k/8kcr07-k11ofJWEUPLi3K1EsSmA9CEEDNdKy0eRZJZU.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/8k/8kcr07-k11ofJWEUPLi3K1EsSmA9CEEDNdKy0eRZJZU.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/AQ/AQ1vkyf4o7ylnFLe_I9XkbVtqlV5r1Q6xFETgCdgHNM.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/AQ/AQ1vkyf4o7ylnFLe_I9XkbVtqlV5r1Q6xFETgCdgHNM.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Ac/AcAkg8U307aS6HD-FSMXui3N7RBbJImZ3f2QRT801vk.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Ac/AcAkg8U307aS6HD-FSMXui3N7RBbJImZ3f2QRT801vk.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Ah/Ah6cB36A7NhgovtgiAwhFoBvsQ-cO0Fg_H3_ymzHROo.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Ah/Ah6cB36A7NhgovtgiAwhFoBvsQ-cO0Fg_H3_ymzHROo.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Ci/CiFq9DzhRfXRBt3TeGmumDxWjdNIf4pxv0pC53BWIAs.cache:
--------------------------------------------------------------------------------
1 | [o:Set:
2 | @hash{
3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"wfile-digest:///Users/AlwaysBCoding/.rvm/gems/ruby-2.2.2/gems/actioncable-5.0.0/lib/assets/compiled/action_cable.js;TT
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/DL/DLPb1Inxs2E5veB9tUyhAJLJfRwKJNBw9wQreVhC6Ys.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/DL/DLPb1Inxs2E5veB9tUyhAJLJfRwKJNBw9wQreVhC6Ys.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/DU/DUqDnReFIBxW72sAdVQ1xD6_mSy0WbalwBbQd0jUxFQ.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/DU/DUqDnReFIBxW72sAdVQ1xD6_mSy0WbalwBbQd0jUxFQ.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Eh/Eh1OipvnTuooommCKM7Frx1LAbiYewIs2ttP0infO_s.cache:
--------------------------------------------------------------------------------
1 | [o:Set:
2 | @hash{
3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"|file-digest:///Users/AlwaysBCoding/.rvm/gems/ruby-2.2.2/gems/jquery-rails-4.1.1/vendor/assets/javascripts/jquery_ujs.js;TT
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/GA/GAHjAcW18tNatNnAum9-_9XN8TyhYsSWAuqV_9JT_fo.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/GA/GAHjAcW18tNatNnAum9-_9XN8TyhYsSWAuqV_9JT_fo.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Gz/GzPhHFHiZXvrJ00rOd21LsQ_DCdqv2DkLMksQ204Nms.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Gz/GzPhHFHiZXvrJ00rOd21LsQ_DCdqv2DkLMksQ204Nms.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/HS/HSXm-9jpI_ixWNaHTDoUO0FC8leXHbou4ba0vo4OEQU.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/HS/HSXm-9jpI_ixWNaHTDoUO0FC8leXHbou4ba0vo4OEQU.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Hk/HkxOsloR6ijj2336LgIP-shihoIDBMHxw2pRY89KEKw.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Hk/HkxOsloR6ijj2336LgIP-shihoIDBMHxw2pRY89KEKw.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Lf/Lf3kseTPrGqs8g72ezzM3S78Udcv8oTc6MFtQ7ATy7k.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Lf/Lf3kseTPrGqs8g72ezzM3S78Udcv8oTc6MFtQ7ATy7k.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Ls/Ls_YvC7bfIprxtq3lEmdkvGsYcruQsmAzo2q9hhPfsk.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Ls/Ls_YvC7bfIprxtq3lEmdkvGsYcruQsmAzo2q9hhPfsk.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/N5/N5p3-qmvJu_bYTsN3_LLcH3dKIAfLqgCtZBDHxbbVtM.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/N5/N5p3-qmvJu_bYTsN3_LLcH3dKIAfLqgCtZBDHxbbVtM.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Nu/NuWD2BA8D70_h1KwJd9kzY_iUjmUGKEyZQfaY5KXK2w.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Nu/NuWD2BA8D70_h1KwJd9kzY_iUjmUGKEyZQfaY5KXK2w.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Qt/Qtd466i3WdW7qq5RWSe6_7E6IPoD9LIGxhHp6EdzJgQ.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Qt/Qtd466i3WdW7qq5RWSe6_7E6IPoD9LIGxhHp6EdzJgQ.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/SJ/SJcxVQJV3vmlE5zeKLPxnjiGASHlT5CDZSBZ5epjcso.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/SJ/SJcxVQJV3vmlE5zeKLPxnjiGASHlT5CDZSBZ5epjcso.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/UF/UFu2YKqU1ArRqKuyi8P-yCnTtO0P_OaPf3n3EiOOq70.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/UF/UFu2YKqU1ArRqKuyi8P-yCnTtO0P_OaPf3n3EiOOq70.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/XS/XSoAQvB_lvIEGtQN5ze-VbeB7qvTkd2PIum9D01xJqk.cache:
--------------------------------------------------------------------------------
1 | [o:Set:
2 | @hash{
3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"xfile-digest:///Users/AlwaysBCoding/.rvm/gems/ruby-2.2.2/gems/jquery-rails-4.1.1/vendor/assets/javascripts/jquery.js;TT
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Xc/Xc2klhe_OBtCwaX7WPiQOr7ue6dEdMZDqz9UxkXSzvk.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/Xc/Xc2klhe_OBtCwaX7WPiQOr7ue6dEdMZDqz9UxkXSzvk.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ZY/ZYogV3v9tSXdYMo9zNszB06BywrrRbqJSmjD_nN8_hw.cache:
--------------------------------------------------------------------------------
1 | [o:Set:
2 | @hash{
3 | I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"~file-digest:///Users/AlwaysBCoding/.rvm/gems/ruby-2.2.2/gems/turbolinks-source-5.0.0/lib/assets/javascripts/turbolinks.js;TT
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/_B/_Be7WwuLRzBG72WHV5RyxYKJvdmhKX_vuv4ALuhakYU.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/_B/_Be7WwuLRzBG72WHV5RyxYKJvdmhKX_vuv4ALuhakYU.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/_M/_M02gJxatadj640TQWWZ9u6F2NT2WOczUBAsBdtJusM.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/_M/_M02gJxatadj640TQWWZ9u6F2NT2WOczUBAsBdtJusM.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/_R/_RA6cjJaQ9eQDqMy80KMHekWFHahhj9T8el-EC7F71M.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/_R/_RA6cjJaQ9eQDqMy80KMHekWFHahhj9T8el-EC7F71M.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/_i/_iC9ldvdH9eNOe7PeJtaXS7yD5fQOC8zf_OpTVjl_AE.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/_i/_iC9ldvdH9eNOe7PeJtaXS7yD5fQOC8zf_OpTVjl_AE.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ad/adJSEZJVJYhtHvpEUZqbmIR3jIbpRe4-CpRxp9cJ4sQ.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ad/adJSEZJVJYhtHvpEUZqbmIR3jIbpRe4-CpRxp9cJ4sQ.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ch/chv6Lh3x13vaGwSMya5058JeF66EzUA3-AYTkqw2ID4.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ch/chv6Lh3x13vaGwSMya5058JeF66EzUA3-AYTkqw2ID4.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/cx/cxns4PJpMXGGfe7QVjxN9ZHJXvb4iBtp1RKkbJhSCAI.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/cx/cxns4PJpMXGGfe7QVjxN9ZHJXvb4iBtp1RKkbJhSCAI.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/dV/dVfldJyMesrS-VsZrgEUpVXY5i-pS1v83WV1p4vbzUc.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/dV/dVfldJyMesrS-VsZrgEUpVXY5i-pS1v83WV1p4vbzUc.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ds/dszcTK7gUTS0j1ELnWFBpwxAf3TUXXAAWo_1iT9k3uE.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ds/dszcTK7gUTS0j1ELnWFBpwxAf3TUXXAAWo_1iT9k3uE.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/i2/i2QwM0__LPkbJZv1QKyE4AXJXd67kYoUIgVSzCZ_uGc.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/i2/i2QwM0__LPkbJZv1QKyE4AXJXd67kYoUIgVSzCZ_uGc.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/jV/jVKf_Mgq6XreiiFR5_0laLBWaSrXnvvTJx8N0cciPKg.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/jV/jVKf_Mgq6XreiiFR5_0laLBWaSrXnvvTJx8N0cciPKg.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/kS/kSJTqW2HoMSbifyleubBY9Pu50EsVekrBI_hBpVXa3o.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/kS/kSJTqW2HoMSbifyleubBY9Pu50EsVekrBI_hBpVXa3o.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/kT/kTkjdgL0-F8hspo9Jj7h6LQdoCmH3Vdf5od1mf_B6-4.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/kT/kTkjdgL0-F8hspo9Jj7h6LQdoCmH3Vdf5od1mf_B6-4.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/n-/n--7XWSPCnT9DgjJvO70jaqg6KeGw8tEYBtnOXnJris.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/n-/n--7XWSPCnT9DgjJvO70jaqg6KeGw8tEYBtnOXnJris.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/pU/pU8CjjjoDNAEwaH73B9mr9Ls0BulSxPhW8pTKMP5hR4.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/pU/pU8CjjjoDNAEwaH73B9mr9Ls0BulSxPhW8pTKMP5hR4.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ql/ql5KbnHNT6pHDIAt4X0T5edyeCsGtTsghSkJCCO4z9s.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ql/ql5KbnHNT6pHDIAt4X0T5edyeCsGtTsghSkJCCO4z9s.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ra/rapd9mwwhj4fkZGp2svxw5CM0ZpEBauMLqgEbwJcJrQ.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ra/rapd9mwwhj4fkZGp2svxw5CM0ZpEBauMLqgEbwJcJrQ.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/rc/rc8a2psqDvSV_L5rXHV0dULtz0PKp1_GQKicf3JgOMw.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/rc/rc8a2psqDvSV_L5rXHV0dULtz0PKp1_GQKicf3JgOMw.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/sx/sxZXLEzAfDTD9l9L5QsjuJdPCbRZt_qVmtstqM_wO04.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/sx/sxZXLEzAfDTD9l9L5QsjuJdPCbRZt_qVmtstqM_wO04.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/uU/uUoSEcKX2S413t9Tx8TOpXtJIV3CI1fkOqjhEpNJh1o.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/uU/uUoSEcKX2S413t9Tx8TOpXtJIV3CI1fkOqjhEpNJh1o.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/uk/uk5YNd0CvhiIJ88Ofvran7afMKCV00D7BaMwUvyG_Dw.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/uk/uk5YNd0CvhiIJ88Ofvran7afMKCV00D7BaMwUvyG_Dw.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/vQ/vQGPjUQZjagLZ7uNecevwrgjgoyXKulePMIw1xmpWw0.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/vQ/vQGPjUQZjagLZ7uNecevwrgjgoyXKulePMIw1xmpWw0.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/xL/xLQKHLwVVnvdj7oT8LLwv5fgfEFkdCOfOoLjGEZGPGA.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/xL/xLQKHLwVVnvdj7oT8LLwv5fgfEFkdCOfOoLjGEZGPGA.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/y4/y4IesAEmLz_DPEO5YvoG4nyBpFYE0e7OG2245Si0F18.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/y4/y4IesAEmLz_DPEO5YvoG4nyBpFYE0e7OG2245Si0F18.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ys/ysijhNRcEk4Mqznymt8nJahmTMZhDZ-1uidlIoZn7hA.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/cache/assets/sprockets/v3.0/ys/ysijhNRcEk4Mqznymt8nJahmTMZhDZ-1uidlIoZn7hA.cache
--------------------------------------------------------------------------------
/background-processing/ExampleApp/tmp/restart.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/tmp/restart.txt
--------------------------------------------------------------------------------
/background-processing/ExampleApp/vendor/assets/javascripts/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/vendor/assets/javascripts/.keep
--------------------------------------------------------------------------------
/background-processing/ExampleApp/vendor/assets/stylesheets/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/background-processing/ExampleApp/vendor/assets/stylesheets/.keep
--------------------------------------------------------------------------------
/clojurescript/helloworld/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 | /classes
3 | /checkouts
4 | pom.xml
5 | pom.xml.asc
6 | *.jar
7 | *.class
8 | /.lein-*
9 | /.nrepl-port
10 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/README.md:
--------------------------------------------------------------------------------
1 | # helloworld
2 |
3 | A Clojure library designed to ... well, that part is up to you.
4 |
5 | ## Usage
6 |
7 | FIXME
8 |
9 | ## License
10 |
11 | Copyright © 2016 FIXME
12 |
13 | Distributed under the Eclipse Public License either version 1.0 or (at
14 | your option) any later version.
15 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/doc/intro.md:
--------------------------------------------------------------------------------
1 | # Introduction to helloworld
2 |
3 | TODO: write [great documentation](http://jacobian.org/writing/what-to-write/)
4 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/project.clj:
--------------------------------------------------------------------------------
1 | (defproject helloworld "0.1.0-SNAPSHOT"
2 |
3 | :description "FIXME: write description"
4 |
5 | :url "http://example.com/FIXME"
6 |
7 | :license {:name "Eclipse Public License"
8 | :url "http://www.eclipse.org/legal/epl-v10.html"}
9 |
10 | :main helloworld.core
11 |
12 | :cljsbuild {:builds [{:id "dev"
13 | :source-paths ["src"]
14 | :figwheel true
15 | :compiler
16 | {:optimizations :none
17 | :output-to "resources/public/javascripts/dev.js"
18 | :output-dir "resources/public/javascripts/cljs-dev/"
19 | :pretty-print true
20 | :source-map true}}]}
21 |
22 | :plugins [[lein-cljsbuild "1.0.6"]
23 | [lein-figwheel "0.3.7"]]
24 |
25 |
26 | :figwheel {:css-dirs ["resources/public/stylesheets"]}
27 |
28 |
29 | :dependencies [[org.clojure/clojure "1.7.0"]
30 | [org.clojure/clojurescript "0.0-3308"]
31 | [reagent "0.5.0"]
32 | [org.clojure/core.async "0.1.346.0-17112a-alpha"]])
33 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/cljs/core/async/impl/dispatch.cljs:
--------------------------------------------------------------------------------
1 | (ns cljs.core.async.impl.dispatch
2 | (:require [cljs.core.async.impl.buffers :as buffers]
3 | [goog.async.nextTick]))
4 |
5 | (def tasks (buffers/ring-buffer 32))
6 | (def running? false)
7 | (def queued? false)
8 |
9 | (def TASK_BATCH_SIZE 1024)
10 |
11 | (declare queue-dispatcher)
12 |
13 | (defn process-messages []
14 | (set! running? true)
15 | (set! queued? false)
16 | (loop [count 0]
17 | (let [m (.pop tasks)]
18 | (when-not (nil? m)
19 | (m)
20 | (when (< count TASK_BATCH_SIZE)
21 | (recur (inc count))))))
22 | (set! running? false)
23 | (when (> (.-length tasks) 0)
24 | (queue-dispatcher)))
25 |
26 | (defn queue-dispatcher []
27 | (when-not (and queued? running?)
28 | (set! queued? true)
29 | (goog.async.nextTick process-messages)))
30 |
31 | (defn run [f]
32 | (.unbounded-unshift tasks f)
33 | (queue-dispatcher))
34 |
35 | (defn queue-delay [f delay]
36 | (js/setTimeout f delay))
37 |
38 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/cljs/core/async/impl/dispatch.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"\/Users\/AlwaysBCoding\/Desktop\/Always%20Be%20Coding\/clojurescript\/helloworld\/resources\/public\/javascripts\/cljs-dev\/cljs\/core\/async\/impl\/dispatch.js","sources":["dispatch.cljs"],"lineCount":64,"mappings":";AAAA;;;;AAIA,AAAKA,sCAAM,mDAAA,nDAACC;AACZ,+CAAA,\/CAAKC;AACL,8CAAA,9CAAKC;AAEL,gDAAA,hDAAKC;AAEL,AAAA,AAEA,iDAAA,jDAAMC;AAAN,AACE,+CAAA,\/CAAMH;;AACN,8CAAA,9CAAMC;;AACN,kBAAA,dAAOG;;AAAP,AACE,IAAMC,UAAE,AAAMP;AAAd,AACE,GAAU,YAAA,XAAMO;AAAhB;AAAA,AACE,AAACA;;AACD,GAAM,CAAGD,cAAMF;AAAf,AACE,eAAO,eAAA,dAAKE;;;;AADd;;;;;AAEN,+CAAA,\/CAAMJ;;AACN,GAAM,8CAAA,7CAAG,AAAUF;AAAnB,AACE,OAACQ;;AADH;;;AAGF,iDAAA,jDAAMA;AAAN,AACE,oBAAU,iBAAAC,oBAAKN;AAAL,AAAA,oBAAAM;AAAaP;;AAAbO;;;AAAV;;AAAA,AACE,8CAAA,9CAAMN;;AACN,OAACO,oBAAoBL;;;AAEzB,oCAAA,pCAAMM,gFAAKC;AAAX,AACE,AAAoBZ,sDAAMY;;AAC1B,OAACJ;;AAEH,4CAAA,5CAAMK,gGAAaD,EAAEE;AAArB,AACE,OAACC,WAAcH,EAAEE","names":["cljs.core.async.impl.dispatch\/tasks","cljs.core.async.impl.buffers\/ring-buffer","cljs.core.async.impl.dispatch\/running?","cljs.core.async.impl.dispatch\/queued?","cljs.core.async.impl.dispatch\/TASK_BATCH_SIZE","cljs.core.async.impl.dispatch\/process-messages","count","m","cljs.core.async.impl.dispatch\/queue-dispatcher","and__4297__auto__","goog\/async.nextTick","cljs.core.async.impl.dispatch\/run","f","cljs.core.async.impl.dispatch\/queue-delay","delay","js\/setTimeout"]}
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/cljs/core/async/impl/protocols.cljs:
--------------------------------------------------------------------------------
1 | ;; Copyright (c) Rich Hickey and contributors. All rights reserved.
2 | ;; The use and distribution terms for this software are covered by the
3 | ;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
4 | ;; which can be found in the file epl-v10.html at the root of this distribution.
5 | ;; By using this software in any fashion, you are agreeing to be bound by
6 | ;; the terms of this license.
7 | ;; You must not remove this notice, or any other, from this software.
8 |
9 | (ns cljs.core.async.impl.protocols)
10 |
11 | (def ^:const MAX-QUEUE-SIZE 1024)
12 |
13 | (defprotocol ReadPort
14 | (take! [port fn1-handler] "derefable val if taken, nil if take was enqueued"))
15 |
16 | (defprotocol WritePort
17 | (put! [port val fn1-handler] "derefable boolean (false if already closed) if handled, nil if put was enqueued.
18 | Must throw on nil val."))
19 |
20 | (defprotocol Channel
21 | (close! [chan])
22 | (closed? [chan]))
23 |
24 | (defprotocol Handler
25 | (active? [h] "returns true if has callback. Must work w/o lock")
26 | #_(lock-id [h] "a unique id for lock acquisition order, 0 if no lock")
27 | (commit [h] "commit to fulfilling its end of the transfer, returns cb. Must be called within lock"))
28 |
29 | (defprotocol Buffer
30 | (full? [b])
31 | (remove! [b])
32 | (add!* [b itm]))
33 |
34 | (defn add!
35 | ([b] b)
36 | ([b itm]
37 | (assert (not (nil? itm)))
38 | (add!* b itm)))
39 |
40 | ;; Defines a buffer that will never block (return true to full?)
41 | (defprotocol UnblockingBuffer)
42 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/cljs/repl.cljs:
--------------------------------------------------------------------------------
1 | ;; Copyright (c) Rich Hickey. All rights reserved.
2 | ;; The use and distribution terms for this software are covered by the
3 | ;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
4 | ;; which can be found in the file epl-v10.html at the root of this distribution.
5 | ;; By using this software in any fashion, you are agreeing to be bound by
6 | ;; the terms of this license.
7 | ;; You must not remove this notice, or any other, from this software.
8 |
9 | (ns cljs.repl
10 | (:require-macros cljs.repl))
11 |
12 | (defn print-doc [m]
13 | (println "-------------------------")
14 | (println (str (when-let [ns (:ns m)] (str ns "/")) (:name m)))
15 | (when (:protocol m)
16 | (println "Protocol"))
17 | (cond
18 | (:forms m) (doseq [f (:forms m)]
19 | (println " " f))
20 | (:arglists m) (let [arglists (:arglists m)]
21 | (if (or (:macro m)
22 | (:repl-special-function m))
23 | (prn arglists)
24 | (prn
25 | (if (= 'quote (first arglists))
26 | (second arglists)
27 | arglists)))))
28 | (if (:special-form m)
29 | (do
30 | (println "Special Form")
31 | (println " " (:doc m))
32 | (if (contains? m :url)
33 | (when (:url m)
34 | (println (str "\n Please see http://clojure.org/" (:url m))))
35 | (println (str "\n Please see http://clojure.org/special_forms#"
36 | (:name m)))))
37 | (do
38 | (when (:macro m)
39 | (println "Macro"))
40 | (when (:repl-special-function m)
41 | (println "REPL Special Function"))
42 | (println " " (:doc m))
43 | (when (:protocol m)
44 | (doseq [[name {:keys [doc arglists]}] (:methods m)]
45 | (println)
46 | (println " " name)
47 | (println " " arglists)
48 | (when doc
49 | (println " " doc)))))))
50 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/cljs/repl.cljs.cache.edn:
--------------------------------------------------------------------------------
1 | ;; Analyzed by ClojureScript 0.0-3308
2 | {:use-macros nil, :excludes #{}, :name cljs.repl, :imports nil, :requires nil, :uses nil, :defs {print-doc {:protocol-inline nil, :meta {:file "/Users/AlwaysBCoding/Desktop/Always Be Coding/clojurescript/helloworld/resources/public/javascripts/cljs-dev/cljs/repl.cljs", :line 12, :column 7, :end-line 12, :end-column 16, :arglists (quote ([m]))}, :name cljs.repl/print-doc, :variadic false, :file "resources/public/javascripts/cljs-dev/cljs/repl.cljs", :end-column 16, :method-params ([m]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 12, :end-line 12, :max-fixed-arity 1, :fn-var true, :arglists (quote ([m]))}}, :require-macros {cljs.repl cljs.repl}, :cljs.analyzer/constants {:seen #{:protocol :ns :name :special-form :repl-special-function :methods :macro :url :arglists :doc :forms}, :order [:ns :name :protocol :forms :arglists :macro :repl-special-function :special-form :doc :url :methods]}, :doc nil}
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/figwheel/client/utils.cljs:
--------------------------------------------------------------------------------
1 | (ns ^:figwheel-no-load figwheel.client.utils
2 | (:require [clojure.string :as string])
3 | (:import [goog]))
4 |
5 | ;; don't auto reload this file it will mess up the debug printing
6 |
7 | (def ^:dynamic *print-debug* false)
8 |
9 | (defn html-env? [] (goog/inHtmlDocument_))
10 |
11 | (defn node-env? [] (not (nil? goog/nodeGlobalRequire)))
12 |
13 | (defn base-url-path [] (string/replace goog/basePath #"(.*)goog/" #(str %2)))
14 |
15 | (defn host-env? []
16 | (cond
17 | (node-env?) :node
18 | :else :html))
19 |
20 | (defn dispatch-custom-event [event-name data]
21 | (when (and (html-env?) (aget js/window "CustomEvent"))
22 | (.dispatchEvent (.-body js/document)
23 | (js/CustomEvent. event-name
24 | (js-obj "detail" data)))))
25 |
26 | (defn debug-prn [o]
27 | (when *print-debug*
28 | (let [o (if (or (map? o)
29 | (seq? o))
30 | (prn-str o)
31 | o)]
32 | (.log js/console o))))
33 |
34 | (defn log
35 | ([x] (log :info x))
36 | ([level arg]
37 | (let [f (condp = (if (html-env?) level :info)
38 | :warn #(.warn js/console %)
39 | :debug #(.debug js/console %)
40 | :error #(.error js/console %)
41 | #(.log js/console %))]
42 | (f arg))))
43 |
44 | (defn eval-helper [code {:keys [eval-fn] :as opts}]
45 | (if eval-fn
46 | (eval-fn code opts)
47 | (js* "eval(~{code})")))
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/figwheel/connect.cljs:
--------------------------------------------------------------------------------
1 | (ns figwheel.connect (:require [figwheel.client] [figwheel.client.utils]))
2 | (figwheel.client/start {:build-id "dev", :websocket-url "ws://localhost:3449/figwheel-ws"})
3 |
4 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/figwheel/connect.cljs.cache.edn:
--------------------------------------------------------------------------------
1 | ;; Analyzed by ClojureScript 0.0-3308
2 | {:name figwheel.connect, :doc nil, :excludes #{}, :use-macros nil, :require-macros nil, :uses nil, :requires {figwheel.client figwheel.client, figwheel.client.utils figwheel.client.utils}, :imports nil, :cljs.analyzer/constants {:seen #{:build-id :websocket-url}, :order [:build-id :websocket-url]}}
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/figwheel/connect.js:
--------------------------------------------------------------------------------
1 | // Compiled by ClojureScript 0.0-3308 {}
2 | goog.provide('figwheel.connect');
3 | goog.require('cljs.core');
4 | goog.require('figwheel.client');
5 | goog.require('figwheel.client.utils');
6 | figwheel.client.start.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"build-id","build-id",1642831089),"dev",new cljs.core.Keyword(null,"websocket-url","websocket-url",-490444938),"ws://localhost:3449/figwheel-ws"], null));
7 |
8 | //# sourceMappingURL=connect.js.map
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/figwheel/connect.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"\/Users\/AlwaysBCoding\/Desktop\/Always%20Be%20Coding\/clojurescript\/helloworld\/resources\/public\/javascripts\/cljs-dev\/figwheel\/connect.js","sources":["connect.cljs"],"lineCount":8,"mappings":";AAAA;;;;AACA,gCAAA,2CAAA,6DAAA,MAAA,uEAAA,rNAACA","names":["figwheel.client\/start"]}
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/goog/dom/nodetype.js:
--------------------------------------------------------------------------------
1 | // Copyright 2006 The Closure Library Authors. All Rights Reserved.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS-IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | /**
16 | * @fileoverview Definition of goog.dom.NodeType.
17 | */
18 |
19 | goog.provide('goog.dom.NodeType');
20 |
21 |
22 | /**
23 | * Constants for the nodeType attribute in the Node interface.
24 | *
25 | * These constants match those specified in the Node interface. These are
26 | * usually present on the Node object in recent browsers, but not in older
27 | * browsers (specifically, early IEs) and thus are given here.
28 | *
29 | * In some browsers (early IEs), these are not defined on the Node object,
30 | * so they are provided here.
31 | *
32 | * See http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1950641247
33 | * @enum {number}
34 | */
35 | goog.dom.NodeType = {
36 | ELEMENT: 1,
37 | ATTRIBUTE: 2,
38 | TEXT: 3,
39 | CDATA_SECTION: 4,
40 | ENTITY_REFERENCE: 5,
41 | ENTITY: 6,
42 | PROCESSING_INSTRUCTION: 7,
43 | COMMENT: 8,
44 | DOCUMENT: 9,
45 | DOCUMENT_TYPE: 10,
46 | DOCUMENT_FRAGMENT: 11,
47 | NOTATION: 12
48 | };
49 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/goog/dom/tags.js:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Closure Library Authors. All Rights Reserved.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS-IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | /**
16 | * @fileoverview Utilities for HTML element tag names.
17 | */
18 | goog.provide('goog.dom.tags');
19 |
20 | goog.require('goog.object');
21 |
22 |
23 | /**
24 | * The void elements specified by
25 | * http://www.w3.org/TR/html-markup/syntax.html#void-elements.
26 | * @const
27 | * @type {!Object}
28 | * @private
29 | */
30 | goog.dom.tags.VOID_TAGS_ = goog.object.createSet(('area,base,br,col,command,' +
31 | 'embed,hr,img,input,keygen,link,meta,param,source,track,wbr').split(','));
32 |
33 |
34 | /**
35 | * Checks whether the tag is void (with no contents allowed and no legal end
36 | * tag), for example 'br'.
37 | * @param {string} tagName The tag name in lower case.
38 | * @return {boolean}
39 | */
40 | goog.dom.tags.isVoidTag = function(tagName) {
41 | return goog.dom.tags.VOID_TAGS_[tagName] === true;
42 | };
43 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/goog/promise/resolver.js:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Closure Library Authors. All Rights Reserved.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS-IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | goog.provide('goog.promise.Resolver');
16 |
17 |
18 |
19 | /**
20 | * Resolver interface for promises. The resolver is a convenience interface that
21 | * bundles the promise and its associated resolve and reject functions together,
22 | * for cases where the resolver needs to be persisted internally.
23 | *
24 | * @interface
25 | * @template TYPE
26 | */
27 | goog.promise.Resolver = function() {};
28 |
29 |
30 | /**
31 | * The promise that created this resolver.
32 | * @type {!goog.Promise}
33 | */
34 | goog.promise.Resolver.prototype.promise;
35 |
36 |
37 | /**
38 | * Resolves this resolver with the specified value.
39 | * @type {function((TYPE|goog.Promise|Thenable)=)}
40 | */
41 | goog.promise.Resolver.prototype.resolve;
42 |
43 |
44 | /**
45 | * Rejects this resolver with the specified reason.
46 | * @type {function(*=): void}
47 | */
48 | goog.promise.Resolver.prototype.reject;
49 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/goog/string/typedstring.js:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Closure Library Authors. All Rights Reserved.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS-IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | goog.provide('goog.string.TypedString');
16 |
17 |
18 |
19 | /**
20 | * Wrapper for strings that conform to a data type or language.
21 | *
22 | * Implementations of this interface are wrappers for strings, and typically
23 | * associate a type contract with the wrapped string. Concrete implementations
24 | * of this interface may choose to implement additional run-time type checking,
25 | * see for example {@code goog.html.SafeHtml}. If available, client code that
26 | * needs to ensure type membership of an object should use the type's function
27 | * to assert type membership, such as {@code goog.html.SafeHtml.unwrap}.
28 | * @interface
29 | */
30 | goog.string.TypedString = function() {};
31 |
32 |
33 | /**
34 | * Interface marker of the TypedString interface.
35 | *
36 | * This property can be used to determine at runtime whether or not an object
37 | * implements this interface. All implementations of this interface set this
38 | * property to {@code true}.
39 | * @type {boolean}
40 | */
41 | goog.string.TypedString.prototype.implementsGoogStringTypedString;
42 |
43 |
44 | /**
45 | * Retrieves this wrapped string's value.
46 | * @return {!string} The wrapped string's value.
47 | */
48 | goog.string.TypedString.prototype.getTypedStringValue;
49 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/goog/testing/watchers.js:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Closure Library Authors. All Rights Reserved.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS-IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | /**
16 | * @fileoverview Simple notifiers for the Closure testing framework.
17 | *
18 | * @author johnlenz@google.com (John Lenz)
19 | */
20 |
21 | goog.provide('goog.testing.watchers');
22 |
23 |
24 | /** @private {!Array} */
25 | goog.testing.watchers.resetWatchers_ = [];
26 |
27 |
28 | /**
29 | * Fires clock reset watching functions.
30 | */
31 | goog.testing.watchers.signalClockReset = function() {
32 | var watchers = goog.testing.watchers.resetWatchers_;
33 | for (var i = 0; i < watchers.length; i++) {
34 | goog.testing.watchers.resetWatchers_[i]();
35 | }
36 | };
37 |
38 |
39 | /**
40 | * Enqueues a function to be called when the clock used for setTimeout is reset.
41 | * @param {function()} fn
42 | */
43 | goog.testing.watchers.watchClockReset = function(fn) {
44 | goog.testing.watchers.resetWatchers_.push(fn);
45 | };
46 |
47 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/helloworld/core.cljc:
--------------------------------------------------------------------------------
1 | (ns helloworld.core
2 | #?(:cljs (:require [reagent.core :as reagent])))
3 |
4 | (defn multiply-numbers [x y]
5 | (* x x))
6 |
7 | (defn say-hello []
8 | #?(:cljs (js/console.log js/React)))
9 |
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/helloworld/core.cljc.cache.edn:
--------------------------------------------------------------------------------
1 | ;; Analyzed by ClojureScript 0.0-3308
2 | {:name helloworld.core, :doc nil, :excludes #{}, :use-macros nil, :require-macros nil, :uses nil, :requires {reagent reagent.core, reagent.core reagent.core}, :imports nil, :defs {multiply-numbers {:protocol-inline nil, :meta {:file "/Users/AlwaysBCoding/Desktop/Always Be Coding/clojurescript/helloworld/src/helloworld/core.cljc", :line 4, :column 7, :end-line 4, :end-column 23, :arglists (quote ([x y]))}, :name helloworld.core/multiply-numbers, :variadic false, :file "src/helloworld/core.cljc", :end-column 23, :method-params ([x y]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 4, :end-line 4, :max-fixed-arity 2, :fn-var true, :arglists (quote ([x y]))}, say-hello {:protocol-inline nil, :meta {:file "/Users/AlwaysBCoding/Desktop/Always Be Coding/clojurescript/helloworld/src/helloworld/core.cljc", :line 7, :column 7, :end-line 7, :end-column 16, :arglists (quote ([]))}, :name helloworld.core/say-hello, :variadic false, :file "src/helloworld/core.cljc", :end-column 16, :method-params ([]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 7, :end-line 7, :max-fixed-arity 0, :fn-var true, :arglists (quote ([]))}}}
--------------------------------------------------------------------------------
/clojurescript/helloworld/resources/public/javascripts/cljs-dev/helloworld/core.cljs:
--------------------------------------------------------------------------------
1 | (ns helloworld.core
2 | (:require-macros [cljs.core.async.macros :refer (go)])
3 | (:require [reagent.core :as reagent]
4 | [helloworld.title :refer (items-list)]
5 | [cljs.core.async :refer (chan put! Hello Docker HTML, nginx UPDATED!
2 |
--------------------------------------------------------------------------------
/docker/notes:
--------------------------------------------------------------------------------
1 | 1. make a Dockerfile
2 | 2. build a container from the Dockerfile
3 | 3. run the newly built container to test locally
4 | 4. push that container to Docker Hub
5 |
6 | NEXT:
7 | 5. setup ECS on Amazon (ECS = Elastic Container Service)
8 |
9 |
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle.zip
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/argparse-1.2.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/argparse-1.2.1.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/awscli-1.10.12.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/awscli-1.10.12.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/botocore-1.4.3.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/botocore-1.4.3.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/colorama-0.3.3.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/colorama-0.3.3.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/docutils-0.12.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/docutils-0.12.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/futures-3.0.5.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/futures-3.0.5.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/jmespath-0.9.0.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/jmespath-0.9.0.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/ordereddict-1.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/ordereddict-1.1.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/pyasn1-0.1.9.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/pyasn1-0.1.9.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/python-dateutil-2.5.0.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/python-dateutil-2.5.0.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/rsa-3.3.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/rsa-3.3.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/s3transfer-0.0.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/s3transfer-0.0.1.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/simplejson-3.3.0.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/simplejson-3.3.0.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/six-1.10.0.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/six-1.10.0.tar.gz
--------------------------------------------------------------------------------
/docker/tmp/awscli-bundle/packages/virtualenv-13.0.3.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/docker/tmp/awscli-bundle/packages/virtualenv-13.0.3.tar.gz
--------------------------------------------------------------------------------
/react-part-2/simple/.sass-cache/9c37f3ad21fa5a015e111d5ea5db45ef93c694ba/app.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/react-part-2/simple/.sass-cache/9c37f3ad21fa5a015e111d5ea5db45ef93c694ba/app.scssc
--------------------------------------------------------------------------------
/react-part-2/simple/Procfile:
--------------------------------------------------------------------------------
1 | web: node index.js
2 |
--------------------------------------------------------------------------------
/react-part-2/simple/app/build/asset-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "main.css": "static/css/main.9a0fe4f1.css",
3 | "main.css.map": "static/css/main.9a0fe4f1.css.map",
4 | "main.js": "static/js/main.5cf84b5c.js",
5 | "main.js.map": "static/js/main.5cf84b5c.js.map",
6 | "static/media/logo.svg": "static/media/logo.5d5d9eef.svg"
7 | }
--------------------------------------------------------------------------------
/react-part-2/simple/app/build/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/react-part-2/simple/app/build/favicon.ico
--------------------------------------------------------------------------------
/react-part-2/simple/app/build/index.html:
--------------------------------------------------------------------------------
1 | React App
2 |
--------------------------------------------------------------------------------
/react-part-2/simple/app/build/static/css/main.9a0fe4f1.css:
--------------------------------------------------------------------------------
1 | .App{text-align:center}.App-logo{-webkit-animation:App-logo-spin infinite 20s linear;animation:App-logo-spin infinite 20s linear;height:80px}.App-header{background-color:#222;height:150px;padding:20px;color:#fff}.App-intro{font-size:large}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}body{margin:0;padding:0;font-family:sans-serif}
2 | /*# sourceMappingURL=main.9a0fe4f1.css.map*/
--------------------------------------------------------------------------------
/react-part-2/simple/app/build/static/css/main.9a0fe4f1.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"static/css/main.9a0fe4f1.css","sourceRoot":""}
--------------------------------------------------------------------------------
/react-part-2/simple/build/asset-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "main.css": "static/css/main.9a0fe4f1.css",
3 | "main.css.map": "static/css/main.9a0fe4f1.css.map",
4 | "main.js": "static/js/main.5cf84b5c.js",
5 | "main.js.map": "static/js/main.5cf84b5c.js.map",
6 | "static/media/logo.svg": "static/media/logo.5d5d9eef.svg"
7 | }
--------------------------------------------------------------------------------
/react-part-2/simple/build/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/react-part-2/simple/build/favicon.ico
--------------------------------------------------------------------------------
/react-part-2/simple/build/index.html:
--------------------------------------------------------------------------------
1 | React App
--------------------------------------------------------------------------------
/react-part-2/simple/build/static/css/main.9a0fe4f1.css:
--------------------------------------------------------------------------------
1 | .App{text-align:center}.App-logo{-webkit-animation:App-logo-spin infinite 20s linear;animation:App-logo-spin infinite 20s linear;height:80px}.App-header{background-color:#222;height:150px;padding:20px;color:#fff}.App-intro{font-size:large}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}body{margin:0;padding:0;font-family:sans-serif}
2 | /*# sourceMappingURL=main.9a0fe4f1.css.map*/
--------------------------------------------------------------------------------
/react-part-2/simple/build/static/css/main.9a0fe4f1.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"static/css/main.9a0fe4f1.css","sourceRoot":""}
--------------------------------------------------------------------------------
/react-part-2/simple/index.js:
--------------------------------------------------------------------------------
1 | var express = require('express')
2 | var app = express()
3 |
4 | app.set('port', (process.env.PORT || 3000))
5 |
6 | app.use(express.static(__dirname + '/build'))
7 |
8 | app.get('*', function(request, response) {
9 | response.sendFile(__dirname + '/build/index.html')
10 | })
11 |
12 | app.listen(app.get('port'), function() {
13 | console.log("Express server started on port", app.get('port'))
14 | })
15 |
--------------------------------------------------------------------------------
/react-part-2/simple/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "simple",
3 | "version": "0.0.1",
4 | "private": true,
5 | "devDependencies": {
6 | "react-scripts": "0.9.5"
7 | },
8 | "dependencies": {
9 | "events": "^1.1.1",
10 | "express": "^4.15.2",
11 | "history": "^2.0.1",
12 | "lodash": "^4.17.4",
13 | "q": "^1.5.0",
14 | "react": "^15.5.3",
15 | "react-dom": "^15.5.3",
16 | "react-router": "^2.0.0"
17 | },
18 | "scripts": {
19 | "start": "react-scripts start",
20 | "build": "react-scripts build",
21 | "test": "react-scripts test --env=jsdom",
22 | "eject": "react-scripts eject"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/react-part-2/simple/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/react-part-2/simple/public/favicon.ico
--------------------------------------------------------------------------------
/react-part-2/simple/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
16 | React App
17 |
18 |
19 |
20 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 |
6 | # testing
7 | /coverage
8 |
9 | # production
10 |
11 | # misc
12 | .DS_Store
13 | .env
14 | npm-debug.log*
15 | yarn-debug.log*
16 | yarn-error.log*
17 |
18 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/components/Nav.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import { Link } from 'react-router'
3 |
4 | class Nav extends Component {
5 |
6 | constructor(props) {
7 | super(props)
8 | this.state = {
9 |
10 | }
11 | }
12 |
13 | render() {
14 | return (
15 |
16 |
18 | Screen1
19 |
20 |
22 | Screen2
23 |
24 |
26 | Screen3
27 |
28 |
29 | )
30 | }
31 |
32 | }
33 |
34 | module.exports = Nav
35 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/index.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import ReactDOM from 'react-dom';
3 | import { Router, Route, IndexRoute, browserHistory, Link } from 'react-router'
4 | import Nav from './components/Nav'
5 | import { EventEmitter } from 'events'
6 | import Screen1 from './screens/Screen1'
7 | import Screen2 from './screens/Screen2'
8 | import Screen3 from './screens/Screen3'
9 | import './styles/app.css';
10 |
11 | class App extends Component {
12 |
13 | constructor(props) {
14 | super(props)
15 | this.state = {
16 | screenIndex: 1
17 | }
18 | }
19 |
20 | componentWillMount() {
21 | this.eventEmitter = new EventEmitter()
22 |
23 | this.eventEmitter.addListener("navigateScreen", ({screenIndex}) => {
24 | this.updateScreen({newScreenIndex: screenIndex})
25 | })
26 | }
27 |
28 | updateScreen({newScreenIndex}) {
29 | this.setState({screenIndex: newScreenIndex})
30 | }
31 |
32 | render() {
33 | return (
34 |
35 |
36 |
37 |
40 |
41 | {React.cloneElement(this.props.children, {
42 | eventEmitter: this.eventEmitter
43 | })}
44 |
45 |
46 |
47 |
48 | )
49 | }
50 |
51 | }
52 |
53 | ReactDOM.render(
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | ,
62 | document.getElementById('root')
63 | );
64 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/screens/Screen1.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 |
3 | class Screen1 extends Component {
4 |
5 | componentWillMount() {
6 | this.props.eventEmitter.emit("navigateScreen", {screenIndex: 1})
7 | }
8 |
9 | render() {
10 | return (
11 |
12 |
SCREEN 1 DATA
13 |
14 | )
15 | }
16 |
17 | }
18 |
19 | module.exports = Screen1
20 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/screens/Screen2.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 | import EtherService from '../services/EtherService'
3 | import _ from 'lodash'
4 |
5 | class Screen2 extends Component {
6 |
7 | constructor(props) {
8 | super(props)
9 | this.state = {
10 | etherPrices: []
11 | }
12 | }
13 |
14 | componentWillMount() {
15 | this.props.eventEmitter.emit("navigateScreen", {screenIndex: 2})
16 |
17 | EtherService.getEtherPrice()
18 | .then((data) => {
19 | this.setState({etherPrices: data})
20 | })
21 | }
22 |
23 | render() {
24 | var TableRows = []
25 |
26 | _.each(this.state.etherPrices, (etherPrice) => {
27 | TableRows.push(
28 |
29 | {etherPrice.day}
30 | {etherPrice.price}
31 |
32 | )
33 | })
34 |
35 | return (
36 |
37 |
SCREEN 2 DATA
38 |
39 |
40 |
41 | Day
42 | Price
43 |
44 |
45 |
46 | {TableRows}
47 |
48 |
49 |
50 | )
51 | }
52 |
53 | }
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | module.exports = Screen2
62 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/screens/Screen3.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react'
2 |
3 | class Screen3 extends Component {
4 |
5 | componentWillMount() {
6 | this.props.eventEmitter.emit("navigateScreen", {screenIndex: 3})
7 | }
8 |
9 | render() {
10 | return (
11 |
12 |
SCREEN 3 DATA
13 |
14 | )
15 | }
16 |
17 | }
18 |
19 | module.exports = Screen3
20 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/services/EtherService.js:
--------------------------------------------------------------------------------
1 | import Q from 'q'
2 |
3 | class EtherService {
4 |
5 | getEtherPrice() {
6 | var deferred = Q.defer()
7 |
8 | setTimeout(() => {
9 | deferred.resolve([
10 | {day: "April 1", price: 40},
11 | {day: "April 2", price: 41},
12 | {day: "April 3", price: 42},
13 | ])
14 | }, 3000)
15 |
16 | return deferred.promise
17 | }
18 |
19 | }
20 |
21 | module.exports = new EtherService()
22 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/styles/app.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0; }
4 |
5 | .app-header {
6 | height: 60px;
7 | background-color: black;
8 | width: 100%; }
9 |
10 | .app-wrapper {
11 | display: flex;
12 | flex-direction: row;
13 | justify-content: flex-start;
14 | align-items: stretch;
15 | min-height: 1000px;
16 | height: 100%; }
17 | .app-wrapper .app-nav {
18 | width: 100px;
19 | background-color: blue;
20 | display: flex;
21 | flex-direction: column;
22 | justify-content: flex-start;
23 | align-items: stretch; }
24 | .app-wrapper .app-nav .nav-item {
25 | height: 60px;
26 | background-color: coral;
27 | cursor: pointer;
28 | display: flex;
29 | flex-direction: column;
30 | justify-content: center;
31 | align-items: center; }
32 | .app-wrapper .app-nav .nav-item.active-nav {
33 | background-color: red; }
34 | .app-wrapper .app-nav .nav-item:hover {
35 | background-color: yellow; }
36 | .app-wrapper .main-content {
37 | flex: 1;
38 | background-color: gray; }
39 | .app-wrapper .main-content .screen {
40 | margin: 10px; }
41 |
42 | /*# sourceMappingURL=app.css.map */
43 |
--------------------------------------------------------------------------------
/react-part-2/simple/src/styles/app.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "AAAA,IAAK;EACH,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;AAGZ,WAAY;EACV,MAAM,EAAE,IAAI;EACZ,gBAAgB,EAAE,KAAK;EACvB,KAAK,EAAE,IAAI;;AAGb,YAAa;EACX,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,eAAe,EAAE,UAAU;EAC3B,WAAW,EAAE,OAAO;EACpB,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,IAAI;EAEZ,qBAAS;IACP,KAAK,EAAE,KAAK;IACZ,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,UAAU;IAC3B,WAAW,EAAE,OAAO;IAEpB,+BAAU;MACR,MAAM,EAAE,IAAI;MACZ,gBAAgB,EAAE,KAAK;MACvB,MAAM,EAAE,OAAO;MACf,OAAO,EAAE,IAAI;MACb,cAAc,EAAE,MAAM;MACtB,eAAe,EAAE,MAAM;MACvB,WAAW,EAAE,MAAM;MAEnB,0CAAa;QACX,gBAAgB,EAAE,GAAG;MAGvB,qCAAQ;QACN,gBAAgB,EAAE,MAAM;EAO9B,0BAAc;IACZ,IAAI,EAAE,CAAC;IACP,gBAAgB,EAAE,IAAI;IAEtB,kCAAQ;MACN,MAAM,EAAE,IAAI",
4 | "sources": ["app.scss"],
5 | "names": [],
6 | "file": "app.css"
7 | }
--------------------------------------------------------------------------------
/react-part-2/simple/src/styles/app.scss:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
6 | .app-header {
7 | height: 60px;
8 | background-color: black;
9 | width: 100%;
10 | }
11 |
12 | .app-wrapper {
13 | display: flex;
14 | flex-direction: row;
15 | justify-content: flex-start;
16 | align-items: stretch;
17 | min-height: 1000px;
18 | height: 100%;
19 |
20 | .app-nav {
21 | width: 100px;
22 | background-color: blue;
23 | display: flex;
24 | flex-direction: column;
25 | justify-content: flex-start;
26 | align-items: stretch;
27 |
28 | .nav-item {
29 | height: 60px;
30 | background-color: coral;
31 | cursor: pointer;
32 | display: flex;
33 | flex-direction: column;
34 | justify-content: center;
35 | align-items: center;
36 |
37 | &.active-nav {
38 | background-color: red;
39 | }
40 |
41 | &:hover {
42 | background-color: yellow;
43 | }
44 |
45 | }
46 |
47 | }
48 |
49 | .main-content {
50 | flex: 1;
51 | background-color: gray;
52 |
53 | .screen {
54 | margin: 10px;
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/simplereact/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | node_modules
5 |
6 | # testing
7 | coverage
8 |
9 | # production
10 | build
11 |
12 | # misc
13 | .DS_Store
14 | npm-debug.log
15 |
--------------------------------------------------------------------------------
/simplereact/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | React App
8 |
9 |
10 |
11 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/simplereact/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "simplereact",
3 | "version": "0.0.1",
4 | "private": true,
5 | "devDependencies": {
6 | "react-scripts": "0.4.1"
7 | },
8 | "dependencies": {
9 | "react": "^15.3.1",
10 | "react-dom": "^15.3.1"
11 | },
12 | "scripts": {
13 | "start": "react-scripts start",
14 | "build": "react-scripts build",
15 | "test": "react-scripts test --env=jsdom",
16 | "eject": "react-scripts eject"
17 | },
18 | "eslintConfig": {
19 | "extends": "./node_modules/react-scripts/config/eslint.js"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/simplereact/src/App.css:
--------------------------------------------------------------------------------
1 | .App {
2 | text-align: center;
3 | }
4 |
5 | .App-logo {
6 | animation: App-logo-spin infinite 20s linear;
7 | height: 80px;
8 | }
9 |
10 | .App-header {
11 | background-color: #222;
12 | height: 150px;
13 | padding: 20px;
14 | color: white;
15 | }
16 |
17 | .App-intro {
18 | font-size: large;
19 | }
20 |
21 | @keyframes App-logo-spin {
22 | from { transform: rotate(0deg); }
23 | to { transform: rotate(360deg); }
24 | }
25 |
26 | .board {
27 | display: flex;
28 | width: 600px;
29 | height: 600px;
30 | flex-direction: row;
31 | flex-wrap: wrap;
32 | justify-content: flex-start;
33 | }
34 |
35 | .square {
36 | height: 200px;
37 | width: 200px;
38 | box-sizing: border-box;
39 | border: 5px solid black;
40 | font-size: 5em;
41 | display: flex;
42 | justify-content: center;
43 | align-items: center;
44 | }
45 |
46 | .square:hover {
47 | cursor: pointer;
48 | background-color: #80cd92;
49 | }
50 |
--------------------------------------------------------------------------------
/simplereact/src/App.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import './App.css';
3 |
4 | class App extends Component {
5 |
6 | constructor(props) {
7 | super(props)
8 | this.state = {
9 | PLAYER_ONE_SYMBOL: "X",
10 | PLAYER_TWO_SYMBOL: "O",
11 | currentTurn: "X",
12 | board: [
13 | "", "", "", "", "", "", "", "", ""
14 | ],
15 | winner: null,
16 | }
17 | }
18 |
19 | handleClick(index) {
20 | if(this.state.board[index] === "" && !this.state.winner) {
21 | this.state.board[index] = this.state.currentTurn
22 | this.setState({
23 | board: this.state.board,
24 | currentTurn: this.state.currentTurn === this.state.PLAYER_ONE_SYMBOL ? this.state.PLAYER_TWO_SYMBOL : this.state.PLAYER_ONE_SYMBOL,
25 | winner: this.checkForWinner(),
26 | })
27 | }
28 | }
29 |
30 | checkForWinner() {
31 | var currentTurn = this.state.currentTurn
32 | var symbols = this.state.board
33 | var winningCombos = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6]]
34 | return winningCombos.find(function(combo) {
35 | if(symbols[combo[0]] !== "" && symbols[combo[1]] !== "" && symbols[combo[2]] !== "" && symbols[combo[0]] === symbols[combo[1]] && symbols[combo[1]] === symbols[combo[2]]) {
36 | return currentTurn
37 | } else {
38 | return false
39 | }
40 | })
41 | }
42 |
43 | render() {
44 | return (
45 |
46 | {this.state.winner ?
{`The winner is ${this.state.winner}`} : null}
47 |
48 | {this.state.board.map((cell, index) => {
49 | return
this.handleClick(index)} className="square">{cell}
;
50 | })}
51 |
52 |
53 | )
54 | }
55 | }
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | export default App;
73 |
--------------------------------------------------------------------------------
/simplereact/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render( , div);
8 | });
9 |
--------------------------------------------------------------------------------
/simplereact/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlwaysBCoding/Episodes/4e521fd4566b3584d054febe28c4b083f900ba13/simplereact/src/favicon.ico
--------------------------------------------------------------------------------
/simplereact/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: sans-serif;
5 | }
6 |
--------------------------------------------------------------------------------
/simplereact/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 | import './index.css';
5 |
6 | ReactDOM.render(
7 | ,
8 | document.getElementById('root')
9 | );
10 |
--------------------------------------------------------------------------------
/twitch-bot/bot.rb:
--------------------------------------------------------------------------------
1 | require 'socket'
2 |
3 | TWITCH_HOST = "irc.twitch.tv"
4 | TWITCH_PORT = 6667
5 |
6 | class TwitchBot
7 |
8 | def initialize
9 | @nickname = "AlwaysBotCoding"
10 | @password = "oauth:jatx00edq9zqsqqk2nyfm53xrfawz2"
11 | @channel = "alwaysbcoding"
12 | @socket = TCPSocket.open(TWITCH_HOST, TWITCH_PORT)
13 |
14 | write_to_system "PASS #{@password}"
15 | write_to_system "NICK #{@nickname}"
16 | write_to_system "USER #{@nickname} 0 * #{@nickname}"
17 | write_to_system "JOIN ##{@channel}"
18 | end
19 |
20 | def write_to_system(message)
21 | @socket.puts message
22 | end
23 |
24 | def write_to_chat(message)
25 | write_to_system "PRIVMSG ##{@channel} :#{message}"
26 | end
27 |
28 | def run
29 | until @socket.eof? do
30 | message = @socket.gets
31 | puts message
32 |
33 | if message.match(/^PING :(.*)$/)
34 | write_to_system "PONG #{$~[1]}"
35 | next
36 | end
37 |
38 | if message.match(/PRIVMSG ##{@channel} :(.*)$/)
39 | content = $~[1]
40 | username = message.match(/@(.*).tmi.twitch.tv/)[1]
41 |
42 | # if content.include? "coffee"
43 | # write_to_chat("PUT THAT COFFEE DOWN!!")
44 | # end
45 |
46 | command = <<-OSASCRIPT
47 | osascript -e 'display notification "#{content}" with title "#{username}"'
48 | OSASCRIPT
49 |
50 | system(command)
51 | end
52 | end
53 | end
54 |
55 | def quit
56 | write_to_chat "AlwaysBotCoding is out"
57 | write_to_system "PART ##{@channel}"
58 | write_to_system "QUIT"
59 | end
60 |
61 | end
62 |
63 | bot = TwitchBot.new
64 | trap("INT") { bot.quit }
65 | bot.run
66 |
--------------------------------------------------------------------------------
/webpack-redux/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "react"]
3 | }
4 |
--------------------------------------------------------------------------------
/webpack-redux/.floo:
--------------------------------------------------------------------------------
1 | {
2 | "url": "https://floobits.com/AlwaysBCoding/webpack-redux"
3 | }
--------------------------------------------------------------------------------
/webpack-redux/.flooignore:
--------------------------------------------------------------------------------
1 | #*
2 | *.o
3 | *.pyc
4 | *~
5 | extern/
6 | node_modules/
7 | tmp
8 | vendor/
--------------------------------------------------------------------------------
/webpack-redux/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/webpack-redux/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "webpack-redux",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "build": "webpack -w"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "classnames": "^2.2.3",
13 | "react": "^0.14.7",
14 | "react-dom": "^0.14.7",
15 | "react-redux": "^4.4.0",
16 | "redux": "^3.3.1"
17 | },
18 | "devDependencies": {
19 | "babel-core": "^6.6.5",
20 | "babel-loader": "^6.2.4",
21 | "babel-preset-es2015": "^6.6.0",
22 | "babel-preset-react": "^6.5.0",
23 | "css-loader": "^0.23.1",
24 | "node-sass": "^3.4.2",
25 | "sass-loader": "^3.1.2",
26 | "style-loader": "^0.13.0",
27 | "webpack": "^1.12.14"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/webpack-redux/styles/simple.scss:
--------------------------------------------------------------------------------
1 | h1.title {
2 | background-color: coral;
3 | }
4 |
5 | .player-row {
6 | cursor: pointer;
7 |
8 | &.active {
9 | background-color: yellow;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/webpack-redux/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | entry: "./index.js",
3 | output: {
4 | path: __dirname + "/dist",
5 | filename: "bundle.js"
6 | },
7 | devtool: 'inline-source-map',
8 | module: {
9 | loaders: [
10 | {
11 | test: /\.js$/,
12 | loader: 'babel-loader'
13 | },
14 | {
15 | test: /\.scss$/,
16 | loaders: ['style', 'css', 'sass']
17 | }
18 | ]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------