LoginSignup
0
1

More than 5 years have passed since last update.

Ruby勉強しているので備忘録

Last updated at Posted at 2017-09-19

継続的にAPIを叩くシステムを作るために
node.jsとかPythonとか悩んだけども、
Wikipediaとか
人気プログラミング言語の記事とか、
処理速度がどーだのって動画を見たりとか、
色々考えたけど、
書いてて楽しいって重要だよなと思ってRubyを使うことにしました。
元々Github pagesでJekyll使うためにインストールしてたのもある。

TL;DR

とりあえず導入は済んでるので
書く→実行→書く→書く→(ループ)
とやってるところもあるので長いです。

環境

  • XUbuntu 16.04
  • ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]

対象読者

  • Rubyインストールしたけど何するか決めてない方
  • Rubyマスターの方の暇つぶしになれば(希望)

1 安定と安心と信頼の”Hello world” 

% mkdir work_rb
% cd work_rb
% vi hello.rb

# 普通に出力させるだけならこれでいい
print "Hello world"

Hello world

# 改行付はputsを使う 通常はこちらが多そう
puts "Hello world"

2 変数を使う 

いくつか種類があるけど
いつものように書けば良さそうでした。

msg = "Hello world"
puts msg

Hello world

3 条件分岐

one = 1
two = 2
if one == 1
    puts "ONE"
elsif two == 2
    puts "TWO"
end

ONE
TWO

本当はthenを記述する方が丁寧なのでしょうが、
十分読めますからね。
あと、評価式のイコール1つにしてしまって5秒くらい思考停止しました。
いつものことです。

4 繰り返し文

month = 1
while month <= 12 do
  puts month.to_s + '月: ' + ( (month <= 3) ? 'まだお年玉ある' : 'もう使っちゃった!' )
  month = month + 1;
end

1月: まだお年玉ある
2月: まだお年玉ある
3月: まだお年玉ある
4月: もう使っちゃった!
5月: もう使っちゃった!
6月: もう使っちゃった!
7月: もう使っちゃった!
8月: もう使っちゃった!
9月: もう使っちゃった!
10月: もう使っちゃった!
11月: もう使っちゃった!
12月: もう使っちゃった!

for文使うこと少ないのかーって読んでて勝手にfmfmしてました。

 5 〇秒ごとに実行

今回作りたいものは指定秒数ごとに実行してくれるものなので

# 指定したsecごとに処理を実行する
def execute_each_sec(sleep_sec)
  yield
  sleep sleep_sec
end

5.times do
  execute_each_sec(1) do ||
    puts "実行時間:#{Time.now}"
  end
end

実行時間:2012-06-24 23:45:40 +0900
実行時間:2012-06-24 23:45:41 +0900
実行時間:2012-06-24 23:45:42 +0900
実行時間:2012-06-24 23:45:43 +0900
実行時間:2012-06-24 23:45:44 +0900

出力結果そのものはまったく問題無いんですが、
個人的には yieldというのが謎でした。

要は可読性を配慮した体の良いevalのようなものと捉えてしまいました。
ブロックそのものを引数にして渡せるってなかなかユニークだなあと、
勉強になりました。

今回はここまで

この記事書いてて知ったんですが

とても読みやすい参考サイトがありました。
良かったらどうぞ。

これからどうするか

あとはAPIを叩いてそのレスポンスを整形して
定期的に実行させるプログラムを書いていこうと思ってます。
Rubygemという便利なパッケージ管理システムがありますからね、
雰囲気でなんとかなるでしょう。

あとがき

最近になってクエリパラメータが
http://hoge.fuga ?text=foo
の太文字の部分のことだと知りました。
そんな私でも元気にやってます。
それでは。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1