トップページ⇒tech
1001コメント332KB

Ruby 初心者スレッド Part 56©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net2014/12/13(土) 09:29:12.93ID:DLY4IovQ
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、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/
0655デフォルトの名無しさん2015/02/07(土) 13:12:14.03ID:uwz1/LFp
ちょっと調べたら、その辺のツールはみんなpythonだな
0656デフォルトの名無しさん2015/02/07(土) 14:10:42.49ID:zogMm8qc
Webrickじゃ無理
ProxyがHTTPS通信を開始するためにはConnectメソッドを処理する必要があるが
Webrickはこれを処理できる仕組みになっていないから

あと、透過型Proxy自体はヘッダーと何の関係もない
たぶんSSLによる暗号化を複合しないとリクエストが分からないから転送しようがないのでは?
と考えたのだと思うが、Proxyはそんなことしない
Connectメソッドによって確立されたトンネルにデータを流すだけ
0657デフォルトの名無しさん2015/02/07(土) 14:41:58.65ID:tuovU1tZ
なるほど。

今自社の開発案件でスマホアプリのHTTPS通信の
解析を行う必要があったんですが、Webrickでは無理という事でしょうか?

単純にmitmproxyと同じ事をrubyで実装したいのですが
その場合どのように行えば良いでしょうか?
0658デフォルトの名無しさん2015/02/07(土) 17:07:04.01ID:zogMm8qc
その場合、ProxyはHTTP Connectの実装だけあればいいので
HTTPとSocketを知っているなら数十行くらいで書けるでしょう

ProxyはConnectで指定されたホストではなく
解析用のホストに接続するようにする

解析用のホストで動くサーバーは普通にWebrickで書いていい
HTTPSを受け付けるようにし、証明書を設定しておくこと

ところで、これは素朴なMITM攻撃の手法であるから
普通のアプリなら証明書検証過程でエラーにされる
したがってmitmproxyで通信を解析できるのは
自分で証明書検証方法を指定できるもの(または検証していないもの)に限られる

Androidは検証漏れのあるアプリが多く
IPAから注意喚起が行われている
0659デフォルトの名無しさん2015/02/07(土) 20:50:36.17ID:tuovU1tZ
>>658
親切に教えて下さってありがとうございました。
どうにか実装したかったんですけど、自分のスキルでは
困難である事がよくわかりました。
0660デフォルトの名無しさん2015/02/09(月) 01:08:14.17ID:lI/ZsD+9
class Hoge
def == (other)
true
end
end

こんなクラスを作って

false == Hoge.new
-> false
Hoge.new == false true
->true

って右辺と左辺を取り替えて評価すると結果が違うんですが、イコールで
結んでいるのに結果が違うのは欠陥じゃないですかね?
0661デフォルトの名無しさん2015/02/09(月) 01:34:42.68ID:xK+TuziD
前者はFalseClass#==後者はHoge#==
結果が同じじゃなくて当たり前
foo(hoge)とhoge(foo)の結果が違うのは欠陥じゃないですかねって言ってるのと同じレベル
0662デフォルトの名無しさん2015/02/09(月) 01:48:07.63ID:nauiaCPK
> false == Hoge.new
> => false

メソッド False#==(other) は自身のクラス TrueClass と引数 other のクラス Hoge が
同値でないから、false を返している

> Hoge.new == false
> =>true

メソッド Hoge#==(other) は(引数 other が何であれ)常に false オブジェクトを
返すよう定義されている

どこにもおかしな振る舞いは見当たらないけど、
もしも「右辺と左辺を取り替えて評価しても結果が同じになる」ことを期待しているならば、
>>660 におけるクラス Hoge の定義が間違っている、と言うしかないね
06636622015/02/09(月) 01:49:40.94ID:nauiaCPK
訂正
X: メソッド False#==(other) は ....
O: メソッド FalseClass#==(other) は ....
06646622015/02/09(月) 01:52:57.92ID:nauiaCPK
訂正、もう一つ
X: .... 自身のクラス TrueClass と ....
O: .... 自身のクラス FalseClass と ....
0665デフォルトの名無しさん2015/02/09(月) 01:58:41.05ID:xK+TuziD
>>662
他にも訂正すべき箇所が2箇所あると思うんだがw
0666デフォルトの名無しさん2015/02/09(月) 14:21:07.56ID:AxVgErBe
日経リナックス3月号のMatzの連載では、
パイプ '|' のような記述で、
マルチスレッド並行処理を行う、
新言語streemを作っている。
ソースコードはgithubにある

