タグ

Rubyに関するtoshihiko150のブックマーク (24)

  • 【Ruby】AES 暗号化・復号

    Ruby の標準ライブラリで AES 暗号化処理を実装する際のメモ。 毎回違う暗号が生成されるので安心。 検証環境 Ruby 2.7.3 サンプルコード 暗号化 require 'openssl' require 'base64' # AES 暗号化 # @param [String] plain_text 暗号化したい平文。 # @param [String] password 好きなパスワード。 # @param [String] bit 鍵の長さをビット数で指定。128, 192, 256が指定できる。基的には256を指定しておけばよい。 def aes_encrypt(plain_text, password, bit) # salt を生成 salt = OpenSSL::Random.random_bytes(8) # 暗号器を作成 enc = OpenSSL::Cipher

    【Ruby】AES 暗号化・復号
  • サンプルコードでわかる!Ruby 3.3の主な新機能と変更点 - Qiita

    はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 3.3は2023年12月25日に正式リリースされました。 この記事ではRuby 3.3で導入された変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 ただし、すべての変更点を網羅しているわけではありません。個人的に「Railsアプリケーションの開発時に役立ちそうだな」と思った内容をピックアップしています。記事で紹介していない変更点も多数ありますので、以下のような情報源もぜひチェックしてみてください。 動作確認したRubyのバージョン 記事は以下の環境で実行した結果を記載しています。 フィードバックお待ちしています 文の説明内容に間違いや不十分な点があった場合はコメント欄から指摘 or 修正をお願いします🙏 それでは以下が編です! 言語仕様の変更→なし Ruby 3.3では言語

    サンプルコードでわかる!Ruby 3.3の主な新機能と変更点 - Qiita
  • Ruby の引数の種類をまとめてみた - Secret Garden(Instrumental)

    普段何気なく書いている Ruby なんですが実はメソッドの引数の種類って思ったよりも多くてまとめてみました。 実際自分も Ruby の AST をいじっている時に引数の種類が多すぎて混乱したのでまとめておくと色々と役に立つかなーと。 と、軽い気持ちで書いてみたんですが結構なボリュームになってしまいまsた。 引数の名称とかは調べつつ独断と偏見で書いてあるのでそこら辺はご注意ください。 諸注意 この記事は基的に Ruby 3.1 を元にして動作確認しています 下にも書いてあるんですが 仮引数(parameter) についての解説で 実引数(argument) の話はあんまりでてきません 引数の名称は日語に寄せていますが Ruby 界隈だと英語で書いてある事が多いかも 調べる時は英語の方で調べてもらったほうが情報はでてくると思う 引数という言葉の意味とは 『引数』という言葉には厳密に言うと『

    Ruby の引数の種類をまとめてみた - Secret Garden(Instrumental)
  • M1Mac rbenvでインストール失敗した時 | おゆばぶ

    $ rbenv install 3.0.3 Downloading openssl-1.1.1l.tar.gz... -> https://dqw8nmjcqpjn7.cloudfront.net/0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1 Installing openssl-1.1.1l... Installed openssl-1.1.1l to /Users/user/.rbenv/versions/3.0.3 Downloading ruby-3.0.3.tar.gz... -> https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.3.tar.gz Installing ruby-3.0.3... ruby-build: using readlin

  • Ruby 3.1の構文アップデート - koicの日記

    この記事は「ESM Advent Calendar 2021」の1日目の記事です。 adventar.org RuboCop のバックエンドでは、Ruby を解析して AST (抽象構文木) の Ruby オブジェクトとして扱えるようにする Parser gem を使っています。Parser gem のメンテナンスは、Ruby の parse.y に入った構文のアップデートを元に行っています。エントリでは parse.y の観察を元にして、クリスマスのリリース予定までカウントダウンとなっている Ruby 3.1 構文のアップデート (2021年12月1日時点) をまとめてみます。 新構文 Hash リテラルの値省略の構文が追加される 匿名ブロック移譲の構文が追加される パターンマッチに pin オペレーターが追加される 既存構文の拡張 endless メソッド定義の体メソッド呼び出しの

    Ruby 3.1の構文アップデート - koicの日記
  • 至極の難問YAMLクイズ - くりにっき

    前置き 練習問題 問題1 問題2 問題3 問題4 参考文献 おまけ:LT直後のみんなの反応 前置き 社内勉強会のLTで発表したら好評だったので投下 自称YAMLエンジニアのsue445が今まで踏んだ罠をクイズにしました Ruby 3.0.0の Psych で動作確認していますが他言語での挙動は調べていません Psychがlibyamlベースなので他の言語のパーサでもだいたい同じ挙動をすると思うけど 練習問題 Q: 出力されるものは? yaml = <<YAML a: 1 YAML YAML.load(yaml) #=> ? {"a"=>"1"} {"a"=>1} シンタックスエラー その他 回答 2 YAMLの数字っぽい文字列はその言語の数字の型(Rubyだと Integer )として解釈されます。 文字列として解釈させたい場合は "1" (ダブルクオーテーション)や '1' (シングルク

    至極の難問YAMLクイズ - くりにっき
  • Ruby 3.0.0 リリース

    Posted by naruse on 25 Dec 2020 Ruby 3.0系初のリリースである、Ruby 3.0.0 が公開されました。 これまで、Ruby3に向けてパフォーマンスの改善、並行処理、静的解析という3つの目標を掲げて、活発に開発が行われてきました。特にパフォーマンスの改善については、Ruby 3x3 として「Ruby3はRuby2の3倍速くする」ことを目指してきました。 Ruby 3.0では開発の指標の一つとしてきたOptcarrotベンチマークで3倍を達成するとともに、以下のような取り組みが行われています。 benchmark-driver.github.io/hardware.html に書かれている環境で計測されました。 8c510e4095 が Ruby 3.0 として使われています。環境やベンチマークによっては3倍にならないかもしれません。 Ruby 3 では

  • OSX Yosemiteにrbenvとruby-buildでRuby 2.2.0を入れる時のconfigureオプション - ござるのブログ

    自分がOSX Yosemiteにrbenvとruby-buildRuby 2.2.0を入れる時のconfigureオプションを、覚え書きとして残しておきます。 $ RUBY_CONFIGURE_OPTS="--enable-pthread --enable-shared \ --with-readline-dir=`brew --prefix readline` \ --with-openssl-dir=`brew --prefix openssl` \ --with-libyaml-dir=`brew --prefix libyaml` \ --with-opt-dir=`brew --prefix gdbm`:`brew --prefix gmp`:`brew --prefix libffi`" \ rbenv install 2.2.0 見ての通りHomebrewでreadline

    OSX Yosemiteにrbenvとruby-buildでRuby 2.2.0を入れる時のconfigureオプション - ござるのブログ
  • まつもとゆきひろの履歴書|仕事中にこっそり作ったRubyが世界を驚かせるまで #ぼくらの履歴書 - ぼくらの履歴書|トップランナーの履歴書から「仕事人生」を深掘り!

    ※この記事は2019年8月に取材・撮影した内容です 私たちが使う便利なアプリの数々は、“プログラミング言語”によって作られています。言語の種類は数え切れないほど存在していますが、「多くの人々に利用されているもの」となると、ごくわずか。優れたプログラミング言語を生み出せる人物は、世界的に見ても一握りなのです。 その数少ない人物のひとりが、日にいます。プログラミング言語・Ruby(ルビー)の作者である、ソフトウェア技術者のまつもとゆきひろ( @yukihiro_matz )さんです。使い勝手の良さや生産性の高さから、まつもとさんの生み出したRubyは世界中で高い評価を受け、まつもとさん自身も世界中のコンピュータエンジニアから「Matz(マッツ)」の愛称で知られるようになりました。 では、まつもとさんは戦略的に、現在のキャリアを築き上げてきたのでしょうか。その答えは「NO」です。むしろ、「自分

    まつもとゆきひろの履歴書|仕事中にこっそり作ったRubyが世界を驚かせるまで #ぼくらの履歴書 - ぼくらの履歴書|トップランナーの履歴書から「仕事人生」を深掘り!
  • [ruby] 複合可能な暗号化をやってみる

    DBは大抵外部から直接アクセスできないように、厳重に守られていると思いますが、それでも格納するのに躊躇するような大切なデータの場合は、もう一歩踏み込んで保護したいところです。 そんな場合に役に立つ、複合可能な暗号アルゴリズムを使って、データの暗号化をやってみたいと思います。 事前準備opensslを使用するので予めgem installしておく gem install openssl 簡単に、暗号化 → 復号化 をやってみます。 require "openssl" # 暗号化するデータ data = "*secret data*" # パスワード pass = "**secret password**" # salt salt = OpenSSL::Random.random_bytes(8) # 暗号化器を作成する enc = OpenSSL::Cipher.new("AES-256-C

  • Procを制する者がRubyを制す(嘘)

    RubyのProcの説明は巷に溢れているから今更感があるけどここ数回Procを使ったネタを書いていたらProcがかわいくなっちゃってもっとみんなにもProcのこと知ってもらいたいという欲求が生まれてきたからProcについての基的なことを僕なりのやり方でここに書くよ。長いよ。 Rubyの関数(メソッド) Rubyにおいて関数(メソッド)はファーストクラス(オブジェクト)ではありません。つまり文字列や数字や配列などの他のオブジェクトとは異なって、Rubyではそれを直接変数に代入したり、他の関数に渡したりすることはできません。 def square(n) n * n end sq = square # squareメソッドを変数sqに代入してみる # ~> -:1:in `square': wrong number of arguments (0 for 1) (ArgumentError)

    Procを制する者が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
  • Codementor | Get live 1:1 coding help, hire a developer, & more

    toshihiko150
    toshihiko150 2018/02/20
    クエリパラメータとHashの相互変換
  • Ruby の論理演算子、&& と || は制御構造で & と | はメソッド - passingloopの日記

    Ruby で AND, OR の論理演算を行うための論理演算子には {&&,||} と {&,|} の 2 種類あります。この 2 種類は似ていてまぎらわしいのですが、 {&&,||} は制御構造で、{&,|} はメソッド とだけ覚えておきえば区別できます。 これだけ覚えておけば、 (1) {&,|} の両辺は必ず実行される。{&&,||} の右辺は実行されないことがある (2) {&&,||} の両辺は任意のオブジェクト、{&,|} の左辺は true から false のみ という違いは簡単に理解できます。 (1) {&,|} の両辺は必ず実行される。{&&,||} の右辺は実行されないことがある {&, |} はメソッドでした。ですので、 foo & bar foo | bar は、 foo.&(bar) foo.|(bar) というメソッドで書き直すことができます。こう書き直してみ

    Ruby の論理演算子、&& と || は制御構造で & と | はメソッド - passingloopの日記
    toshihiko150
    toshihiko150 2014/10/23
    {&&,||} は制御構造で、{&,|} はメソッド
  • refresh

    asaasa.tk Wiki+ This wiki was moved.

    toshihiko150
    toshihiko150 2014/09/19
    コマンドラインデバッガ
  • Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blog

    2009年06月20日02:25 Ruby Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function 【090621追記】 id:faulistさんから色々と指摘していただきました。ありがとうございます>< この記事を読む際には、以下のリンク先も併せてご覧になることをオススメします。 requireとincludeとextendとmodule_function(1) - As Sloth As Possible requireとincludeとextendとmodule_function(2) - As Sloth As Possible Rubyで外部ライブラリを読み込むには、require を利用します。例えば、ファイル名がhoge.rbの場合、このようになります。 require 'hoge' ただ、モジュールを読み込むと

    toshihiko150
    toshihiko150 2014/06/16
    requireとinclude/extend, module_functionなどについての試行。mix-in。
  • Ruby Recipe38 数値を表す文字列か調べる - たなかたろーのにっき

    文字列が"1"とか"123"とか数値を表すものかどうかを調べたい時には以下のやり方で調べられます。 # Integer()で変換できれば数値、例外発生したら違う def integer_string?(str) Integer(str) true rescue ArgumentError false end # Float()で変換できれば数値、例外発生したら違う def float_string?(str) Float(str) true rescue ArgumentError false end ちなみに結果は以下のようになります。 str = "あいうえお" str2 = "123" str3 = "3.14" str4 = "12345" # 普通の文字列 integer_string?(str) #=> false # 数値の文字列 integer_string?(str2)

    Ruby Recipe38 数値を表す文字列か調べる - たなかたろーのにっき
    toshihiko150
    toshihiko150 2014/06/11
    もっといい方法があるような気がする。。
  • Rubyブロック - kinopyo blog

    ブロックとは? Rubyでは、メソッドにデータを渡すだけではなく、処理も渡せます。 メソッドに渡された処理はブロックといいます。 ブロックを渡すには? ブロックを渡すには、二つの方法があります。 ①メソッドの最後に{}で囲んだコードを渡す。 test_block {puts 'In the block'} ②メソッドの最後にdo..endで囲んだコードを渡す。 test_block do puts 'In the block' end ブロックの使い方? ブロックは使ってもらわないと、意味がありません。 使ってもらうということは、相手のメソッドが、ブロックの処理を実行することです。 メソッドの中で、渡されたブロックの処理を実行するには、yieldを使います。 def test_block # test_blockメソッドを定義する puts 'Start of method' yield

    toshihiko150
    toshihiko150 2014/06/11
    ブロックについてのまとめ。yieldやblock_given?、ブロックを別のメソッドに渡す方法など。
  • 可変長引数 - うなの日記

    可変長引数の使い方。Javaのとだいたい同じ感じです。 引数に「*」をつけると可変長引数となります。 可変長引数とされた場合、関数呼び出し時に指定された引数のうち、普通のをのぞいた残りの引数が配列に格納されて関数に渡されます。 関数内では可変長引数は配列として扱えます。[index]で値を参照したり、sizeで要素数を取得したりできます。 引数が余らなかった場合は、空の配列が渡されます。 関数が受けつける引数のうち、最後の引数のみ、可変長引数にできます。 # 可変長引数の関数。 def foo( *args ) puts "--" puts args.class # 引数が配列で渡される。 puts args.join(",") puts args.length # 配列なので配列のメソッドが使える。 end foo( "a", "b", "c" ) foo("a") # 引数がひとつでも

    可変長引数 - うなの日記
    toshihiko150
    toshihiko150 2014/06/11
    可変長引数の使い方。Javaのとだいたい同じ感じです。引数に「*」をつけると可変長引数となります。関数が受けつける引数のうち、最後の引数のみ、可変長引数にできます。
  • Ruby 2.0.0-rc2 リリース

    Posted by Yusuke Endoh on 8 Feb 2013 Ruby 2.0.0-rc2 がリリースされました。Ruby 2.0.0 の最後の Release Candidate 版の予定です。 どうぞお試しください。もし何か問題があればお知らせ下さい。 所在 <URL:https://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.bz2> SIZE: 10822239 bytes MD5: e92420131bd7994513e0bf09a3e2a19b SHA256: d55f897bb04283c5fa80223d96d990fe8ecb598508dd59443b356cbba1f66145