Ruby 初心者スレッド Part 56©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net
2014/12/13(土) 09:29:12.93ID:DLY4IovQ質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 55
http://peace.2ch.net/test/read.cgi/tech/1403361584/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0002デフォルトの名無しさん
2014/12/13(土) 11:36:58.78ID:rv+X6bjI尻穴用心 クソ用心
尻穴用心 クソ用心
一日一回 よいクソを
ブリブリ モリモリ 日曜日
「ケツを大切にしよう 一日一便」
尻穴用心 クソ用心
尻穴用心 クソ用心
月に一度は 浣腸を
ビチビチ 水便 月曜日
「腸をきれにしよう 一日一便」
尻穴用心 クソ用心
尻穴用心 クソ用心
屁には用心 屁の用心
カンチョー カンチョー 火曜日だ
「クソ我慢はやめよう 一日一便」
尻穴用心 クソ用心
尻穴用心 クソ用心
クソは便酒の お母さん
グイグイ グイグイ 水曜日
「クソを大切にしよう 一日一便」
0003名無しさん@そうだ選挙に行こう
2014/12/13(土) 18:07:33.37ID:wupMBGRm本には、次のように書かれています。
「試しに、Rubyのソースからクラスやメソッドの構成を参照するrdefsというgemパッケージを検索してみましょう。
% gem search rdefs
*** REMOTE GEMS ***
rdefs (0.0.2)」
これをやってみようと、最初に試みたのは、
Rubyと書いてあるやつをダブルクリックしてコマンドプロンプトっぽい黒いやつが出てきたところで
「% gem search rdefs」と打ち込むことで、これはエンターを押した直後に一瞬で消えてしまいました。
次に、Rubyコマンドプロンプトの方でやってみましたが、
「% gem search rdefs」と打ったら失敗(『'%'は、内部コマンドまたは外部コマンド...』のエラー)して、
「gem search rdefs」と打ったらちゃんと「*** REMOTE GEMS ***」が出ました。
(でも、rdefs (0.0.2)は出てこなかった)
疑問はいろいろありますが、特に次がわかりません。
1.「% gem search rdefs」はどこに打ち込めばいいのか?
2.コマンドプロンプトでは"%"を除外しないとうまくいかなかったっぽいが、"%"とはどういう存在なのか?
3.結局、正しく「gemパッケージをインストール」するにはどうすればいいのか
お願いします。
0004名無しさん@そうだ選挙に行こう
2014/12/13(土) 18:33:39.73ID:cDWMVZ6e1. コマンドプロンプト
2. '%' はコマンドを打ち込むことを表すことが多い。'>' が使われることもある
したがって実際に実行させる場合は '%' や '>' は省略しなければならない
3. gem install <gem名>
0005名無しさん@そうだ選挙に行こう
2014/12/13(土) 19:16:06.90ID:qpx34oJTありがとうございます!
0006名無しさん@そうだ選挙に行こう
2014/12/13(土) 19:30:49.35ID:gn9mQ4CYtruncateを使うことにしました!
回答どうもありがとうございました
0007デフォルトの名無しさん
2014/12/14(日) 21:58:28.43ID:8U4w7i4KJavaScriptにおける(function(){})()みたいなやつです
0008デフォルトの名無しさん
2014/12/14(日) 22:05:37.58ID:ivAaTykD0009デフォルトの名無しさん
2014/12/14(日) 22:53:18.03ID:igCzp+zo->(x){x+1}[1]
0010名前は開発中のものです。
2014/12/14(日) 22:59:57.18ID:Jnvv+4N5ruby触りたい・・・
せっかくある程度身に付いたのに身に付いたばかりで触る時間減ると
また忘れていく・・・
0011デフォルトの名無しさん
2014/12/14(日) 23:33:15.46ID:8U4w7i4K有難うございました
0012デフォルトの名無しさん
2014/12/15(月) 10:05:50.58ID:X5+DHKvY自分がレスしといてなんだけどイリーガル系全然考慮してないよ
今更だけど注意しといてくれ
0013デフォルトの名無しさん
2014/12/15(月) 17:40:49.57ID:kTAaEB1yご指摘ありがとうございます。
私の用途の範疇では件の方法で大丈夫でしたが、注意しておきたいと思います。
0014デフォルトの名無しさん
2014/12/16(火) 09:04:06.25ID:lqhDdyeKイリーガル=非合法。
イレギュラーの間違いでは?
0015デフォルトの名無しさん
2014/12/16(火) 12:49:34.17ID:vHDhcsvC視点によっては間違ってない
0016デフォルトの名無しさん
2014/12/16(火) 12:54:30.91ID:e7BH2hjc0017デフォルトの名無しさん
2014/12/16(火) 20:26:18.61ID:/G1f9edX例えばbase64やRFC〜とか
0018デフォルトの名無しさん
2014/12/16(火) 23:02:53.13ID:e7BH2hjc0019デフォルトの名無しさん
2014/12/17(水) 21:30:01.70ID:BeU/9l9q0020デフォルトの名無しさん
2014/12/17(水) 21:34:53.72ID:lhoaDEbVRuby 2.2 が(多分)でる
0021デフォルトの名無しさん
2014/12/18(木) 09:57:24.52ID:wFynChwC年齢確認がある場合、年齢確認と確認後のurlが同一なためopen-uriで開いても年齢確認ページのソースを取得してしまい困っています
回避する方法はあるのでしょうか?
0022デフォルトの名無しさん
2014/12/18(木) 19:25:53.72ID:lnYTNFCYの0x1234567って何を意味しているんですか?
object_idとも思いましたが違うようです
0023デフォルトの名無しさん
2014/12/18(木) 20:03:07.94ID:siOJVJ1kなぜその値なのかは知らん
0024デフォルトの名無しさん
2014/12/18(木) 21:07:14.04ID:48UW7eHVでいうところのVALUE
0025デフォルトの名無しさん
2014/12/18(木) 21:24:27.11ID:nUQSuv6d0026デフォルトの名無しさん
2014/12/18(木) 21:57:20.80ID:wCefEqGMクッキーだろ
0027デフォルトの名無しさん
2014/12/19(金) 23:48:25.45ID:Ak6+g1yPのスムーススクロールの機能って邪魔なだけじゃない?
あれで移動すると戻るボタンが機能しないからメソッド一覧からいろいろ飛んで戻ってってすごいやりにくい
手元ではchm再コンパイルして機能削除したやつ作ったけど
0028デフォルトの名無しさん
2014/12/20(土) 07:16:59.37ID:dWuhsWfVもしURLの最後に、クエリ情報をつけ足して、
認証前後のURLを変えると、
いつも認証せずに認証後のページに、アクセスできてしまう
ttp://〜?キー1=値1&キー2=値2&〜
それを避けるため、毎回認証させるように、
例えばPHPなら、PEAR::Authというライブラリで、フォーム認証する
ただし、同一セッション間では、再認証がいらないように、
クッキーとか、フォームの隠しフィールドに、
値を入れているのだろう
0029デフォルトの名無しさん
2014/12/20(土) 16:40:35.14ID:lEZ+5INX0030デフォルトの名無しさん
2014/12/20(土) 19:55:34.17ID:KBX+SOS/0031デフォルトの名無しさん
2014/12/20(土) 23:49:49.62ID:B5CT9989ありがとうございます、解決できました
0032デフォルトの名無しさん
2014/12/21(日) 17:53:16.95ID:HnwskcxIgem install nokogiri が失敗します
OSはwindows8.1でRubyは2.0.0p481です
エラーメッセージは以下の通りです
ERROR: Could not find a valid gem 'nokogiri' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect retur
ned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (
https://rubygems.org/latest_specs.4.8.gz)
原因または解決方法が分かる方がいたら教えてください
0033デフォルトの名無しさん
2014/12/21(日) 21:26:50.73ID:XFFvzADQhttp://qiita.com/shimoju/items/394818b4989b94680aaf
0034デフォルトの名無しさん
2014/12/21(日) 23:24:06.42ID:OZE/nfT+file.write 0
}
上の
バイナリモードの書き込み(wb)とそうじゃないの(w)
でhoge.txtを出力したんすが、まったく同じでした。
結局バイナリモードってなんですが?
いろいろ見たけどよくわかりませんでした。
0035デフォルトの名無しさん
2014/12/21(日) 23:53:39.57ID:NfmN1WugWindowsじゃなきゃ関係ないよ
0036デフォルトの名無しさん
2014/12/21(日) 23:55:59.18ID:NfmN1Wug0037デフォルトの名無しさん
2014/12/21(日) 23:57:45.70ID:HnwskcxIおかげさまでSSL通信のエラーは解決しました。ありがとうございます。
ただNokogiriのインストールに関してはその後も山ほどエラーが出たので
最終的にはビルド済みのバイナリーファイルをダウンロードしてそのままインストールしました
0038デフォルトの名無しさん
2014/12/22(月) 21:46:18.28ID:QU4NlpEKxmlファイルは、アプリケーションと同じファイルフォルダにあります。
doc = REXML::Document.new("a.xml")
次の方法だと、エラーになります。
doc = REXML::Document.new(File.new("a.xml"))
rexml.rb:4:in `initialize': No such file or directory @ rb_sysopen - a.xml(Errno::ENOENT)
from rexml.rb:4:in `new'
from rexml.rb:4:in `<main>'
0039デフォルトの名無しさん
2014/12/22(月) 22:06:46.38ID:+y3wtk/E実行時のカレントディレクトリにあることを確認すべし
0040デフォルトの名無しさん
2014/12/22(月) 22:07:56.12ID:wGmzBE1B再現するための最小のスクリプトください
0041デフォルトの名無しさん
2014/12/22(月) 22:28:16.24ID:DFOZol/g若しくはa.xmlがあるディレクトリに移動
0042デフォルトの名無しさん
2014/12/23(火) 06:15:39.85ID:Wq4N9ufpこんな感じです。
require 'rexml/document'
doc = REXML::Document.new(File.new("a.xml"))
ZZZ = Struct.new(:aaa, :bbb, :ccc)
zzzs = REXML::XPath.match(doc,"/yyy/zzz").map do |zzz|
aaa_element = zzz.elements["AAA"]
aaa = aaa_element ? aaa_element.text : nil
bbb_element = zzz.elements["BBB"]
bbb = bbb_element ? bbb_element.text : nil
ccc_element = zzz.elements["CCC"]
ccc = ccc_element ? ccc_element.text : nil
end
いくつかのサイトを参考にしてみたのですが、うまくいきませんでした。
http://docs.ruby-lang.org/ja/2.1.0/library/rexml=2fdocument.html
http://d.hatena.ne.jp/aoi_273/20090311/1236764850
http://k-shogo.github.io/article/2013/09/03/ruby-xml/
0043デフォルトの名無しさん
2014/12/23(火) 06:41:07.77ID:Wq4N9ufp「カレントディレクトリ」を「Ruby interpreter」が置いてあるフォルダのことだと勘違いしていました。
書いたプログラムのあるフォルダに移動したら動きました。
初心者過ぎてすみません。
0044デフォルトの名無しさん
2014/12/24(水) 10:44:21.44ID:cuUtxhMJeval('v')のようにする以外に何か方法はあるでしょうか?
0045デフォルトの名無しさん
2014/12/24(水) 13:40:07.76ID:kEZAS2wh0046デフォルトの名無しさん
2014/12/24(水) 14:23:58.90ID:cuUtxhMJありがとうございます!
0047デフォルトの名無しさん
2014/12/24(水) 14:46:08.90ID:ioNhDOivもし無ければ、要素をソートしてから比べるけど
集合(set)では、同じ要素を持てないため、
同じ要素を持てるもので
[1,2,2] == [2,1,2]
[1,2,2] != [1,2,2,3]
0048デフォルトの名無しさん
2014/12/24(水) 18:32:20.60ID:4+blJEbJ0049デフォルトの名無しさん
2014/12/24(水) 19:24:33.39ID:kde12yWRそれならO(n)だからソートより速いでしょ
0050デフォルトの名無しさん
2014/12/24(水) 22:01:27.51ID:kEZAS2wh0051デフォルトの名無しさん
2014/12/24(水) 22:50:49.52ID:kde12yWR際限なく依存関係が増えて無茶苦茶になる
0052デフォルトの名無しさん
2014/12/24(水) 22:54:40.10ID:ZFXquuAL005347
2014/12/25(木) 18:03:50.49ID:GZxGVqtyH.Hiro は日本人?日本語の説明はどこ?
[1,2,2] == [2,1,2]
簡単にこういう感じで、比較できない?
005447
2014/12/25(木) 18:20:34.69ID:GZxGVqtyttp://maraigue.hhiro.net/multiset/
Multisetの逆引きリファレンス
ttp://maraigue.hhiro.net/multiset/reverseref.ja.html#s26
ここに日本語の説明があった
== で比較できる
0055デフォルトの名無しさん
2014/12/25(木) 20:25:03.94ID:30SwzOSe何かいい単純な書き方がありますでしょうか?
今のところ以下のように、
何かを出してから足し合わせたりと1段間に処理を挟むような考え方でしか出せていません
a=[1,2,3]
n=a.size
p (0..n).flat_map{|i|a.combination(i).to_a}
#=> [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
p (0..2**n-1).map{|i|a.select.with_index{|j,k|2**k&i>0}}
#=> [[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
0056デフォルトの名無しさん
2014/12/25(木) 22:09:01.66ID:lIYOW+qdサンプルコード見るとうまく切り出してあるのですが、ブラウザでソースを表示させても全然わかりません。
0057デフォルトの名無しさん
2014/12/25(木) 22:35:42.38ID:EJcNEjL/0058デフォルトの名無しさん
2014/12/25(木) 22:40:28.35ID:dAMLPR9kidが付いてる近くの要素からXPathで相対指定
0059デフォルトの名無しさん
2014/12/25(木) 22:41:03.06ID:/SHsWe6V0060デフォルトの名無しさん
2014/12/25(木) 23:37:56.28ID:6x6Injm4powersetで調べてみたが、多分無い
a.inject([[]]){|i, j|i+i.map{|k|k+[j]}}
0061デフォルトの名無しさん
2014/12/26(金) 07:02:56.94ID:abtjB2iMありがとうございます。
nokogiriを使っています。
XPathについて調べてみます。
0062デフォルトの名無しさん
2014/12/26(金) 07:08:18.74ID:exs6NRdchttps://getfirebug.com/html
他のブラウザも似たような機能があるはず
Rubyに直接関係ないから他に投げたほうがよかったかも
0063デフォルトの名無しさん
2014/12/26(金) 07:21:16.94ID:uiZ6TSzq<tag id="~">
<tag class="~">
idはそのページの中の、ある部分をピンポイントに指定するためにつけられるので、
ある特定部分だけ切り出すときにはidが目印に使える。
classはそのページの中で繰り返しあらわれる部分をまとめて指定するためにつけられるので、
繰り返しあらわれる部分をすべて抜き出すときにclassが使える。
ただしすべてのサイトがidやclassを使っているとは限らないので、
そういうときはソースにつけられたコメント部分を目印にしたり、
本文部分の特徴的な言葉や、本文の言葉とタグの組み合わせを目印に抜き出したりもする。
以上は正規表現等を使って自分で切り出す場合の基本的な考え方です。
要はプログラムが判断できる特徴的なパターンを見つけられるか、
また繰り返し使う場合はそれに加えて変化のないパターンを見つけられるか、です。
006456=61
2014/12/26(金) 08:13:14.79ID:abtjB2iMおぉ、見やすいです。
ソースを表示させる方法がわからなくて、Chrome入れて使っていたところです。
>Rubyに直接関係ないから他に投げたほうがよかったかも
すいません。
「プログラミング」と「Webプログラミング」の区別もついていないので。。。
>>63
ありがとうございます。
やっぱり人力なんですね。
まずはニュースサイトで試してみます。
0065デフォルトの名無しさん
2014/12/26(金) 09:58:24.25ID:exs6NRdcソースを整形して表示してくれるだけのものじゃない
画面上のオブジェクトがHTMLのどの要素に該当するかとか
その要素へのXPathやCSSセレクタも調べられる
わけわかんなければ最低でもHTMLとCSSはやったほうがいいよ
0066デフォルトの名無しさん
2014/12/26(金) 10:20:05.28ID:4oEvTEY8xpath とかcss による選択はあれを地道にやるのが一番早道と思う。
http://www.nokogiri.org/
正規表現でやるのは、この場合、苦しい・・・
■ このスレッドは過去ログ倉庫に格納されています