Jets: Serverless Deployment Jets is a Deployment Service. Jets makes it easy to deploy and run your app on Serverless. It packages up your code and runs it on AWS Lambda. Jets can deploy Rails, Sinatra, Hanami, and any Rack app. Learn More!
Rubyを書いていると、サーバを書きたくなることがあります。皆さんもそうだと思います。 ということで今日はRubyでスッとサーバを書くためのgem、serverengineの簡単な使い方メモ。 github.com Rubyでサーバを書きたくなった時 そもそも的に、Rubyでただサーバを書くのは非常に簡単である。具体的には Kernel#loop などを回してその中でリクエストを待ったり、何かしら処理を行えば終わり。特別なgemは必要ないし、TCPを扱うクラスなども組み込みで用意されている。 以下のような9行のスクリプトを起動すれば、サーバを書いたと言える。ところで TCPServer#accept_nonblockでないと、acceptでブロックしてしまって終了処理が遅れたりするのでノンブロッキングの方のAPIを好んで使うのがいいだろう。 require 'socket' server
Instance variable on a class: class Parent @things = [] def self.things @things end def things self.class.things end end class Child < Parent @things = [] end Parent.things << :car Child.things << :doll mom = Parent.new dad = Parent.new p Parent.things #=> [:car] p Child.things #=> [:doll] p mom.things #=> [:car] p dad.things #=> [:car] Class variable: class Parent @@things = [] def self.things @@
% gem install hanami Successfully installed hanami-2.1.0 3 gems installed % hanami new bookshelf Created bookshelf/ -> Within bookshelf/ -> # ... -> Running Bundler install... -> Running NPM install... -> Running Hanami install... % git init . && git add . && git commit -m "Initial commit" [main (root-commit) 629fc96] Initial commit 33 files changed, 1430 insertions(+) % heroku apps:create Creatin
BUNDLED WITH って何? bundler 1.10.0 以降で作成された Gemfile.lock では、BUNDLED WITH というセクションがあって、使用された bundler のバージョンがトラックされるようになっている [3485] 。 例えば bundler 1.9.0 で作成された Gemfile.lock のあるプロジェクト上で、 最新の bundler 1.10.3 を使用して bundle install --path vendor/bundle すると、 Gemfile.lock には以下の差分ができる。 これをもう一度 1.9.0 で bundle install すると、上の文字はきれいさっぱり消える。 BUNDLED WITH の何が困るか 多人数で開発するときには、この変更は微妙に邪魔で、意図しない Gemfile.lock 変更が出てしまうことで
これからはじめる Gulp シリーズこれからはじめるGulp(1):bundler, rbenv, nodebrewでGulp環境を作ってみる はじめに この記事はGulp.js(全俺) Advent Calendar 2014です。 今までGruntばかり使って来て、そろそろGulpも使っておこうということで、Wordpressテーマを作るついでに勉強したことをメモしていきます。今回はとりあえずgulpが実行できるところまで進めます。 Gulpとは GulpはGrantと同じタスクランナーの1つです。 色々調べた限りタスクの記述方法がシンプルでわかりやすく高速らしい? 環境構築 まずはGemの準備からはじめます。Ruby環境はRuby版のSass(gulp-ruby-sassプラグイン)を使わない場合は不要です。gulp-sassプラグインの場合はnode-sassを利用しているのでno
UPDATE: I’ve added a new section on stubbing with MiniTest and a few helpful comments to the code samples. MiniTest, as the name suggests, is a small and fast unit testing framework. Shipped with Ruby 1.9, MiniTest supports a complete suite of testing capabilities such as TDD, BDD, mocking, and benchmarking. This quick reference aims to demonstrate MiniTest’s main concepts and provide real world e
テストの書き方 基本 今までのTest::Unitと変わらないので,classで書く.ただ,昔のTest::Unitとは違い,TestCase毎に呼ばれるstartupやshutdownなどが増えている. require 'test/unit' class TestSample < Test::Unit::TestCase class << self # テスト群の実行前に呼ばれる.変な初期化トリックがいらなくなる def startup p :_startup end # テスト群の実行後に呼ばれる def shutdown p :_shutdown end end # 毎回テスト実行前に呼ばれる def setup p :setup end # テストがpassedになっている場合に,テスト実行後に呼ばれる.テスト後の状態確認とかに使える def cleanup p :cleanup
Quick Start Add this line to your application’s Gemfile: gem "chartkick" Then follow the instructions for your JavaScript setup: Importmap (Rails 7 default) esbuild, rollup.js, or Webpack Webpacker (Rails 6 default) Sprockets This sets up Chartkick with Chart.js. For other charting libraries and frameworks, see these instructions. Importmap In config/importmap.rb, add: pin "chartkick", to: "chartk
Annotation.md Idobata Gemfile プレゼント tl;dr IdotabaのGemfileは"全プレ"になりました。ご笑納ください。→ Gemfile プレゼントについてのお詫び rebuild.fmのep36でお知らせさせていただきました、Idobataの最新版Gemfileプレゼントをお届けいたします。 過日はIdobata会議01への多数のご参加ありがとうございました。おかげさまで盛況なミートアップとなりました。 (当日会場を提供いただいたEngine Yardさまのブログにて、Idobata会議01当日の様子がまとめられています。ありがとうございます!) さて、肝心のGemfileですが、Engine Yard Cloudのstable-v4スタックでRuby 2.1.2が利用可能になるのを待ちつつ、2.1.2対応をしていたら、Gemfileをお届けするのが
Rack限定ならむかし rack-spyup というものを書いた。自分で使ってみたけどJSON APIのデバッグとかだと革命的に便利だと思う。 ただ、Rackに到達する前にリクエストがお亡くなりになったりとか、そもそもサーバルビーじゃないしとかあると思うので、もっと汎用的な感じでダンプする手順をメモしてみる。 リクエストが来たら内容を全部ダンプするHTTPサーバを作る Rubyに標準添付されている、WEBrickの基本的な機能で割と簡単に作れる。 # -*- coding: utf-8 -*- require 'optparse' require 'webrick' require 'json' options = ARGV.getopts("p:", "port:") # The :monkey: raises # cf. http://d.hatena.ne.jp/vividcode/
require 'optparse' params = {} opt = OptionParser.new opt.on('-a') {|v| params[:a] = v } opt.on('-b') {|v| params[:b] = v } opt.on('-c file_name') {|v| params[:c] = v } opt.parse!(ARGV) p params % ./very_boring_and_waste_of_time_option_parsing.rb -a -c /tmp/file {:a=>true, :c=>"/tmp/file"} % ./very_boring_and_waste_of_time_option_parsing.rb -h Usage: very_boring_and_waste_of_time_option_parsing [o
2013年12月25日。おめでとうございます、Ruby 2.1.0がリリースされました! 日本時間で26日という細かい突っ込みをしている場合ではありません。 まだ使ったことがない方、簡単に変更点を見てみましょう。 文法の変更 デフォルト値を伴わないキーワード引数 Ruby 2.0が出たときから誰もが思っていた疑問、「なんでキーワード引数はデフォルト値必須なんだ?」がついに解消されました。以下の記法で、デフォルト値をつけないキーワード引数を宣言できます。この場合、呼び出し時に対応する実引数を渡さないとArgumentErrorになります。 def hello(name: ) puts name end hello(name: "taro") # => taro hello # => ArgumentError: missing keyword: name キーワード引数同士ではデフォルト引数
SDN 系プロジェクト (OpenVNet やWakame、Trema など) のコミッタにすぐなれる、実践的な方法を紹介する。通常コミッタになるには、バグ修正などのパッチをいくつも出して実績を積む必要があり、何よりそのプロジェクト全体に精通していなければならない。しかしこの方法を使えば、ずっと低い負荷で今日からコミッタ生活を始められるようになる。 この方法は Ruby 系プロジェクト全般に適用できる。SDN に限らずこれから GitHub でコミッタとしてバリバリ活躍していきたいという人にもおすすめだ。 (これは Wakame Advent Calendar 12/24 分のポストです。前回 12/16 分の記事はこちらです) 人気プロジェクト探訪 コミッタを目指す前準備として、GitHub で人気のある Ruby 系プロジェクトをいくつか見てみよう。そこにはコミッタになるためのヒントが
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く