libevent, libev, select, epoll
などの関数が出てくる

昨今、CPUのコア数が増えてきたから、
これからは、すべてのコアを使い切ることが求められる

ただし、排他処理に気を使うマルチスレッドよりも、
マルチプロセスの方が、間違いが少ないような気がする
0667デフォルトの名無しさん2015/02/09(月) 16:06:20.11ID:lErY/OJd
どうせRubyみたくすべてのコアを使い切っても他の言語より遅いんだろ
0668デフォルトの名無しさん2015/02/09(月) 17:15:32.39ID:cxy5oANg
そう腐るなよ
0669デフォルトの名無しさん2015/02/09(月) 21:00:23.45ID:sphOw1wN
s = [1,2,3,4,5]
に対し
=> [[1,2],[2,3],[3,4],[4,5]]
=> [[1,2,3],[2,3,4],[3,4,5]]
=> [[1,2,3,4],[2,3,4,5]]
を得るCoolなやつありませんか?
0670デフォルトの名無しさん2015/02/09(月) 21:04:43.91ID:NXlsRYy4
>>669
each_consをうまく使えばできるよ
一発じゃないけど
0671デフォルトの名無しさん2015/02/09(月) 21:13:06.96ID:sphOw1wN
>>670
それだ!ありがとう
0672デフォルトの名無しさん2015/02/10(火) 01:50:57.21ID:tIfgcH5I
複CPUのwindowsの場合、処理を両CPUに分散して、はやくなるようにする書き方って
あるのでしょうか。
タスクマネージャで見ているとexcel VBAだと、両CPUの負荷が同じように上がっているが、
ruby だと片CPUの負荷だけが上がり、もう片方はあまり働いていないようです。
0673デフォルトの名無しさん2015/02/10(火) 02:11:44.78ID:pMPiEmrc
>>672
VBA は COM で部品化されていてそれぞれ別プロセスだから
0674デフォルトの名無しさん2015/02/10(火) 02:33:56.95ID:tIfgcH5I
>>673
ありがとうございます
rubyだとダメなんだ
0675デフォルトの名無しさん2015/02/10(火) 07:03:23.97ID:w6L2FJ5J
そもそもCPUがボトルネックならJavaの百倍遅いのに
頑張ってコア使い切ったところでなあ
0676デフォルトの名無しさん2015/02/11(水) 02:04:55.42ID:hnLG61Dm
100倍は嘘だけどな、せいぜい10倍程度
それでもJavaは使いたくないと思わせるレベルではあるんだが
0677デフォルトの名無しさん2015/02/11(水) 02:54:42.43ID:TLA2PyrC
10倍は明らかに嘘
100倍の方が近い
0678デフォルトの名無しさん2015/02/11(水) 03:19:59.79ID:hnLG61Dm
>>677
じゃ、ベンチ出してみ
10倍の方が正しいのが分かるから
0679デフォルトの名無しさん2015/02/11(水) 03:22:36.75ID:TLA2PyrC
>>678
おまえが出せよ
ちゃんとCPUがボトルネックになっているやつな
0680デフォルトの名無しさん2015/02/11(水) 07:11:34.41ID:XzdqNrda
あと当然JavaにおいてもCPUがボトルネックになっていることが条件だぞ
そうでないとRubyのときの処理中にIO待ち時間が占めていた割合を測っているだけになってしまう
0681デフォルトの名無しさん2015/02/11(水) 09:49:50.21ID:00aeaMNo
マンデルブロ集合を描くベンチマークあたりがCPU使う系の典型
0682デフォルトの名無しさん2015/02/11(水) 10:05:25.00ID:7KIXpa8D
Rubyインタプリタの仕組みについての知識とプログラミングセンスが僅かでもあれば、
直感的に10倍は差が小さすぎると考えてベンチマークを疑うのが普通じゃないかな
0683デフォルトの名無しさん2015/02/11(水) 10:10:42.68ID:r3BddX0b
誰もベンチを張らずにグダグダのまま終わるに100Matz
0684デフォルトの名無しさん2015/02/11(水) 10:12:59.39ID:XzdqNrda
いやWebに上がってるベンチマークだと大抵100倍程度のオーダーになってるじゃん(もちろんCPUバウンド限定な)
10倍の根拠を示すのは>>678の方だ
0685デフォルトの名無しさん2015/02/11(水) 10:15:58.43ID:uxm1HOmW
どっちも信じられないから両方出してくれ

