【Ruby】IO・File
このあたりはいろいろ使いそうなので。。。。
◆jleague.txt
鹿島アントラーズ
浦和レッズ
ガンバ大阪
川崎フロンターレ
アルビレックス新潟
清水エスパルス
横浜・Fマリノス
サガン鳥栖
ベガルタ仙台
こちらのファイルを使います。
(1)IO#readを使うパターン
①ソース(file_read.rb)
File.open 'jleague.txt' do |file|
puts file.read
end
②実行結果
# ruby file_read.rb
鹿島アントラーズ
浦和レッズ
ガンバ大阪
川崎フロンターレ
アルビレックス新潟
清水エスパルス
横浜・Fマリノス
サガン鳥栖
ベガルタ仙台
ファイルの内容をすべて読み込んで一気に出力するパターンです。
あんまり実務では使わなさそう。。。。
(2)IO#getsを使うパターン
①ソース(file_gets.rb)
File.open 'jleague.txt' do |f|
while line = f.gets
puts line
end
end
②実行結果
# ruby file_gets.rb
鹿島アントラーズ
浦和レッズ
ガンバ大阪
川崎フロンターレ
アルビレックス新潟
清水エスパルス
横浜・Fマリノス
サガン鳥栖
ベガルタ仙台
こっちは1行ずつ読み込んで出力するパターンです。
こっちのほうが使いそうですね。
(3)IO#each_lineを使うパターン
①ソース(file_eatch_line.rb)
File.open 'jleague.txt' do |f|
f.each_line do |line|
puts line
end
end
②実行結果
# ruby file_gets.rb
鹿島アントラーズ
浦和レッズ
ガンバ大阪
川崎フロンターレ
アルビレックス新潟
清水エスパルス
横浜・Fマリノス
サガン鳥栖
ベガルタ仙台
IO#getsと同じ感じですね。
IO#getsとIO#each_lineだとどっちを使ったほうがいいのだろう??
【Ruby】モジュール
モジュールに関してはまだ完全に理解できてない感じです。。。。^^;
module Walkable
def walk
puts "歩く"
end
end
class Cat
include Walkable
end
class Dog
include Walkable
end
Cat.new.walk ⇒「歩く」と表示
Dog.new.walk ⇒「歩く」と表示
こんな感じでincludeさせることによってクラスのインスタントメゾットして使うことができます。
勉強中なのでまた追記します。。。。
【Ruby】クラス
基本的な書き方はこんな感じ
(1)クラスの初期化
initializeメゾットを利用します
class MyClass
def initialize
puts 'Initialize'
end
end
obj = MyClass.new ⇒「Initialize」と表示
これはオブジェクト指向をかじっていればおなじみのって感じですかね
(2)インスタンスメゾット
class MyClass
attr_accessor :number ⇒インスタンス変数を操作するために「attr_accessor」を定義
obj = MyClass.new
puts obj.hoge ⇒「hoge」と表示
obj.number = 100
puts obj.number ⇒「100」と表示
attr_accessorのようなものはPerlやPHPにはなかった(ような気がするので)のでちょっと慣れない感じです。。。
(3)クラスメゾット
クラスメゾットの場合は「self.[メゾット名]」になるみたいです。
素朴な疑問でこれを使うケースってどんなケースなんだろう??
インスタンスメゾットでやってしまってもいいような気も。。。。
こんな書き方もできるみたいです。
この書き方は特異クラスと言うみたいで、クラスメゾットをまとめて書けて、ネストすることでインスタンスメゾットとの区別がしやすいというメリットがあるらしいです。
ただ自分はまだこの書き方のメリットが理解できてません(笑)
(4)クラスの継承
class Car
def put_class
puts 'Car'
end
end
class WagonR < Car
end
puts WagonR.superclass ⇒「Car」と表示
obj = WagonR.new
obj.put_class ⇒「Car」と表示
「class SubClass < SuperClass」とすればよいみたいです
【Ruby】変数、定数
Ruby勉強中なのでいろいろまとめていこうと思ってます。
(1)ローカル変数
ローカルなスコープでのみ有効な関数です。
小文字またはアンダーバーで始める変数です。
hoge = 'saosao'
def display_saosao
puts hoge ⇒「undefined local variable or method」でエラー
end
puts hoge ⇒「saosao」と表示される
display_saosao
(2)インスタンス変数
インスタンスの中だけで参照できる変数をインスタンス変数と言います。「@」から始まる変数です。
class MyClass
def setName(str)
@name = str
end
def getName()
return @name
end
end
obj1 = MyClass.new()
obj2 = MyClass.new()
obj1.setName("Saosao1")
obj2.setName("Saosao2")
puts obj1.getName() ⇒「saosao1」と表示される
puts obj2.getName() ⇒「saosao2」と表示される
インスタンス変数を外部からアクセスできるようにするにはattr_accessorを利用します。
class MyClass
attr_accessor :hoge
end
obj = MyClass.new()
obj.hoge = 'saosao'
puts obj.hoge ⇒「saosao」と表示される
PerlやPHPでオブジェクト指向のプログラムは組んでいたのですが、attr_accessorのような記述はなかったので、理解しにくい。。。。^^;
(3)クラス変数
同じクラスの全てのインスタンスで一意となる変数です。「@@」から始まる変数です。
class MyClass
def setName(str)
@@name = str
end
def getName()
return @@name
end
end
obj1 = MyClass.new()
obj2 = MyClass.new()
obj1.setName("Saosao")
puts obj1.getName() ⇒「Saosao」と表示
puts obj2.getName() ⇒「Saosao」と表示
(4)グローバル変数
どこからでも参照・変更できる変数です。「$」から始まる変数です。
あまり使うことはないですかね。。。。
(5)定数
変化しない値です。大文字アルファベットで始まる必要があります。
Ruby関連リンク集
vagrant+Ruby on rails環境でブラウザからアクセスする
これすっごくハマりました^^;
ググっていろいろ探してみたらこちらのサイトが!!
Vagrant で Ruby on Rails 4 の環境構築 - Qiita
こちらを参考にやってみる。
(1)Vagrantfile修正
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3000, host: 3000
⇒Railsで使用するポートをフォワードさせてあげる設定を追加
(2)Vagrant再起動
> vagrant reload
(3)Railsを起動
# rails server -b 0.0.0.0
=> Booting WEBrick
=> Rails 4.2.6 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-04-17 07:10:40] INFO WEBrick 1.3.1
[2016-04-17 07:10:40] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux]
[2016-04-17 07:10:40] INFO WEBrick::HTTPServer#start: pid=2436 port=3000
⇒ここがポイントです!!
どうやら 、Rails 4.2からデフォルトのホストが0.0.0.0からlocalhostに変更されたみたいです。
(4)ブラウザでhttp://localhost:3000にアクセス
⇒うまくいきました!!!
マニュアルをちゃんと読めってことですね。。。。。^^;
CentOS6.7にRuby on railsをインストール
【前提条件】
◆git、rbenv、ruby-build、ruby(2.3.0)がインストールされている
⇒Railsのインストール方法はこちらで大丈夫でした
◆sqlite、sqlite-develがインストールされている
(1)gemでsqlite3インストール
# gem install sqlite3
(2)railsインストール
# gem install rails
(3)バージョン確認
(4)とりあえず動かしてみる
# rails new app
# cd app
# rails server
=> Booting WEBrick
=> Rails 4.2.6 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-04-16 16:40:04] INFO WEBrick 1.3.1
[2016-04-16 16:40:04] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux]
[2016-04-16 16:40:04] INFO WEBrick::HTTPServer#start: pid=14189 port=3000
⇒立ち上がったっぽいです
(5)実際にアクセスしてみる
<!DOCTYPE html>
<html>
<head>
<title>Ruby on Rails: Welcome aboard</title>
・
・
⇒とりあえず大丈夫っぽいです
Vagrantの環境で画面を確認するのはどうしたらいいのだろう。。。