Studio Elsa

Länktips: TeknikRuby-miljö, rbenv, Vim-plugins, Franchise och Probot

Länktips: TeknikRuby-miljö, rbenv, Vim-plugins, Franchise och Probot

Varje månad samlar vi några teknikrelaterade länkar att dela med er. De speglar ofta arbete vi håller på med just nu, eller verktyg vi använder för att förbättra vårt arbetsflöde. Förhoppningen är att åtminstone en av dem kan hjälpa dig att förbättra din teknikstack eller minska friktionen i ditt dagliga arbete.

att skapa en Ruby-utvecklingsmiljö

Jag utvecklade applikationer i Rails i flera år, men har på senare tid fokuserat på node.js-projekt. De senaste veckorna påbörjade jag ett uppdrag som tar mig tillbaka till Ruby. MacBooken jag använder just nu har aldrig använts för Ruby-arbete, och jag lyckades röra till mina .dotfiles ordentligt. Så jag fick börja om från noll och sätta upp en Ruby-miljö igen. Här är några saker jag snabbt insåg att jag behövde.

installera lite rubies

Att hantera Ruby-versioner är enkelt med rbenv, och jag gillar att det är lätt att förstå hur det fungerar. $PATH-injektion är ett bra sätt att lösa detta, och jag tar det ett steg längre genom att lägga ./bin först i min $PATH. Då kan jag använda binstubs lokalt och slipper det otympliga bundle exec eller ./bin/rails när jag kör skript.

uppgradera din REPL

Man spenderar en hel del tid i en Rails-konsol, eller IRB. Det är värt att konfigurera lite för att göra det mer njutbart. Först och främst, använd Pry överallt.

# ~/.irbrc

begin
  require "rubygems"
  require "pry"
  Pry.start
  exit
rescue LoadError => e
  warn "=> Unable to load pry"
end

Sedan kan du hantera hur du vill att alla dina Ruby-REPL:er ska fungera på ett ställe, din .pryrc. Här ser jag till att alltid ha awesome_print och lägger in några exempel på hur man kan utöka miljön med metoder man tycker är användbara vid hackande. Jag brukade även kräva hirb, men har inte saknat den tillräckligt för att lägga tillbaka den (ännu).

# ~/.pryrc

# awesome print
begin
  require 'awesome_print'
  AwesomePrint.pry!
rescue LoadError => err
  warn "Couldn't load awesome_print: #{err}"
end

# See https://gist.github.com/807492
class Array
  def self.toy(n=10, &block)
    block_given? ? Array.new(n,&block) : Array.new(n) {|i| i+1}
  end
end

class Hash
  def self.toy(n=10)
    Hash[Array.toy(n).zip(Array.toy(n){|c| (96+(c+1)).chr})]
  end
end

Jag är fortfarande tidigt i min återuppstart av aktiv Rails-utveckling, men jag räknar med fler Ruby-länkar i intressanta projekt-avsnitten i kommande inlägg. Här är några av vim-pluginsen jag har börjat använda.

vim-rails

Kraftfulla verktyg för Ruby on Rails

vim-endwise

lägger klokt till "end" i ruby, endfunction/endif/mer i vim script, etc

vim-rubocop

Vim RuboCop-pluginet kör RuboCop och visar resultaten i Vim

intressanta projekt

Franchise

🍟 en anteckningsbok-SQL-klient. vad man får när man har många sequels.

Som runkit men riktad mot SQL-resultat, och väldigt smidigt att man kan dela en visualisering med en kollega som sedan kan återansluta och utforska vidare.

Probot

en tränbar robot som reagerar på aktivitet på GitHub

Jag vill börja använda några av exempelbotarna direkt, särskilt Work In Progress-boten.

dedent

⬅️ ES6-strängtagg som tar bort indentering från flerradiga strängar.

Den här enkla funktionen löser ett vanligt problem jag har när jag skapar flerradiga strängar i en closure.

r2

HTTP-klient. Andlig efterföljare till request.

Det här paketet är inte publicerat på npm ännu, men jag är väldigt exalterad över dess riktning. Läs gärna följdartikeln, Modern Modules, för mer insikt i Mikeals tankar.

keystash

🔑💌 Spara hemligheter i S3 med KMS envelope-kryptering

Jag använder den inte till något, men jag älskar att läsa källkoden för smarta CLI-skript som det här.

Bygger du något liknande?

Om du planerar en ny lösning eller förbättrar en befintlig kan vi hjälpa till med riktning och implementation.

Starta något