約 1,390,638 件
https://w.atwiki.jp/metis/pages/77.html
キャラクター名 ruby_moon 所属ギルド =斜め上=ディオネのスヴァスティカ。 10倍期間にキャラを作成しメティスへ移住した。 動画で名前が少し見えていたため粘着が現れたが全く話題にならなかった。 露店キャラのほうが目立ってしまった人。 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/bigoyayubi/pages/15.html
プログラミング/Ruby/csv2xml
https://w.atwiki.jp/kmo2/pages/11.html
クラスの定義 class クラス名 親クラス .... end クラス名は半角英大文字で始まる名前にする必要あり。 (実はRuby的にはクラス名=定数らしい。) コンストラクタ initializeという名前のメソッドで定義 class Point def initalize(x,y) @x = x @y = y end end デストラクタは無い。#まあガベコレしてくれるんで要らないだろうな。 webで検索すると以下のようなやり取りが。 |2. C++ のデストラクタのようなものは Ruby ではどのように書くのでしょうか。 | C での拡張[[モジュール]]中では、Data_Make_Struct() の第4引数で関数を指定 | できるようですが、Ruby で作成したクラスの場合、どのように書くのか | わかりませんでした。 RubyレベルではGCがあるので,明示的にオブジェクトを破棄する必 要はあまりないはずです.どーしても,GCのタイミングでなんらか の処理が行いたい場合には lib/final.rb を使うワザはありますけ どね.実例としては lib/tempfile.rb を参照して下さい.でも, 分かるかなあ.必要でしたら更に解説します. メンバ変数 インスタンス変数には@で始める。 @value1 クラス変数は@@で始める。 @@value2 アクセッサメソッド JavaでsetFoo(),getFoo()というメソッドを使ってメンバ変数fooにアクセスするようにするけど、Rubyはattr_accesstor(set/get),attr_reader(get),attr_writer(set)を使って実現できる。 class Point def initalize(x,y) @x = x @y = y end attr_accessor x attr_accessor y end p1 = Point.new(1,1) puts p1.x とxの間にスペースを入れると構文エラーになる。これ以外にもなぜだかRubyはスペースの入れ方にうるさい箇所が多い。 クラスメソッド クラス名.メソッド名になる class Rectangle .... #四角形の角の数を返す def Rectangle.getApexCount return 4; end end インスタンス生成 Javaだと new クラス名()だけど、Rubyはクラス名.new()で生成する。 a1 = Point.new
https://w.atwiki.jp/ohden/pages/817.html
使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 http //qiita.com/jnchito/items/42193d066bd61c740612 使えるRSpec入門・その2「使用頻度の高いマッチャを使いこなす」 http //qiita.com/jnchito/items/2e79a1abe7cd8214caa5 使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 http //qiita.com/jnchito/items/640f17e124ab263a54dd Rubyソースコード完全解説 http //i.loveruby.net/ja/rhg/book/ -- (s1n) 2017-06-14 18 50 31 「若手エンジニア/初心者のためのRuby 2.1入門」最新記事一覧 http //www.atmarkit.co.jp/ait/kw/ruby_nyumon.html -- (s1n) 2017-06-15 13 10 39 require include exclude -- (s1n) 2017-08-10 13 18 14 Ruby documentation comment. YARD https //yardoc.org RDoc http //rdoc.sourceforge.net -- (s1n) 2018-04-23 16 37 51 "hoge".pluralize = "hoges" "hoges".singularize = "hoge" -- (s1n) 2018-08-20 11 21 19 https //blog.jnito.com/entry/2015/05/20/080306 rspecの考え方。 https //qiita.com/jnchito rspecの使い方。 https //qiita.com/jnchito/items/607f956263c38a5fec24 カピバラさん関係。 https //qiita.com/namitop/items/bf455f8383181ff6edf3 rspecアンチパターン -- (s1n) 2018-09-21 10 50 46
https://w.atwiki.jp/opentfc/pages/85.html
メソッドは,オブジェクトを操作するもの。 Rubyでは,全ての操作がメソッドとして実装されている。 7.1 メソッド呼び出し 一般形 オブジェクト.メソッド名(引数1, 引数2, ..., 引数n) オブジェクト指向の世界では,メソッドを実行することを 「オブジェクトにメッセージを送る」「オブジェクトはメッセージを受け取る」と解釈する。 上の構文でのオブジェクトをレシーバという。 7.2 メソッドの分類 7.2.1 インスタンスメソッド あるオブジェクト(インスタンス)をレシーバとするメソッド。 ### インスタンスメソッドの例 "10, 20, 30, 40".split(",") 1000.integer? obj =~ arg1 obj[arg1] = arg2 obj + arg1 後半は構文が違うが,演算子の形をしたメソッドである。 Rubyでは既存のメソッドをユーザが再定義できる。 7.2.2 クラスメソッド レシーバがクラス。例えば,インスタンスを作る場合など。 ### クラスメソッドの例 a = Array.new f = File.open("some_file") t = Time.now クラスメソッドの呼び出しには,「.」の代わりに「 」も使える。 7.2.3 関数的メソッド レシーバがないメソッド。本当にないわけではなく,省略されている。 ### 関数的メソッドの例 print "Hello!" sleep(10) 7.3 メソッドの定義 メソッド定義の一般的な構文 def メソッド名(引数1, 引数2, ...) 実行したい処理 end メソッド名には,アルファベット,数字,「_」が使える。数字で始めることはできない。 インスタンスメソッドやクラスメソッドを定義するには,先にクラスを定義する必要がある。 デフォルト値 「引数名 = 値」と書くと, 引数を省略してメソッドを呼び出したときに使われる値を指定できる。 ### 引数のデフォルト値が指定されているメソッドの例 def hello(name = "Ruby") print "Hello, ", name, ".\n" end hello() # 引数を省略して呼び出し hello("Newbie") # 引数を指定して呼び出し メソッドが複数の引数を持つ場合, 引数リストの右端から順にデフォルト値を指定する。 def func(a, b=1, c=2) ... end メソッドの返り値 return 値 値を省略した場合は,nilが返される。 return文を省略した場合は, メソッドの中で最後に得られる値が返り値となる。{{\br}} また,メソッドを途中で終了させるときもreturn文を使うことができる。
https://w.atwiki.jp/ebi_xyz/pages/45.html
Ruby 1.9.3 + Ruby on Rails 3をインストールした時のメモ 環境 CentOS 5.6 Ruby 1.9.3 p0 Ruby on Rails 3.1.2 1. libyaml-develのインストール centos5にruby 1.9.3をインストールするには「libyaml-devel」が必要らしいので事前にインストールを行った。 # yum install libyaml-devel インストール完了。 2. Ruby 1.8.7-p352のインストール Ruby 1.9.3のインストールには既にRubyがインストールされている環境が必要だったので、旧番をインストール。 # mkdir /usr/local/ruby # cd /home/hide/download # wget ftp //ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p352.tar.gz # tar zxvf ruby-1.8.7-p352.tar.gz # cp -r ruby-1.8.7-p352 /usr/loca/ruby/ # rm -rf ruby-1.8.7-p352 # cp usr/loca/ruby/ruby-1.8.7-p352 # ./configure # make # su # make install # ruby -v(バージョン確認) → バージョン1.8.7を確認。 インストール完了。 3.Ruby 1.9.3 p0のインストール # cd /home/hide/download # wget ftp //ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz # tar zxvf ruby-1.9.3-p0.tar.gz # cp -r ruby-1.9.3-p0.tar.gz /usr/loca/ruby/ # rm -rf ruby-1.9.3-p0 # cp usr/loca/ruby/ruby-1.9.3-p0 # ./configure # make → makeでエラーが発生。とりあえずインストールを実行。 # su # make install → make installでエラーが発生。試行錯誤。一旦make cleanをしてmakeからやり直すことにした。 # make clean # make → エラーが出なかった。 # make install → エラーが出ずにインストール成功。 # ruby -v(バージョン確認) → バージョン1.9.3を確認。 今回はこれで続行する。 次回からは1.8.7を入れた後はrvmで1.9.3を入れたほうがいい気がする。 4. Ruby on Railsのインストール。 gemコマンドからインストールする。gemはRuby 1.9.3のインストール時に合わせてインストールされる。 # gem install rails → 「File not found lib」というメッセージが表示されてインストールが終わった。 調べた結果libディレクトリを作れば解決するということだった。 # mkdir /usr/local/lib/ruby/gems/1.9.1/gems/rails-3.1.2/lib # rails -v →バージョン3.1.2を確認。 完了。 2011-11-23
https://w.atwiki.jp/lmes2/pages/169.html
Ruby 本体のインストール 概要 タイトルのまんま。 windows で動作する Ruby には、mswin版、Cygwin版等数種類ある。 この項では「One-Click Installer - Windows」を使用する。 参照 Ruby インストールガイド - top 手順 RubyForge One-Click Ruby Installer Project Info から 「One-Click Installer - Windows」の最新版をDLする。 この項を書いている2008/03/03現在、上記サイトのデザインが崩壊していて見つけにくいが、右のほうにある「ダウンロード」から、 not found (420.jpg) 現時点で最新である「ruby186-26.exe」をクリックしてDL。 not found (421.jpg) DL後、実行。 not found (419.jpg) not found (422.jpg) not found (423.jpg) not found (424.jpg) not found (425.jpg) このインストールには十分~数十分かかる。 not found (426.jpg) not found (427.jpg)
https://w.atwiki.jp/ohden/pages/285.html
Ruby on Rails Ubuntu 10.04 Ruby 1.8.7 RubyGems 1.3.7 install install Rails5 install(2019-02-03) Rails7 install(2022-07-26) test run ~tips~ command備忘録 herokuでyarnを使う方法 Ruby/Rails/tips/ RAILS_ENV ほとんどのlinuxでは、実行commandの前に『【環境変数名】=【設定値】』と記載することで、そのcommandでのみ有効な環境変数を設定できる。 RAILS_ENV=development bin/rails db migrate RAILS_ENV=production bin/rails db migrate RAILS_ENV=test bin/rails db migrate port 3000を通す CentOS 7.3 $ sudo firewall-cmd --permanent --add-port=3000/tcp success 『--permanent』は設定を恒久的に行いたい場合に設定。 設定をreload。 $ sudo firewall-cmd --reload success 更新日: 2022年09月23日 (金) 23時04分10秒 has_many hoges def hoges hogehoge end のように関連名と同じmethodを定義すると、基本的にmethodの方が使われる。 が、他の関連のthroughからは、関連のhogesの方が参照される。らしい... -- (s1n) 2018-09-13 16 31 43 ActiveRecord絡みのメモ * scope * unscoped * default_scope * unscope(order name) -- (s1n) 2018-09-13 17 01 48 FactoryGirlで予約語と設定項目名がかぶる場合... add_attribute( factory){ "室蘭工場" } -- (s1n) 2018-09-13 17 35 55 apply_join_dependency eager_loadをjoins扱いしてくれる? -- (s1n) 2018-09-13 18 19 27 postgres+rspecが遅い... test環境やlocal環境で完結する話なら、`/etc/postgresql/10/main/postgresql.conf`の`fsync = off`としてしまうのも手。 システムコールfsyncはメモリ上とディスク上のfileを同期させる処理。なので、停電などでメモリ上にしかないデータが消えても大丈夫なlocal環境やtest環境ならoffってしまって性能重視にしてしまえと。 当然、本番環境で設定したらやばいことが起こりそうなので注意。 -- (s1n) 2018-09-20 11 43 48 https //blog.freedom-man.com/activerecord-join-order-limit/ join, order, limitで件数がおかしくなる問題 -- (s1n) 2018-09-25 09 56 24 http //api.rubyonrails.org/classes/ActiveRecord/Reflection/ClassMethods.html 関連の情報を取る方法。 Model.reflect_on_all_associations 関連名だけ欲しかったら Model.reflect_on_all_associations.map( name) で一通り取れる。 belongs_to関連だけ取得したかったら Model.reflect_on_all_associations( belongs_to) has_many関連だけ取得したかったら Model.reflect_on_all_associations( has_many) なんて条件で絞り込んだりもできる。 関連名を指定してやると対象の情報を取れる Model.reflect_on_association( column_name) なんてのもある。指定した関連が無かったらnilが帰ってくる。 他にもhashがもらえる Model.reflections なんてのもある。 -- (s1n) 2018-09-27 14 30 14 DBにmysqlを選んだ場合、defaultで『collate utf8_unicode_ci』が有効なSQLが吐かれる。 なので、『%ほげ%』でlike検索を行った場合『%ホゲ%』『%ホゲ%』も検索対象になってしまうらしい。 -- (s1n) 2018-10-24 11 21 27 railsのように意味のないuniqな数字をprimary keyとして割り振ったkeyをサロゲートキーと呼ぶ。 -- (s1n) 2019-11-01 09 55 03 railsでPostgreSQLを使いたい場合、pgを入れる必要がある。 pgを入れるには、予めPostgreSQLをinstall済でないとダメ。 $ sudo apt install postgresql -- (s1n) 2020-02-06 12 40 13 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/kmo2/pages/8.html
変数 名前の付け方 Rubyのユニークな点だと思うんだけど、インスタンス変数、グローバル変数、ローカル変数、定数の変数名のつけ方にそれぞれ規約がある。 ローカル変数はRubyの変数名は英小文字か_で始まる文字列 value = 1 puts value インスタンス変数は@で始める。グローバル変数は$で始める。ここら辺は後述。 定数は大文字で始める MaxLen = 10 もう一個特長的なのが変数宣言が要らないこと。 JavaとかCだと int i; みたいに使う前に型と変数名を書いておく必要があるけどRubyはその必要なし。 これはRubyだけじゃあ無くて昔のBASICとか他のスクリプト言語でもよく採用してる。 変数名のタイプミスがあるとそれは別の変数を定義したと見なされたりして、間違いに気づくのが遅くなるんで、個人的にはコンパイラが厳格に型を見てくれる言語のほうがすきなんだけど。ただ、昔のBASIC等とは違って代入してない変数の値を参照しようとするとエラーになるんで幾分はマシではある。 nankasugokunagaihensu = 1 nankasugokunagaehensu += 1 # ---ここでエラーになる。 puts nankasugokunagaihensu
https://w.atwiki.jp/bambooflow/pages/307.html
rubyでantlr3を使う rubyでantlr3を使うインストール はじめの一歩文法ファイル(.g)作成から実行まで 生成されたファイルをみる 参考ページ SimpleCalc インストール % gem install antlr3 はじめの一歩 文法ファイル(.g)作成から実行まで 次のファイルを準備する。 Hello.g grammar Hello; start_rule hello WS world WS? EOF; WS ( | \n )+; % antlr4ruby Hello.g もしくは % ruby -S antlr4ruby Hello.g 実行すると次のファイルが生成される。 HelloLexer.rb HelloParser.rb Hello.tokens うまく生成できたら次に実行用のファイルを用意する。 hello.rb require rubygems require HelloLexer require HelloParser str = "hello world" lexer = Hello Lexer.new str parser = Hello Parser.new lexer parser.start_rule 実行 % ruby hello.rb 実行しても何も起きません。何も起きないとパース成功となる。 生成されたファイルをみる HelloLexer.rb module Hello … class Lexer ANTLR3 Lexer … def initialize( input=nil, options = {} ) super( input, options ) end … def t__5! type = T__5 channel = ANTLR3 DEFAULT_CHANNEL match( "hello" ) @state.type = type @state.channel = channel ensure end def t__6! type = T__6 channel = ANTLR3 DEFAULT_CHANNEL match( "world" ) @state.type = type @state.channel = channel ensure end def ws! … ensure end def tokens! alt_2 = 3 case look_2 = @input.peek( 1 ) when 0x68 then alt_2 = 1 when 0x77 then alt_2 = 2 when 0xa, 0x20 then alt_2 = 3 else raise NoViableAlternative( "", 2, 0 ) end case alt_2 when 1 t__5! when 2 t__6! when 3 ws! end … end end ANTLR3 Lexerを継承している token!が呼ばれると、トークンごとに@stateへ適切な値がセットされる。 自動生成されたt__5が"hello", t__6が"world"に対応する。 HelloParser.rb … module Hello class Parser ANTLR3 Parser def initialize( input, options = {} ) super( input, options ) end def start_rule begin match( T__5, TOKENS_FOLLOWING_T__5_IN_start_rule_12 ) # "hello"に相当 match( WS, TOKENS_FOLLOWING_WS_IN_start_rule_14 ) # WSに相当 match( T__6, TOKENS_FOLLOWING_T__6_IN_start_rule_16 ) # "world"に相当 … rescue ANTLR3 Error RecognitionError = re report_error(re) recover(re) ensure end end end end ANTLR3 Parserが継承されている。 .gファイルで記述したstart_ruleがdef定義され、エントリーポイントとなっている。 match()を呼ぶたびにトークンを比較。 比較してトークンがマッチしないと、rescueからreport_error(re)が呼ばれエラー処理に入る。 参考ページ https //github.com/ohboyohboyohboy/antlr3/tree/master/samples/ http //antlr.ohboyohboyohboy.org/