第三者
0686デフォルトの名無しさん2015/02/11(水) 10:30:31.62ID:HV6QGBu9
別に1万倍遅くてもいいぜ
速さが必要な用途にrubyを使った覚えはねえ

低能力者だけ何でもrubyで書いてろよ
0687デフォルトの名無しさん2015/02/11(水) 10:45:07.71ID:v2pXwonN
rubyなんて使っている時点で低能力
0688デフォルトの名無しさん2015/02/11(水) 11:31:06.51ID:x6JgCX17
特定のgemパッケージがインストールされているか調べる方法ありませんか?
gem list | grep パッケージ名
↑これ以外で
0689デフォルトの名無しさん2015/02/11(水) 11:43:03.82ID:HV6QGBu9
ちなみにそれは何で駄目なのか言えよ
提案した方法も同じ理由で駄目とか言われると萎えてチン子切り落としたくなる
0690デフォルトの名無しさん2015/02/11(水) 11:46:44.93ID:r3BddX0b
>>688
gem query -i PACKAGENAME
0691デフォルトの名無しさん2015/02/11(水) 11:56:30.28ID:x6JgCX17
>>689
スクリプトから使いたいからです
>>690
これです
0692デフォルトの名無しさん2015/02/11(水) 12:11:33.44ID:xHvIcpQa
インタラクティブシェル上でrequireでライブラリ名も補完できるものってありませんか?
irbとpryは出ません
0693デフォルトの名無しさん2015/02/11(水) 12:42:44.80ID:cDpEjOcI
str = "10:35快晴66子供12:44く曇り23中年13:20雨05幼児"

#p ary1 = str.slice(/\d\d:\d\d/)
ary2 = str.split(/\d\d:\d\d/)
ary3 = str.split(/(\d\d:\d\d)/)

#ary2.each { |e| p e }



時間を頼りに配列に分割したいのですが

10:35快晴66子供,
12:44曇り23中年,
13:20雨05幼児

どうも上手くいきません。 アドバイスをお願いします
0694デフォルトの名無しさん2015/02/11(水) 13:10:09.11ID:sK01Ui9b
puts ary = str.split(/(?=\d\d:\d\d)/)
0695デフォルトの名無しさん2015/02/11(水) 13:12:07.38ID:73gQVPeZ
str.split(/(?=\d\d:\d\d)/)
これじゃダメか?
0696デフォルトの名無しさん2015/02/11(水) 13:15:52.01ID:73gQVPeZ
すまん、かぶった
06976932015/02/11(水) 15:21:58.95ID:cDpEjOcI
早速の回答ありがとうございます
?=
に関して、資料を探してみてるのですが
正規表現なのでしょうか? それともsplitのオプションなのでしょうか?

一応、手元の資料、(楽しいruby、レシピブック)を参照してるのですが発見できず、
リファレンスをざっと眺めたのですが・・ 

合わせて参考になる図書を紹介して頂けると助かります。
正規表現の本を別途購入した方がよいのかな・・・ ruby関連の。
0698デフォルトの名無しさん2015/02/11(水) 15:32:08.71ID:u2Y4u6H8
>>662
>もしも「右辺と左辺を取り替えて評価しても結果が同じになる」ことを期待しているならば、

