【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の環境で画面を確認するのはどうしたらいいのだろう。。。
RHEL6にruby2.3.0をインストール
https://github.com/rbenv/rbenv#installation
こちらを参考にしました。
事前に以下のパッケージのインストールが必要です。
openssl-devel readline-devel zlib-devel
(1)gitインストール
# yum install git
(2)rbenvインストール
①gitからチェックアウト
# git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Initialized empty Git repository in /root/.rbenv/.git/
remote: Counting objects: 2495, done.
remote: Total 2495 (delta 0), reused 0 (delta 0), pack-reused 2495
Receiving objects: 100% (2495/2495), 455.13 KiB | 163 KiB/s, done.
Resolving deltas: 100% (1543/1543), done.
# cd ~/.rbenv && src/configure && make -C src
make: ディレクトリ `/root/.rbenv/src' に入ります
gcc -fPIC -c -o realpath.o realpath.c
gcc -shared -Wl,-soname,../libexec/rbenv-realpath.dylib -o ../libexec/rbenv-realpath.dylib realpath.o
make: ディレクトリ `/root/.rbenv/src' から出ます
③パスを通す
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
④ログインし直し
⑤確認
# type rbenv
rbenv is /root/.rbenv/bin/rbenv
(3)ruby-buildインストール
# git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Initialized empty Git repository in /root/.rbenv/plugins/ruby-build/.git/
remote: Counting objects: 6028, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 6028 (delta 0), reused 0 (delta 0), pack-reused 6022
Receiving objects: 100% (6028/6028), 1.16 MiB | 479 KiB/s, done.
Resolving deltas: 100% (3418/3418), done.
(4)rubyインストール
①インストール
# rbenv install 2.3.0
Downloading ruby-2.3.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
Installing ruby-2.3.0...
Installed ruby-2.3.0 to /root/.rbenv/versions/2.3.0
②環境全体でのRubyバージョンの指定
# rbenv global 2.3.0
⇒これをやらないとruby実行時にエラーになっちゃいます。。。。
③パスを通す
# echo 'export PATH="$HOME/.rbenv/shims/:$PATH"' >> ~/.bash_profile
④ログインし直し
⑤バージョン確認
(5)お決まりのhello,world
①hello.rb作成
puts "hello,world"
②実行してみる
# ruby hello.rb
hello,world