Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Rubyで文字列を置換するsub, gsubメソッドだが、元の文字列の一部を使用したいことはよくある。また、置換後の文字列に式展開を行いたいこともあるだろう。その方法が複数あるので紹介したい。 その前に sub, gsub の簡単な説明を String#sub, String#gsub は文字列を置換するメソッドである。第1引数と一致する部分を第2引数に置換する。sub は最初に一致したものを置換し、gsubはマッチする全ての文字列を置換する。破壊的なメソッド sub!, gsub! も用意されている。 str = "a perl, a ruby, a python" str.sub('a', 'the') # => "the perl, a ruby, a python" str.gsub('a', 'the') # => "the perl, the ruby, the python"
本記事はQiitaに投稿していたものを、Qiitaのコミュニティガイドライン追加に伴い削除の可能性を考慮してこちらに移行しました。理由は、fluentdからElasticsearchにログを投げ込み処理は弊社のOpenShiftのログ収集機能で利用しているものであり、記事投稿が自社で利用している技術の宣伝がないかといわれれば否定できないためです。 先にまとめ 以下のすべての条件を満す時、"Cannot get new connection from pool."というエラーが、fluentd起動後しばらく(自分のテストしたときは1日弱)してから発生し、以後すべてのログの送信ができなくなる elasticsearchの_nodes APIの返すレスポンスにクラスタのノードのIPの情報が含まれていない環境。例)AWS elasticsearch fluent-plugin-elasticsea
題名の通りで動作環境は以下の通りです。 Elasticsearch側はcerebroで見る限りgreenで正常に見えました。 fluentd 0.12.27 fluent-plugin-elasticsearch 1.9.0 Elasticsearch 5.0.1 fluentdの設定はこんな感じ <match ...> type forest subtype elasticsearch <template> hosts ... id ... buffer_type "file" buffer_path "..." flush_at_shutdown true buffer_chunk_limit 4m buffer_queue_limit 512 flush_interval 1s num_threads 8 logstash_format true logstash_prefix ${
hb.matsumoto-r.jp 上記のエントリで言及していたメールの受信サーバdovecotをmrubyで制御するpluginが概ね完成しましたので紹介します。というのも、一月前ぐらいにはできていたのですがバタバタしておりブログにできていませんでした。 github.com dovecot-mruby-pluginはメール受信のIMAPサーバとして動くdovecotをmrubyで色々制御することができます。今日はその制御の例を幾つか紹介します。 mrubyでIMAPコマンドを作る dovecot-mruby-pluginでは、dovecotのIMAPプロトコルで使うコマンドをmrubyで作ることができます。例えば以下のようにRubyのコードを書き、dovecotに読み込ませます。 # Register new commands %w( matsumotory test ).each d
以前、メール送信(SMTP)サーバの振る舞いを制御するために、mrubyで機能拡張できるpmilterというMilterプロトコルベースのミドルウェアを作りました。 hb.matsumoto-r.jp その流れで、メール受信(POPやIMAP)サーバの振る舞いも同様に制御することによって、トータルでメール送受信システムの流量制限だけでなく、アクセス制御や不正な認証の検知、DoSのようなアクセスや大量メールの送受信をうまくプログラマブルな設定を書くことによって解決していきたいと思いはじめ、昨日からpmilterだけでなくメール受信サーバの開発にも取り組みはじめました。 それらのメール系ミドルウェアを組み合わせることにより、既に使われているメールの定番ミドルウェア(Postfixやdovecot)はそのままに、平易に導入できて、性能を落とすことなく自由にRubyで拡張ができるようになる基盤を作
テンプレートの中で<% ~ %>または<%= ~ %>の中に記述されたものはRubyのコードとして実行されます。その為、「<% price = 2500 * 1.05 %>」は「price = 2500 * 1.05」という文字列が記述されているのではなく、変数priceに2500 * 1.05を計算した結果が格納されます。 では<% ~ %>または<%= ~ %>の違いは何でしょうか。どちらも中に記述されたRubyコードが実行されるのですが、<%= ~ %>の方は実行された結果を評価し、文字列として出力します。「本の値段は<%= price %>円です。」は「<%= price %>」の部分が変数priceに格納された値が評価されて「2625.0」という文字列になりますので、最終的に「本の値段は2625.0円です。」と出力されることになります。 このように<% ~ %>の方は結果を出力し
# -*- coding: utf-8 -*- require 'mail' Mail.defaults do delivery_method :smtp, { :address => "smtp.gmail.com", :port => 587, :domain => 'example.com', :user_name => '<自分のgmailアカウント>', :password => '<自分のgmailアカウントのパスワード>', :authentication => 'plain', :enable_starttls_auto => true } end m = Mail.new do from "<送信元メールアドレス>" to "<送信先メールアドレス>" subject "test mail subject" body "テストメールです" end # 本文のエンコーディン
コマンドラインツール作成支援のライブラリThorについて調べました。基本的な使い方について情報をまとめました。といっても、ほとんどホームページの基本情報を日本語訳しただけのようなものですが。 Thorの概要 Thorは、コマンドラインツールの作成を支援するライブラリです。 gitやbundlerのようにサブコマンドを含むコマンドラインツールを簡単に作成することができます。 基本的な使い方 Thorを継承したクラスのパブリックメソッドがコマンドになります。 MyCLI.start(ARGV)でコマンドラインの処理をスタートします。一般的にはbinフォルダの実行形式ファイル内でstart(ARGV)を実行します。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes 第7回 RubyでのメールはMailライブラリにおまかせ! (松永紘) 2013年9月 Webアプリケーションの開発をしていると、メールの送受信を扱う機会があると思います。RailsにはActionMailerというライブラリがありますが、今回はその中でも使われているMailライブラリ(*1)をご紹介いたします。 尚、本コラムは以下の環境で動作確認を行っています。 Ruby : 1.9.3 Mail : 2.5.4 まずはインストールを行いましょう(*2)。以下のコマンドを実行します。 > gem install mail 正常に終了すればインストールの完了です。Rubyスクリプト上で使用するには「require "mail"」でロードします。
Pmilterというサーバソフトウェアを作りました。 github.com PmilterはProgrammable Mail Filterの略で、SMTPサーバ(送信や受信)とmilterプロトコルで通信し、SMTPサーバの送受信の振る舞いをRubyでコントロールできるサーバソフトウェアです。 これまでにも、milter managerやRubyのgemを使ってmilterサーバを作るといった素晴らしいソフトウェアがありました。ですが、今回僕がフルスクラッチで作りたかった理由としては、 とにかくインストールや設定がシンプルで運用しやすいサーバソフトウェアにしたい ミドルウェアとして振る舞いを設定する感覚でRubyで制御する事に専念したい 依存ライブラリを減らしワンバイナリでサーバに配置できるようにしたい 設定変更に再起動することなくRubyを変更するだけで振る舞いを変えられるようにしたい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く