代入じゃないんだから、等号の前後で意味が変わるってのは間違いを呼び込みやすい
良くない仕様だと思う。
こういうのに違和感を感じない奴って数学的センスがないんだろうなあ、と思う。
0699デフォルトの名無しさん2015/02/11(水) 15:46:18.57ID:uxm1HOmW
>>697
Rubyにこだわらず正規表現の資料に当たるのがいいと思うよ
(?=〜)は肯定先読み
0700デフォルトの名無しさん2015/02/11(水) 15:52:52.72ID:73gQVPeZ
数学でもランダウ記号なんか扱ってると「=」の前後で意味が変わる
数学的センスとは一体……w
0701デフォルトの名無しさん2015/02/11(水) 15:54:49.91ID:r3BddX0b
>>697
横からだけどこれの「先読み、後読み」のところ
http://docs.ruby-lang.org/ja/2.1.0/doc/spec=2fregexp.html

詳説正規表現って本が定番で三章ぐらいまで読めば普段使いには十分
0702デフォルトの名無しさん2015/02/11(水) 15:55:06.55ID:73gQVPeZ
>>697
とりあえずこれ読んでおけば良いと思う
ttp://docs.ruby-lang.org/ja/2.2.0/doc/spec=2fregexp.html
0703デフォルトの名無しさん2015/02/11(水) 15:56:45.20ID:73gQVPeZ
すまん、かぶった
0704デフォルトの名無しさん2015/02/11(水) 16:01:09.99ID:sK01Ui9b
>>698
数学的に違和感があっても
Rubyの仕組み的に違和感がない(むしろ全てレシーバのメソッドで統一されてる)

Rubyは数学じゃなくてプログラミング言語だからそんなにおかしな仕様じゃないと思うけど
07056932015/02/11(水) 16:15:37.27ID:cDpEjOcI
URLのその欄を見落としていたようです。失礼しました。
早速読んでみましたが、何となくでしか理解できないので
紹介された書籍を今からポチってきます
皆さん、ありがとう
0706デフォルトの名無しさん2015/02/11(水) 16:25:36.31ID:PYSPfi0Q
ちょっとまってどうせ買うならおれのアフィリンクから買ってくれよ
0707デフォルトの名無しさん2015/02/11(水) 16:50:02.25ID:r3BddX0b
図書館(手遅れ)
0708デフォルトの名無しさん2015/02/11(水) 16:56:43.99ID:sDJf85Ja
>>698
∃f∃g s.t. ¬( o(f) = o(g) ⇔ o(g) = o(f) ).
と言おうとしたら既出だった
0709デフォルトの名無しさん2015/02/11(水) 17:03:48.99ID:X7wVt/Fu
肯定・否定先読みのためだけに、
「詳説正規表現」を買うのか?

漏れなんか、「たのしいRuby」で正規表現を覚えたけど、
ちょっと使うには十分だよ

それ以上のことは、2chの正規表現スレで、聞けばよい。
一々、買わなくてもよいだろう。
もし買うのなら、そいつのリンクから買ってやれ
0710デフォルトの名無しさん2015/02/11(水) 17:06:47.22ID:HV6QGBu9
最後の行だけ言いたかったんと違うか
0711デフォルトの名無しさん2015/02/11(水) 17:54:07.50ID:xOldc4y+
すみません、教えてください(ぐぐったけど分からず)
gem install mysql2
すると
ruby/thread.hが無い
と言われるのですが、
thread.hはどうすればインストールされるのでしょうか?

Debianのaptで
ruby
ruby-dev
は入ってます。(1.9.3)
0712デフォルトの名無しさん2015/02/11(水) 17:58:59.39ID:PYSPfi0Q
githubのmarkdownパーサって何てライブラリですか?
0713デフォルトの名無しさん2015/02/12(木) 07:46:08.52ID:9gMH9uw0
たぶんRedcarpet

>>711
https://github.com/brianmario/mysql2#linux-and-other-unixes
libmysqlclient-devかmysql-devel入れろって書いてあるけど入れた?
0714デフォルトの名無しさん2015/02/12(木) 12:03:09.39ID:gfPr4M9I
何で.newでクラス生成するのに def newって毎回定義しなくていいの?
クラスで定義したメソッドを.なんちゃらで呼び出せますってはずなのに
メソッド作ってもいないnewが使えてしまうのが謎
0715デフォルトの名無しさん2015/02/12(木) 12:11:42.06ID:oLOcoqWq
Class.new

Calls allocate to create a new object of
class's class, then invokes that object's
initialize method, passing it args.
This is the method that ends up getting called whenever
an object is constructed using .new.
0716デフォルトの名無しさん2015/02/12(木) 13:50:20.19ID:pmmZp4nI
z= if 3==4 then 1 else 2 end
puts z # →2
こんなことが出来るのを知った

いままでいちいち
if 3==4 then x=1 else x=2 end
puts x # →2
などとやっていた
0717デフォルトの名無しさん2015/02/12(木) 13:56:04.42ID:oLOcoqWq
それなら三項演算子「?:」を使うとよいよ。
a = 3 == 4 ? 1 : 2
0718デフォルトの名無しさん2015/02/12(木) 14:03:01.16ID:vZuNWRuz
whileやtapもbreakした値を返すので知っておくとごくまれに使うかも
0719デフォルトの名無しさん2015/02/12(木) 14:12:14.17ID:pmmZp4nI
>>717 >>718
ありがとうございます
知らないことアバカン(=多いの熊本語)
0720デフォルトの名無しさん2015/02/12(木) 16:27:53.76ID:qdUt/p4n
>>714
勝手にObjectクラスを継承するから、何も書いてなくてもObjectクラスのメソッドは使える
0721デフォルトの名無しさん2015/02/12(木) 21:01:46.12ID:ACguu+ql
たとえできてもやる奴はクソ
0722デフォルトの名無しさん2015/02/13(金) 00:21:20.42ID:qAadHGJa
>>716
Rubyではifも式だからね
たぶんLISP由来だろう
最近の言語ではScalaもそうだね
0723デフォルトの名無しさん2015/02/13(金) 00:21:39.71ID:CzCNKwo/
Loggerを使ってコンソールとログファイルに同時に出力したいのですが
何かいい方法はないでしょうか?
一応Shell::teeというのを見つけたのですがリファレンスマニュアルが
投げやりな感じで困っています・・・
0724デフォルトの名無しさん2015/02/13(金) 00:28:06.47ID:qAadHGJa
>>723
ログファイルに出しておいて、tail -F でコンソールで見ればいいんじゃない?
0725デフォルトの名無しさん2015/02/13(金) 01:20:51.80ID:SVZa3gOz
>>716(>>719)
if 式だけでなく、 case 式もある

color_num = case color
       when :blue; 0
       when :red; 1
       when :Yellow; 2
       else; -1

これらは「関数型プログラミング」と呼ばれるプログラミング・スタイルのひとつ
詳しくは、以下を参照:
・Rubyによる関数型プログラミング
 http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html

Ruby は「オブジェクト指向な手続き型スクリプト言語」であるけれど、
「関数型プログラミング」にも(他の手続き型言語と比較すれば)極めて適している性質がある
状況に応じて、常識的な「手続き型プログラミング」と簡潔な「関数型プログラミング」とを
自在に使い分けることができるようになることが望ましい
0726デフォルトの名無しさん2015/02/13(金) 02:16:33.14ID:Hocs4IwU
Effective Ruby買ったけどいいね。
このスレみているような人は必読の良書だった。
0727デフォルトの名無しさん2015/02/13(金) 05:54:31.12ID:3tmdVICO
>>725
個人的に一行whenの場合、文の前はthenだな
何つーか、汎用的な文区切りになっちゃうセミコロンより
whenの一部である以上そうとしか解釈されないthenのが安心感あるというか
…まあ、どうせ複数行whenのときはthen書かずに改行しちゃうから同じっちゃ同じか
0728デフォルトの名無しさん2015/02/13(金) 13:42:31.60ID:W6lKBquT
>>725
caseが値を返すのは関数型で必要とされることの多い性質ではあるけど
それ自体は別に関数型でも何でもないぞ
0729デフォルトの名無しさん2015/02/13(金) 23:29:34.48ID:v7o1vyZw
なんでもかんでも式になってる言語はどう整形するか悩むんだよな。
0730デフォルトの名無しさん2015/02/13(金) 23:35:16.88ID:qAadHGJa
>>729
いっそのことLISPぐらいまでいってしまえば、整形はあまり悩まなくてすむのになw
emacs lisp はたまに書くが、整形で悩んだことはほぼない
0731デフォルトの名無しさん2015/02/14(土) 00:12:54.67ID:/i+i2oPj
LISP書きはどうやって括弧の数を間違えずに書くのか
07326932015/02/14(土) 00:27:23.04ID:ng5YU6yI
ぶっちゃけRuby技術者認定試験 て実際どの程度のものなんでしょうか?

