1. Install nginx
2. Install minio
3. Install mc client
$ mc mb myminio/static
Bucket created successfully ‘myminio/static’.
| class Advert::UpsertVehicle | |
| def self.call(vehicle) | |
| @vehicle = vehicle | |
| @outdoria = OutdoriaAPIService.new(vehicle.retailer.api_key) | |
| return unless @request_body = VehicleData::ToRequestBody.(vehicle) | |
| @vehicle_code = vehicle.custom_id | |
| if @outdoria.advert_exists?(@vehicle_code) | |
| self.update_advert | |
| else |
| http://stackoverflow.com/questions/22667401/postgres-json-data-type-rails-query | |
| http://stackoverflow.com/questions/40702813/query-on-postgres-json-array-field-in-rails | |
| #payload: [{"kind"=>"person"}] | |
| Segment.where("payload @> ?", [{kind: "person"}].to_json) | |
| #data: {"interest"=>["music", "movies", "programming"]} | |
| Segment.where("data @> ?", {"interest": ["music", "movies", "programming"]}.to_json) | |
| Segment.where("data #>> '{interest, 1}' = 'movies' ") | |
| Segment.where("jsonb_array_length(data->'interest') > 1") |
| class CategoriesController < ApplicationController | |
| def fields | |
| render json: Field.where(category_id: params[:id]).order(:id) | |
| end | |
| end |
| module Api | |
| module V2 | |
| module ApiHelper | |
| ## Общий метод генерации ключей для кэша redis | |
| def self.redis_key(params) | |
| params[:locale] = I18n.locale | |
| params_keys = params.keys.map(&:to_s).sort.map(&:to_sym) | |
| ['.', params_keys.map { |key| "#{key}:#{params[key]}" }.join('&'), '.'].join | |
| end | |
| end |
| # Put this function to your .bashrc file. | |
| # Usage: mv oldfilename | |
| # If you call mv without the second parameter it will prompt you to edit the filename on command line. | |
| # Original mv is called when it's called with more than one argument. | |
| # It's useful when you want to change just a few letters in a long name. | |
| # | |
| # Also see: | |
| # - imv from renameutils | |
| # - Ctrl-W Ctrl-Y Ctrl-Y (cut last word, paste, paste) |
| # lib/sidekiq/memory_sampling_middleware.rb | |
| # frozen_string_literal: true | |
| class Sidekiq::MemorySamplingMiddleware | |
| attr_accessor :logger | |
| def initialize(options = { logger: Sidekiq::Logging.logger }) | |
| self.logger = options.fetch(:logger) { raise 'Missing logger parameter in options' } | |
| end | |
| CLASS_KEY = 'class' |