タグ

関連タグで絞り込む (512)

タグの絞り込みを解除

rubyに関するrochefortのブックマーク (1,037)

  • Ruby 2.4の新機能:rb_gc_adjust_memory_usage() - バインディングとGCの関係を改善するAPI - 2016-10-28 - ククログ

    株式会社クリアコード > ククログ > Ruby 2.4の新機能:rb_gc_adjust_memory_usage() - バインディングとGCの関係を改善するAPI (おそらく)2016年のクリスマスにRuby 2.4.0がリリースされます。Ruby 2.4.0で導入されるrb_gc_adjust_memory_usage()というAPIについて紹介します。 バインディングとGCの関係 このAPIはバインディングとGCの関係を改善するためのAPIです。(バインディングについてはRubyKaigi 2016:How to create bindings 2016を参照してください。) まず、バインディングとGCの関係にどのような問題があったかを説明します。RubyのGCはRubyのオブジェクトがどのくらいメモリーを使っているかを知っているのでメモリーを結構使っているなーと思ったらGCして

    Ruby 2.4の新機能:rb_gc_adjust_memory_usage() - バインディングとGCの関係を改善するAPI - 2016-10-28 - ククログ
    rochefort
    rochefort 2017/01/03
    rb_gc_adjust_memory_usage
  • yaml_vault が AWS での Rails 環境変数つらい問題を解決したと思う

    ※ 弊社 feedforce で毎週行っている、インフラ共有会を元にした記事で す。AWSRails を使っている方を想定していますが、数人規模のチー ムを意識した内容になっています。 こちらの記事で yaml_vault を知ったので、実際に試してみました。 yaml_vault+KMSでRailsアプリのconfig/secrets.ymlを暗号化してgitにコミットして管理する - Qiita 環境変数つらい# SaaS の API Key などの秘匿情報をコードに埋め込まないために、Rails で dotenv を使っている方も多いかと思います。 しかし、README.md にあるように 作者の @bkeepers さんは production での利用は奨励していません。 dotenv was originally created to load configuration

  • Ruby 2.4.0-preview3 リリース

    Posted by naruse on 9 Nov 2016 Ruby 2.4.0-preview3がリリースされました. これはRuby 2.4.0に向けた3番目のプレビューリリースになります。 プレビューリリースとはRubyコミュニティのフィードバックを得るためにリリースされています。 何かお気づきの際は、Ruby 2.4.0をよりよくするためにRuby バグレポートガイドラインを参考にしてバグレポートや提案を送ってください。 Introduce hash table improvement by Vladimir Makarov 従来Rubyのハッシュテーブルの内部実装 (st_table) ではに双方向連結リストとチェイン法を用いた実装が使われていましたが、挿入順の配列にオープンアドレス法を用いることによる高速化が行われました。 この改善に際しては多くの方による議論が行われ、とりわ

    rochefort
    rochefort 2016/11/10
    Binding#irb: Start a REPL session like binding.pry pry を用いると binding.pry とアプリケーションに書くことで、その場で対話型実行環境を起動することができ、デバッグの際に便利です。 r56624 にて binding.irb と書くことで同様なことをirb
  • Bundler: The best way to manage a Ruby application's gems

    Specifying a Ruby Version Like gems, developers can setup a dependency on Ruby. This makes your app fail faster in case you depend on specific features in a Ruby VM. This way, the Ruby VM on your deployment server will match your local one. You can do this by using the ruby directive in the Gemfile: ruby 'RUBY_VERSION', :engine => 'ENGINE', :engine_version => 'ENGINE_VERSION', :patchlevel => 'RUBY

    rochefort
    rochefort 2016/11/07
    rubyのversion指定は、以上(greater than)みたいなのができないのか
  • Ruby の private と protected 。歴史と使い分け - Qiita

    概要 Ruby の private と protected の歴史と使い分けについて説明します。 いろんなところで断片的に書かれていることなのですが、有益な情報を 一箇所に集めると自分の理解が深まりそう=>他の人にも役立つかな? と思ったのでまとめてみました。 具体的には、伊藤淳一さんのブログ・るりま・Rubyメーリングリストの内容を 一箇所にまとめた上で、私が書いたサンプルコードを少し足した内容になっています。 ちなみに Java や C# 畑の人が Ruby の private / protected を使って驚いた、 的な情報が多いですが、私も例にもれず Java => Ruby 勢で驚いたパターンです。 Java の private と protected public => どこからでもアクセス可能 protected => クラス内、同一パッケージ、サブクラスからアクセス可 p

    Ruby の private と protected 。歴史と使い分け - Qiita
  • Blog | Cognito

    Cognito BroadcastStay up-to-date with the latest insights and news from Cognito

  • サンプルコードでわかる!Ruby 2.4の新機能と変更点 - Qiita

    はじめに 2016年9月にRuby 2.4のpreview2が、11月にpreview3が、12月11日にrc1がリリースされました(参考1、参考2、参考3)。 僕は早速インストールして新機能を試してみましたが、みなさんはいかがでしょうか? というわけで、この記事では僕が実際に動かして確認したRuby 2.4の変更点や新機能をサンプルコード付きでまとめます。 この記事は大きく分けて次のセクションに分かれています。 文法上の変更点 後方互換性が失われる変更点 パフォーマンス改善 オブジェクト全般の新機能 主に数値に関連する新機能 主に文字列・正規表現に関連する新機能 主に配列・ハッシュに関連する新機能 ディレクトリやファイルに関連する新機能 その他の標準ライブラリに関連する新機能 スレッドに関連する新機能 なお、Ruby 2.4は2016年12月25日にリリースされる予定です。 記事はrc

    サンプルコードでわかる!Ruby 2.4の新機能と変更点 - Qiita
    rochefort
    rochefort 2016/10/24
    いい機能沢山 // Enumerable#sum, Comparable#clamp, Regexp#match?, MatchData#named_captures, Enumerable#uniq, Hash#transform_values, ログのローテーションファイルの拡張子書式
  • Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 少し前に、babaさんから「Rubyの内部文字コードはUTF-8じゃないよ」とツッコミがありました。 (追記: 上は会話の途中から切り取りましたのでご了承ください) いきなりの展開にくらくらきましたが、babaさんはさらにたたみかけます。 こうしたことはとっくにご存じの方も多いと思いますが、「Rubyといえば2.0以来UTF-8完全対応なんじゃないの」と勝手に思い込んでた私は脳に掌底をらったような思いです。ああ、でもこういうことがあるから面白い。 ⚓ プログラミング言語と内部文字コードの関係 まず最初に押さえておきたい点です。プログラミング言語で文字コードに関連する部分は、「文字列」「正規表現」「入出力」「コード中の文字リテラル(""の中など)」「コード中の文字リテラル以外の要素(変数名など)」「ファイル名」などが中心になります。そして文字列に関連し

    Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社
  • Ruby で平仮名またはカタカナをローマ字にする - 今日も微速転進

    ちょうどいいRubyのライブラリがないか調べたので備忘録。 昔はSuikyoというライブラリがあったはずだけど、今はメンテされていない様子。 ローマ字表記について Rubyのライブラリ romkan romankana romaji 課題など ローマ字表記について そもそも論として、いわゆるヘボン式と訓令式という2大派閥(?)に加えて外務省方式、駅名方式などかなりのバリエーションがある。ヘボン式についても、オリジナル版(Traditional Hepburn)と改訂版(Revised Hepburn)修正ヘボン式(Modified Hepburn)、日人による改良版などの亜種があるらしい。 ヘボン式にすべきか訓令式にすべきかという議論はあるようですが、ソフトウェア開発者としてはユーザー次第としか言いようがない。 個人的には人名についてはヘボン式の方が字面がきれいに見えるので良いと思います

    Ruby で平仮名またはカタカナをローマ字にする - 今日も微速転進
    rochefort
    rochefort 2016/10/01
    カナ-ローマ字変換 // nice!
  • Ruby と tumugi によるデータパイプライン構築 - Qiita

    データを扱う仕事をしていると、何らかの形でデータをある順序に沿って処理する Workflow = データパイプラインを構築する必要になる場面に出くわすことが多いと思います。 こうした処理に適用できるソフトウェアは既にいくつか存在するのですが、自分が仕事で使う上でマッチするものがなかったので、tumugi を Ruby のライブラリを作成し、 gem として公開しました。ロゴはこんな感じ。 Workflow Engine をつくろう! シリーズ連載は、元々このライブラリの設計を整理するために書いていた記事でした。まだ、未完ですが興味のある方はそちらもお読みください。 注釈 この記事は tumugi が Python で書かれたワークフローエンジンである Luigi に強く影響されて書いたことから、対比として分かりやすいため Building Data Pilelines with Pytho

    Ruby と tumugi によるデータパイプライン構築 - Qiita
  • tumugi で BigQuery のクエリ結果を Google Sheets に保存し、URL を Slack に通知する方法 - Qiita

    tumugi で BigQuery のクエリ結果を Google Sheets に保存し、URL を Slack に通知する方法RubyGoogleDriveBigQuerytumugi 仕事で BigQuery のクエリの結果を共有用のフォルダに Google Sheets 形式で保存して、Slack で URL を共有する、ということを頻繁にやっているのですが、 WebUI だと、クエリ結果を Google Sheets 形式で保存できるけど、ファイル名とフォルダが指定できないので、いちいち名前を変えて、フォルダを移動しないといけない。Slack 通知はできない。 Google Apps Scirpt (GAS) だと、全部実現できるけど、コードの管理を GitHub でやるのが面倒 と定形処理なのに、イマイチ効率の良い方法がなかったのを、tumugi で Ruby スクリプト化しまし

    tumugi で BigQuery のクエリ結果を Google Sheets に保存し、URL を Slack に通知する方法 - Qiita
  • doruby.jp

  • メソッドの委譲機能 - Qiita

    ActiveRecordのモデルを作っていると親子関係のクラスがたくさん出来ますが、子のクラスオブジェクトから親のクラスに実装されたメソッドを呼ぶことがあります。 そんなときに、コードをより直感的かつスマートに記述することができる便利な機能を教えてもらいました。 # parent.rb class Parent < ActiveRecord::Base has_many :children def has_parent? ... end end # child.rb class Child < ActiveRecord::Base belongs_to :parent end > child = Child.find(1) > child.parent.has_parent? # 冗長な感じがする # child.rb をこう書くと require 'forwardable' class

    メソッドの委譲機能 - Qiita
    rochefort
    rochefort 2016/09/22
    機能の一部を再利用したいケースでは継承やMix-inより委譲するほうが向いていて // わかりやすい
  • 『Rubyで学ぶRuby』連載開始 - まめめも

    RubyRuby を作りながら Ruby を学ぼう!」というトンデモ連載企画、『Ruby で学ぶ Ruby』を ascii.jp で始めました。 ref: http://ascii.jp/elem/000/001/228/1228239/ 何を言ってるかわからないかもしれないので補足すると、「Ruby(言語)で Ruby(のインタプリタ)を作りながら Ruby(でのプログラミング)を学ぼう!」ということです。Ruby でのプログラミングを学ぶなら、Ruby インタプリタ以上の題材はありません(断言)。Ruby というプログラミング言語の質を、外側(ユーザ視点)と内側(処理系実装者視点)の両面で見ていきます。 対象読者は「Rubyを学びたいプログラミング初心者」です。Ruby 言語について最低限のことを伝えるところから始めるので、すでに Ruby を知っている人はダルく感じるかもし

    『Rubyで学ぶRuby』連載開始 - まめめも
  • Rubular: a Ruby regular expression editor and tester

    Rubular is a Ruby-based regular expression editor. It's a handy way to test regular expressions as you write them. To start, enter a regular expression and a test string. Or you can try an example.

    Rubular: a Ruby regular expression editor and tester
  • rubygems 2.6.3 がリリースされた, 機動戦士ガンダムUC5 ラプラスの亡霊 を読んだ - HsbtDiary(2016-04-07)

    rubygems 2.6.3 がリリースされた gem のコマンドの実行時に最も新しいバージョンではなく古いバージョンが activate されるという厳しいバグが修正された rubygems 2.6.3 がリリースされた。もし 2.6.x を使ってる人がいたら 2.6.3 にバージョンアップしましょう。 ちなみに 2.6.2 からは gem update --system とやってもバージョンアップできないというこれまた厳しいバグがあるので、2.6.2 を使っている人は gem update --system=2.6.3 とバージョンを指定してアップグレードしましょう。 https://github.com/rubygems/rubygems/issues/1579 厳しい。 ■ 機動戦士ガンダムUC5 ラプラスの亡霊 を読んだ ひたすら読み続けている。地球への落下シーン、OVAでは

    rubygems 2.6.3 がリリースされた, 機動戦士ガンダムUC5 ラプラスの亡霊 を読んだ - HsbtDiary(2016-04-07)
    rochefort
    rochefort 2016/09/08
    これは厳しい // gem のコマンドの実行時に最も新しいバージョンではなく古いバージョンが activate されるという厳しいバグ
  • Rubyでバイナリデータを格好良く扱うgem「BinData」が素晴らしすぎて膝から崩れ落ちた - Bye Bye Moore

    0x1234567890abcdef とてな感じのバイナリデータがあったとします。*1 これを適正に振り分ける場合、どうしてますか? これまでの私だと、文字列のまんま val_a = "1234567890abcdef"[10].chr とやるなり、unpackで配列化して val_a = "ab".unpack("CC")[0].chr とやるなりしてました。 ただ、これだと32bitの時の扱いが面倒ですよね。 その上、可変長の場合は専用のロジックを組む必要がある。 しかも途中でセンサの仕様が変わって入り組んだメソッドチェインを解す過程で発狂しそうになったりした事も……。 そんな貴方や私の悩みを解決してくれるのが、今回紹介するGem「BinData」です。 導入 $ gem install bindata 使い方 require 'bindata' class Sample < BinD

    Rubyでバイナリデータを格好良く扱うgem「BinData」が素晴らしすぎて膝から崩れ落ちた - Bye Bye Moore
  • 共通.rubocop.ymlの管理 - rochefort's blog

    rubyを会社で利用している方なら、 複数プロジェクトにまたがるような .rubocop.yml をどう管理するか ということを考えるのは、ごくごく自然なことです。 (私は会社でruby使ってないですけど) rubocop のしつけ方 - onk.ninja を見ていて、 inherit_from で継承するのかと感心していたら、 @rochefort8 ちょっとだけ状況変わっていて、rubocop v0.35.0 で gem に内蔵した config を使えるようになったので inherit_gem を使うのが良いんじゃないかと思います。— Takafumi ONAKA (@onk) 2016年9月4日 onkさんに version0.35 からは inherit_gem というのがあるということを 教えていただきました。 せっかくなので inherit_from と inherit_g

    共通.rubocop.ymlの管理 - rochefort's blog
    rochefort
    rochefort 2016/09/06
    inherit_from, inherit_gem
  • rubocop のしつけ方 - onk.ninja

    rubocop のしつけ方 TL;DR rubocop --auto-gen-config して Offense count の多い順に毎日数個ずつ設定を確認したら 僕の使っている .rubocop.yml ができました これが onkcop か…(ゴクリ / “僕の使っている .rubocop.yml” https://t.co/KVryle9SJq — そのっつ (SEO Naotoshi) (@sonots) October 26, 2015 rubocop とは コーディング規約に準拠しているかをチェックする gem です。 https://github.com/bbatsov/rubocop こんなコードに対してかけると def badName if something test end end 以下のような警告をしてくれます。 Offenses: test.rb:1:5: C:

    rubocop のしつけ方 - onk.ninja
    rochefort
    rochefort 2016/09/05
    社内の共通の .rubocop_standard.yml を作って、プロジェクトごとに 上書きをする使い方が望ましいんじゃないでしょうか。 → inherit_gem の方が良い
  • windowsのbashでRails環境を構築してみる。(Windows 10 Insider Preview 14316) - Qiita

    windowsのbashでRails環境を構築してみる。(Windows 10 Insider Preview 14316)RubyRailsWindows windowsのbashでRails環境を構築してみる。(Windows 10 Anniversary Update版)に書きなおしたので、こちらを参照下さい。 前提 記事での内容は2016年4月6日公開でのbuild 14316環境下での構築記事となります。 また、現時点では"Fast Ring"での公開ですので不具合が発生する確率が高いため、使用する場合はその辺を理解の上、使用するようにしてください。 bashインストール さっそくwinodwsでbashが使えるとのことですので使えるようにセットアップをします。 まずは、Windowsでの"開発者モード"をオンにします。 「スタートメニュー」→「設定」→「更新とセキュリティ」→

    windowsのbashでRails環境を構築してみる。(Windows 10 Insider Preview 14316) - Qiita
    rochefort
    rochefort 2016/08/05
    ちゃんと動くのね