趣味の範疇でruby始めたのですが、
独学の悪いくせで好きなものしかやらない・・・ し覚えない・・。 
そこで全体的な知識不足の指標となるかな?
この試験も目指してみようかなと思い立ったしだいです。

別のruby参考資料を買おうか、こっちにしようか悩み中
0733デフォルトの名無しさん2015/02/14(土) 01:07:33.88ID:ISQup94G
やめとけ
広く知識を身につけたいなら基本情報にでも挑戦したほうがRubyプログラミングにおいてもよっぽど役に立つし
Rubyを「使う」スキルが欲しいならRailsでWebサービスでも運営すれば嫌でも身に付く
言語の重箱の隅をつつくのは時間の無駄
0734デフォルトの名無しさん2015/02/14(土) 01:37:38.64ID:4ueOEeTW
特定の言語を自在に使えるようになりたいなら、
変に思えるかもしれないけど他の言語を2つくらい覚えるといいよ
言語の違いなんて大したことではないというのが理解できるとすごく視野が広がる
あんまり特定の言語に執着しないほうがいい
0735デフォルトの名無しさん2015/02/14(土) 10:04:33.41ID:3EPsJ3bR
>>731
エディタの対括弧表示見てりゃ間違えないよ
と言うか、括弧を足したり削ったりするときは
現在カーソル位置でなくてそっち見てるかも
0736デフォルトの名無しさん2015/02/14(土) 13:40:26.34ID:dTMvU3xT
>>728
Rubyのcaseはパターンマッチ(正規表現じゃないぞ)が使えないから、
関数型としては全くもって不足
0737デフォルトの名無しさん2015/02/14(土) 15:28:57.41ID:15MsuvIH
複数の変数を同時にできないだけでパターンマッチはできるでしょう
まあ複数できないことが大きな差かもしれんが
0738デフォルトの名無しさん2015/02/15(日) 10:28:43.99ID:SklWaN/q
Rubyらしい書き方として参考になるライブラリをご存知の方
教えていただけると助かります。
0739デフォルトの名無しさん2015/02/15(日) 10:46:38.75ID:ABT28a22
nokogiriとかああいう普通なのがいいんじゃない
DSLガ〜とかメタプログラミングが〜とか言ってるのは真似しないほうがいい
元々そんな変態言語ではない
0740デフォルトの名無しさん2015/02/15(日) 11:28:16.40ID:SklWaN/q
>>739
ありがとうございます。
Nokogiri読みやすそうなので参考になりそうです。
0741デフォルトの名無しさん2015/02/15(日) 12:50:33.82ID:wv9Dnfvm
>>711
正解でした、ありがとう。
なにしろRubyは始めたばかりで、ドキュメントの在り処も手探りなんですワ。
0742デフォルトの名無しさん2015/02/16(月) 03:56:38.95ID:Zn9bWbFW
Rubyのしくみ、2014

年末に出た外人の翻訳本で、
Rubyの実装系、Ruby1.9のRuby仮想マシンの本。
内容は新しく、Ruby2.0のキーワード引数まで含む

RubyVMは、笹田という日本人が作っていたんだね


2 + 3
2が主体となる数値オブジェクト(レシーバ)
'+'がそのオブジェクトのメソッド
3がそのメソッドの引数

左がオブジェクトで、演算子の左右で、意味が違うんだね。
つまり、関数の糖衣構文

