Skip to content

Instantly share code, notes, and snippets.

View evg2108's full-sized avatar

Eugene Gavrilov evg2108

  • Russian Federation, Krasnoyarsk
View GitHub Profile
https://github.com/rvm/rvm/issues/3630#issuecomment-453430455
if [ -f '.ruby-gemset' ]; then cd .; fi
Is enough for me.
Also I put it in .bash_profile fo KDE Konsole

Очистка локальных веток, которые уже былы смерджены в master или develop:

Нужнодобавить приведённый ниже алиас в конфиг гита git config -e --global:

[alias]
    cleanup = "!git branch --merged master | grep -v -P '^\\*|master|develop' | xargs -n1 -r git branch -d"

И затем можно вызывать команду git cleanup.

@evg2108
evg2108 / ubuntu_dock_add_icon.md
Last active May 14, 2018 05:24
Add Icon to ubuntu 18.04 dock

cd /usr/share/applications

sudo nano jetbrains-rubymine.desktop

[Desktop Entry]
Version=2018.1
Type=Application
Terminal=false
Exec=/home/evg2108/Programs/RubyMine_new/bin/rubymine.sh

Иногда при взаимодействии с другим сайтом по SSL возникает ошибка, что мол используется устаревший вид шифрования, при этом подключиться к сайту не удаётся. Насколько я понял это происходит когда сайт использует сертификаты с устаревшим видом шифрования (КО). Не знаю точно как лучше это исправить, но помогает следующее - нужно указать в параметрах SSL по-умолчанию все виды шифрования (насколько я понял по-умолчанию используются далеко не все). Для этого выполняю следующий код:

OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ciphers] = OpenSSL::Cipher.ciphers.join(':')

need phantomjs >= 2.1

require 'capybara/poltergeist'
require 'phantomjs'

Capybara.register_driver :poltergeist do |app|
  path_to_certs = '/home/evg2108/RubymineProjects/megafon_sbms/certificates/'
  path_to_ca_certs = path_to_certs
  
  @agent = Mechanize.new
  @agent.user_agent_alias = 'Linux Mozilla'
  @agent.redirect_ok = true
  @agent.read_timeout = 60
  @agent.ssl_version = 'SSLv3'
  cert = OpenSSL::PKCS12.new(File.open('my_pfx.pfx'), 'password')
  @agent.cert = cert.certificate
  @agent.key = cert.key
 f = File.open('ca.crt', 'w')
@evg2108
evg2108 / spec_private_methods.md
Last active May 4, 2016 13:40
RSpec for private methods

add this to spec_helper.rb or rails_helper.rb

# for testing private methods of classes
RSpec.shared_context 'private', private: true do

  before :all do
    described_class.class_eval do
      @original_private_instance_methods = private_instance_methods
 public *@original_private_instance_methods
@evg2108
evg2108 / ubuntu.md
Created March 17, 2016 06:39
Ubuntu
sudo apt-get update && sudo apt-get upgrade --fix-missing --fix-broken

Эта штука вродеисправляет битые и пропущенные пакеты и их зависимости

@evg2108
evg2108 / string_as_slim_template.md
Last active February 4, 2019 06:41
render string as slim template

#render string as slim template

example:

module WelcomeHelper
  def tile_link_to(title, href, icon_content = nil, &block)
    icon_content = capture { block.call }.strip.squish if block_given?
    content = <<-slim
 .tile
@evg2108
evg2108 / bundle.md
Last active February 20, 2016 12:14
Использование bundler и деплой с помощью capistrano

И случилось так, что герою потребовалось задеплоить на сервер, находящийся во внешнем мире проект. Но славного героя подстерегала беда, ведь один из гемов находился на внутреннем сервере gitlab родного королевства. Поэтому тщетны были его попытки и магическая консоль сыпала ошибки (ошибка при попытке загрузить гем из недоступного источника).

Сам проект так же находился на этом же внутреннем сервере, но герою успешно удалось побороть эту проблему с использованием магического гема для capistrano3 (гем называется capistrano-git-copy), который позволил ему использовать стратегию копирования. Но разобраться с злополучным гемом, находящимся на внутреннем gitlab сервере так просто не удалось.

Долго бился герой, пока не наткнулся в своём отчаянии на команду бандлера: