Skip to content

Instantly share code, notes, and snippets.

View aarkerio's full-sized avatar
🐵
Echando rostro en Ixtapa.

Manuel Montoya aarkerio

🐵
Echando rostro en Ixtapa.
View GitHub Profile
@aarkerio
aarkerio / donations_controller_spec.rb
Last active July 2, 2023 18:40
Rails 6 Rspec: Validates json web token API request with signed cookie
# frozen_string_literal: true
RSpec.describe Api::V2::DonationsController, type: :request do
let(:donor) { Fabricate(:donor) }
before do
cookies = ActionDispatch::Request.new(Rails.application.env_config.deep_dup).cookie_jar
@tmp = cookies.signed[:donor_jwtapi] = { value: { token: donor.token} , httponly: true }
end
@aarkerio
aarkerio / set_heroku_vars.rb
Last active March 6, 2023 17:14
set_heroku_vars
require 'json'
raw_data = File.read('prod_vars.json')
# {"ASSET_HOST": "https://foo.cloudfront.net", }
vars_info = JSON.parse(raw_data);
puts "### vars_info ###>> #{vars_info.inspect}"
@aarkerio
aarkerio / mv.sql
Created August 26, 2022 18:46
PGSQL Materialized view
CREATE MATERIALIZED VIEW products_shopify_ids_on_active_shops AS
SELECT shopify_domain, array_agg(col ORDER BY col) AS product_shopify_ids
FROM (
SELECT DISTINCT
shops.shopify_domain AS shopify_domain,
unnest(offers.offerable_product_shopify_ids) AS col
FROM shops
INNER JOIN offers
ON shops.id = offers.shop_id
INNER JOIN subscriptions
You already have a Rails app with RVM so, install flycheck Ruby on Emacs 27:
1) Add rubocop to your Gemfile and bundle.
2) Install flycheck on Emacs and configure:
(add-hook 'after-init-hook #'global-flycheck-mode)
3) Install RVM package from Melpa and setup:
@aarkerio
aarkerio / ip.sh
Created July 16, 2021 05:25
Heroku Postgresql upgrade
1) Check your database name
heroku pg:info --app incartupsell | grep HEROKU
HEROKU_POSTGRESQL_GREEN_URL
1) Provision a Follower
heroku addons:create heroku-postgresql:standard-2 --follow HEROKU_POSTGRESQL_GREEN_URL --app incartupsell
@aarkerio
aarkerio / flatpickr.html
Created May 21, 2021 19:39
If flatpickr doesn't work, this is a minimal example.
<!doctype html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" crossorigin="anonymous"></script>
<title>Examples - flatpickr</title>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.css>
</head>
<body>
<h2>aHUEVO prros!!</h2>
@aarkerio
aarkerio / offer.rb
Created May 18, 2021 17:33
Group and order array by frequency
# Private: order companions by frequency.
#
# orders - Array of hashes.
#
# Returns Hashmap.
def companions(orders)
orders.reduce([]) {|acc, o| acc + o[:unique_product_ids]}.group_by(&:itself).transform_values!(&:size)
.sort{ |a,b| b.second <=> a.second }.first(15)
end
@aarkerio
aarkerio / support_request_spec.rb
Last active May 3, 2021 19:27
Rails rspec shopify login
def shopify_login(shop)
OmniAuth.config.test_mode = true
OmniAuth.config.add_mock(:shopify, provider: 'shopify', uid: shop.myshopify_domain,
credentials: { token: shop.api_token })
Rails.application.env_config['omniauth.auth'] = OmniAuth.config.mock_auth[:shopify]
get "/auth/shopify/callback?shop=#{shop.myshopify_domain}"
follow_redirect!
@aarkerio
aarkerio / posts.clj
Created January 22, 2020 22:31
Clojure. Format an Instant
(:require [java-time :as jt]))
(defn format-date
"Format a Java instant"
[date]
(let [formatter (jt/format "dd-MM-yyyy HH:mm")]
(jt/format formatter (.atZone date (jt/zone-id)))))
;; clj-time is now deprecated
@aarkerio
aarkerio / shop_request_spec.rb
Last active October 27, 2020 16:38
Shopify request test
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'ShopsController', type: :request do
def login(shop)
OmniAuth.config.test_mode = true
OmniAuth.config.add_mock(:shopify, provider: 'shopify', uid: shop.myshopify_domain,
credentials: { token: shop.api_token })
Rails.application.env_config['omniauth.auth'] = OmniAuth.config.mock_auth[:shopify]