Skip to content

Instantly share code, notes, and snippets.

Blair Anderson blairanderson

View GitHub Profile
@blairanderson
blairanderson / extract.rb
Created May 14, 2020
write JSON file data to multiple files [ruby]
View extract.rb
require 'active_support'
require 'active_support/core_ext'
require 'json'
JSON.parse(File.open("./_data/companies.json").read).each do |company|
File.open("./_companies/#{company['name'].parameterize}.md", "w") do |f|
f.write "---\n"
f.write "layout: company\n"
f.write "title: #{company['name']}\n"
f.write "categories: prep\n"
@blairanderson
blairanderson / gist:f0b49fb84abfb56e32f13395ddba0196
Created Mar 5, 2020
idea for rails ETL with ActiveStorage
View gist:f0b49fb84abfb56e32f13395ddba0196
class HighAvailabilityETL < RailsFoo
has_one_attached :input
has_one_attached :translate_step1
has_one_attached :translate_step2
has_one_attached :translate_step3
has_one_attached :output
def runner
step1_errors = input_to_translate_step1! unless input.attached?
step2_errors = step1_to_step2! unless translate_step1.attached?
@blairanderson
blairanderson / gist:40eb58d41a7f8a4271f01e3453b69154
Created Nov 7, 2019
DIRECT FULFILMENT (lead time calculation)
View gist:40eb58d41a7f8a4271f01e3453b69154
1. download all orders from https://vendorcentral.amazon.com/hz/vendor/members/df/orders
2. Move column Y to column E
3. Remove timezone string from the columns D & E
4. column F =ROUND(24*(E2-D2),1)
@blairanderson
blairanderson / transfer.rb
Created Nov 5, 2019
Ruby / Rails transfer files from SFTP to FTP folder
View transfer.rb
# ftp_uri is calculated from environment variable and database encrypted account/password
class Transfer
def transfer
require 'net/sftp'
require 'net/ftp'
current_business = Business.find(business_id)
old_directory = "/orders/"
directory = "orders"
sftpuri = current_business.sftp_uri
View keybase.md

Keybase proof

I hereby claim:

  • I am blairanderson on github.
  • I am blairanderson (https://keybase.io/blairanderson) on keybase.
  • I have a public key ASBO7gg1K05ibXO41y3bjm2-S6xY6ixX2Zft1TXd2wJNkwo

To claim this, I am signing this object:

View rails-query-by-email-domain.md

A simple way to add querying by email

# frozen_string_literal: true

module DomainQuery
  extend ActiveSupport::Concern

  class_methods do
    def by_email(domain=nil)
@blairanderson
blairanderson / rails-email-multiple.rb
Last active Jul 1, 2019
RAILS email input with multiple=true
View rails-email-multiple.rb
# simple_form sends params inside an array
# ["first@email.com,second@email.com"]
def email_cc_list=(list)
write_attribute(:email_cc_list,
Array.wrap(list).first.split(",").uniq.join(",")
)
end
# is it possible the array ever holds more than 1 value?
@blairanderson
blairanderson / recipe.md
Last active Jun 23, 2019
Spring Rolls with Fresh Prawns and Spicy Peanut Dipping Sauce
View recipe.md

Easy Peanut Dipping Sauce

  • 125g (1/2 cup) creamy peanut butter
  • 35g (2 tbsp) hoisin sauce
  • 20g (4 tsp) soy sauce
  • 1 clove garlic
  • 10g (2 tsp) Sriracha
  • 25g (2 tbsp) warm water
  • tablespoon crushed peanuts
  • sprinkle of crushed red pepper
@blairanderson
blairanderson / asin-to-dims.rb
Created Mar 16, 2019
get the product matches
View asin-to-dims.rb
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse("https://sellercentral.amazon.com/fba/profitabilitycalculator/productmatches?searchKey=B000I1TJW6&language=en_US&profitcalcToken=taco")
request = Net::HTTP::Get.new(uri)
request["Authority"] = "sellercentral.amazon.com"
request["Upgrade-Insecure-Requests"] = "1"
request["User-Agent"] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36"
request["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3"
View invoice-working.mjml
<mjml>
<mj-body background-color="#ccd3e0" font-size="13px">
<mj-section background-color="#fff" padding-bottom="20px" padding-top="20px">
<mj-column width="100%">
<mj-image src="https://www.andersonassociates.net/img/favicons/anderson-logo-large.png" alt="" align="center" border="none" width="100px" padding-left="0px" padding-right="0px" padding-bottom="10px" padding-top="10px"></mj-image>
<mj-text align="center" color="#356cc7" font-size="13px" font-family="Helvetica" padding-left="25px" padding-right="25px" padding-bottom="28px" padding-top="28px">
<span style="font-size: 28px">Anderson & Associates</span><br/>
<span style="font-size: 20px">Invoice [[InvoiceDate]]</span>
</mj-text>
</mj-column>
You can’t perform that action at this time.