
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