(A + B + C + D).to_s
漏れが、あればよい機能と思うのは、
型の異なるオブジェクトを、幾つかつなげて、
簡単に文字列に変換できるもの
0743デフォルトの名無しさん2015/02/16(月) 04:44:23.59ID:cj2/WV/R
gemをオフラインでインストールしたいのですが、
ダウンロードしたフォルダに.rbばかりで.gemが入っていない場合、
どうすればよいですか?
0744デフォルトの名無しさん2015/02/16(月) 07:44:02.00ID:2rxNb6Sn
>>742
>(A + B + C + D).to_s
>漏れが、あればよい機能と思うのは、
>型の異なるオブジェクトを、幾つかつなげて、
>簡単に文字列に変換できるもの

'%s%s%s%s' % [A, B, C, D]
"#{A}#{B}#{C}#{D}"
0745デフォルトの名無しさん2015/02/16(月) 21:06:14.75ID:/Le2iIgb
>>732
せめて、OracleとLPICにしとけ
07466932015/02/16(月) 23:10:02.23ID:aIhcyWTg
正規表現の自習をしてるのですが
それなりに書けるようになってきたのに、以前として読みが厳しい・・・
自分で書いた正規表現も数日立つと・・読めないこともあったり
なにかコツありますか? 演算子の優先順位みたいなコツあるのかしら
0747デフォルトの名無しさん2015/02/16(月) 23:25:17.19ID:GiwwQ3NF
>>746
フクロウ本ポチったんじゃなかったのか
0748デフォルトの名無しさん2015/02/16(月) 23:32:23.50ID:bsos2N+l
コメント入れればいいんでない
07496932015/02/16(月) 23:34:38.96ID:aIhcyWTg
その節はお世話になりました。
ふくろうはちょっと重い(書きぶり)ので
別冊のドリル解きながらふくろうチラ見してる段階です。
0750デフォルトの名無しさん2015/02/17(火) 00:02:23.67ID:K0RsylMY
自分がつまずいた表現をその都度復習していけば違い将来きちんと読み解くことができるようになると思いますよ。
0751デフォルトの名無しさん2015/02/17(火) 01:22:40.02ID:Jv+uJpkb
>>742
[A, B, C, D].join
0752デフォルトの名無しさん2015/02/18(水) 09:40:42.56ID:49+iv0Kk
SASS専門スレが見当たらなかったのでここで質問させてください。
Windowsでsassをコンパイルすると、"\f012"のような文字を収めた変数が文字化けしたようになります。
変数を使用せずに直接スタイルに記述するとちゃんと"\f012"と出力されます。
私の環境のせいかもしれませんが、バックスラッシュがある文字に原因があるように思えます。
これを解消したいのですが、どうしたら良いでしょうか?
Rubyは1.9.3を使っています。


-- test.ssss
$test : "\f012";
.test {
content : $test;
}

-- compile.bat
set LANG=ja_JP.utf8
cmd /c C:\Ruby193\bin\sass %SCSS%\test.scss:%CSS%\test.css --style compressed --sourcemap=none

出力結果 => .test{content:"?"}   // ←これを content:"\f012" としたい
0753デフォルトの名無しさん2015/02/18(水) 15:17:15.21ID:KMXsePc+
>>752
https://github.com/sass/sass/issues/1395
unquoteを使えばいいらしい

$test1 : \f012;
$test2 : unquote(\f012);
$test11 : unquote('"') + \f012 + '"';
$test22 : unquote('"') + unquote(\f012) + '"';
.test {
content : "\f012";
content : unquote('"') + $test1 + '"';
content : unquote('"') + $test2 + '"';
content : $test11;
content : $test22;
}


文字化けの原因は
$test : "\f012"
をutf16leと解釈されるからみたい
たまらなんなこりゃ
0754デフォルトの名無しさん2015/02/18(水) 18:49:22.02ID:49+iv0Kk
>>753
ありがとうございます!
色々と試行錯誤してたのですが解決できなくて泣きそうでした。
無事に解決できました、本当に感謝です!
0755デフォルトの名無しさん2015/02/19(木) 02:24:04.45ID:lDFiAK4+
" ダブルクォートだと、#{}, \ などのメタ文字が、
特別に解釈されるんでしょ?

' シングルクォートか、ヒアドキュメントを使えば?
■ このスレッドは過去ログ倉庫に格納されています