プログラミング未経験者の学習日記

私が学習した内容のまとめサイトです。

【Ruby入門】数値オブジェクトを使おう!

 

 数値に関するオブジェクト

「32」や「4.8」など整数や浮動小数点数のことを数値といいます。

 

クラスを調べる方法

Rubyでは下記のように「*.class」と書くとどのクラスに属しているか調べることができます。

p 32.class

p 4.8.class

実行結果は下記となります。「32」は数値オブジェクトの「Fixnum」クラス、「4.8は」数値オブジェクトの「Float」クラスに属していることがわかります。

Fixnum

Float

メソッドを調べる方法

Rubyでは下記のように「*.methods」と書くとどんなメソッドを持っているか調べることができます。

p 32.methods

p 4.8.methods

 実行結果は下記となります。(記号も含まれていますがこれらもメソッドです。)

[:%, :&, :*, :+, :-, :/, :<, :>, :^, :|, :~, :-@, :**, :<=>, :<<, :>>, :<=, :>=, :==, :===, :[], :inspect, :size, :succ, :to_s, :to_f, :div, :divmod, :fdiv, :modulo, :abs, :magnitude, :zero?, :odd?, :even?, :bit_length, :to_int, :to_i, :next, :upto, :chr, :ord, :integer?, :floor, :ceil, :round, :truncate, :downto, :times, :pred, :to_r, :numerator, :denominator, :rationalize, :gcd, :lcm, :gcdlcm, :+@, :eql?, :singleton_method_added, :coerce, :i, :remainder, :real?, :nonzero?, :step, :positive?, :negative?, :quo, :arg, :rectangular, :rect, :polar, :real, :imaginary, :imag, :abs2, :angle, :phase, :conjugate, :conj, :to_c, :between?, :instance_of?, :public_send, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :remove_instance_variable, :private_methods, :kind_of?, :instance_variables, :tap, :define_singleton_method, :is_a?, :singleton_method, :extend, :to_enum, :enum_for, :=~, :!~, :respond_to?, :freeze, :display, :object_id, :send, :method, :public_method, :nil?, :hash, :class, :singleton_class, :clone, :dup, :itself, :taint, :tainted?, :untaint, :untrust, :trust, :untrusted?, :methods, :protected_methods, :frozen?, :public_methods, :singleton_methods, :!, :!=, :__send__, :equal?, :instance_eval, :instance_exec, :__id__]

[:%, :*, :+, :-, :/, :<, :>, :-@, :**, :<=>, :<=, :>=, :==, :===, :eql?, :inspect, :to_int, :to_s, :to_i, :to_f, :hash, :coerce, :divmod, :fdiv, :modulo, :abs, :magnitude, :zero?, :floor, :ceil, :round, :truncate, :positive?, :negative?, :quo, :nan?, :infinite?, :finite?, :next_float, :prev_float, :to_r, :numerator, :denominator, :rationalize, :arg, :angle, :phase, :+@, :singleton_method_added, :div, :i, :remainder, :real?, :integer?, :nonzero?, :step, :rectangular, :rect, :polar, :real, :imaginary, :imag, :abs2, :conjugate, :conj, :to_c, :between?, :instance_of?, :public_send, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :remove_instance_variable, :private_methods, :kind_of?, :instance_variables, :tap, :define_singleton_method, :is_a?, :singleton_method, :extend, :to_enum, :enum_for, :=~, :!~, :respond_to?, :freeze, :display, :object_id, :send, :method, :public_method, :nil?, :class, :singleton_class, :clone, :dup, :itself, :taint, :tainted?, :untaint, :untrust, :trust, :untrusted?, :methods, :protected_methods, :frozen?, :public_methods, :singleton_methods, :!, :!=, :__send__, :equal?, :instance_eval, :instance_exec, :__id__]

四則演算

四則演算は下記となります。

p 10 + 3   #足算。結果は13。
p 10 - 3 #引算。結果は7。
p 10 * 3 #掛算。結果は30。
p 10 ** 3  #乗算。結果は1000。
p 10 / 3 #割算。結果は3(小数点以下の計算されない)
p 10.0 / 3.0 #割算。結果は3.33・・・(小数点以下も計算されます)
p 10 % 3  #余りを求める。結果は1。

Rubyでは分数の計算も可能で Rationalというものを使用します。

p Rational(2,5) + Rational(3,4)  #分数の計算はRational()を使用。
p 2/5r + 3/4r          #Rational()の省略型。

四捨五入/切捨て

Floatクラスは四捨五入や小数点以下の切り上げ切り捨てができます。

p 52.5.round #四捨五入。結果は53。
p 52.5.floor   #小数点以下切り捨て。結果は52。
p 52.5.ceil  #小数点以下切り上げ。結果は53。

【Ruby入門】変数と定数について

 

 

1.変数とは?

データにつけるラベルで複雑なデータにわかりやすい名前を付けたり使い回しをしたりすることができるものです。

2.変数のルール

「アンダーバー」か「英子文字」から始めないといけない。

・「=」でデータを割り当てることができます。

・何回でも値を割り当てを行うことが可能です。

●例文

msg = "Hello world"
puts msg
msg = "Hello world again"
puts msg 

ruby hello.rbコマンド実行結果

Hello world
Hello world again

3.定数とは?

変数とは逆で書き換え不可能で定数の内容は変化しないもの。というのが他のプログラミング言語での定数です。ただし、Rubyでは一度定義した定数に再び代入を行おうとすると"警告が発生するものの、警告の後も動作は止まらず値は変わります。

4.定数のルール

英大文字から始める必要があります。(すべて大文字にするのが一般的な模様)

●例文

TOWN = "TOKYO"

puts TOWN

TOWN = "OSAKA"

puts TOWN

ruby hello.rbコマンド実行結果

TOKYO
hello.rb:5: warning: already initialized constant TOWN
hello.rb:1: warning: previous definition of TOWN was here
OSAKA

警告が表示されるがそこで処理が止まるわけではなく値が書き換わって表示されます。

【Ruby入門】Rubyとは?

 

 f:id:DAI_KONDO:20181103224523j:plain

Rubyとは?

まつもとゆきひろ(通称 Matz)さんにより開発されたオブジェクト指向スクリプト言語です。

公式サイト

https://www.ruby-lang.org/ja/

インストール方法

公式サイトのダウンロードページに各OSごとのインストール方法が記載されています。

https://www.ruby-lang.org/ja/downloads/

本ブログでは下記の手順で構築したローカル開発環境でRubyを実行しています。

dai-kondo.hatenablog.com

プログラムの実行

Rubyのプログラムファイルは「*.rb」という拡張子となります。

コマンドプロンプトを起動してrubyコマンドを実行します。

ruby hello.rb

コメント

1行コメントは「#コメント」、複数行コメントは「#begin~#end」

ソースコード

print "Hello world"
puts "Hello world"
p "Hello world"

rubyコマンド実行結果

Hello worldHello world
"Hello world"

printコマンド:渡したオブジェクトや文字列を出力(改行なし)する命令です。

puts:渡したオブジェクトや文字列を出力(改行あり)する命令です。

p:print, putsと同様に渡したオブジェクトや文字列を出力しますが構造がわかりやすいように出力されます。上記例だと「"」が表示されており文字列であることがわかりやすいよう出力されています。

 

【ローカル開発環境】ローカル開発環境の起動方法

Vagrant起動

(1)コマンドプロンプト(もしくはPowerShell)を起動する。

(2)下記コマンドを入力します。

①cd Myvagrant

②cd MyCentOS

vagrant up

(3)下記画面が表示されて起動します。

f:id:DAI_KONDO:20181103133236p:plain

PuTTY起動

(1)すべてのプログラムメニューやショートカットからPuTTYを起動

f:id:DAI_KONDO:20181103132804p:plain

(2)「MyCentOS」を選択して[Open]を押下します。

f:id:DAI_KONDO:20181103132905p:plain

(3)ユーザ名とパスワードを入力します。(両方とも「vagrant」)

f:id:DAI_KONDO:20181103132959p:plain

(4)PuTTYが起動します。

f:id:DAI_KONDO:20181103133132p:plain

Cyberduck起動

(1)すべてのプログラムメニューやショートカットからCyberduckを起動

f:id:DAI_KONDO:20181103133419p:plain

(2)ブックマーク登録している「MyCentOS」を起動します。

f:id:DAI_KONDO:20181103133449p:plain

(3)下記画面が表示されたら起動完了です。

f:id:DAI_KONDO:20181103133537p:plain

【ローカル開発環境】ローカル開発環境を構築しよう!

dotinstallの「ローカル開発環境の構築(Windows編)」を参考にローカル開発環境を構築してみました。

https://dotinstall.com/lessons/basic_localdev_win_v2

スムーズにいって半日もしくは1日かかる可能性があるため、時間に余裕のある時に構築したほうがいいです。

事前準備

仮想化機能を有効にするためのBIOS設定を確認してから構築したほうがよいです。仮想化機能が無効になっていた場合、構築の途中でエラーが発生します。このエラーが表示されるのにも相当の時間がかかりますので先にBIOS設定を確認して仮想化機能が有効になっているのを確認してから実行してみてください。

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.

なお、Intel系製品かAMD系製品により設定箇所が異なりますので自分のPCの設定箇所を調べてから設定の確認/変更をお願いします。

Intel系製品

Advanced > CPU Configuration > Execute Disable Bit > [Enabled]
Advanced > CPU Configuration > Intel(R) VirtualizationTechnology > [Enabled]

AMD系製品

Advanced > CPU Configuration > SVM > [Enabled]

1.VirtualBoxインストール

(1)下記サイトからOracle VM VirtualBoxをダウンロードする。

●URL

https://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp#vbox

(2)インストーラーをダブルクリックする。

(3)「Next」ボタンを押す。

f:id:DAI_KONDO:20181101214551p:plain

(4)「Next」ボタンを押す。

f:id:DAI_KONDO:20181101214647p:plain

(5)4つのチェックのうち上の3つのチェックを外して「Next」ボタンを押す。

f:id:DAI_KONDO:20181101214732p:plain

(6)「Yes」ボタンを押す。

f:id:DAI_KONDO:20181101214852p:plain

(7)「Install」ボタンを押す。

f:id:DAI_KONDO:20181101214941p:plain

(8)インストールが始まります。

※ユーザアカウント制御画面が表示されタ場合は[はい]をクリックする。

※下記の画面が表示された場合は「インストール」をクリックする。

f:id:DAI_KONDO:20181101215128p:plain

(9)下記画面が表示されたらチェックを外して[Finish]ボタンを押します。

f:id:DAI_KONDO:20181101215322p:plain

2.Vagrantのインストール

(1)Vagrantサイトのダウンロードページを開く。

www.vagrantup.com

(2)Windows版をダウンロードする。

(3)インストーラを実行する。

(4)下記画面が表示されたら[Next]ボタンを押す。

f:id:DAI_KONDO:20181101220229p:plain

(5)「I accepst the~」にチェックを入れて[Next]ボタンを押す。

f:id:DAI_KONDO:20181101220349p:plain

(6)下記画面が表示されたら[Next]ボタンを押す。

f:id:DAI_KONDO:20181101220505p:plain

(7)下記画面が表示されたら[Install]ボタンを押す。

f:id:DAI_KONDO:20181101220535p:plain

(8)ユーザアカウント制御画面が表示されるので[はい]をクリックする。

   (インストールに時間がかかります。)

(9)下記画面が表示されたら[Finish]ボタンを押します。

f:id:DAI_KONDO:20181101221422p:plain

(10)PCの再起動を求められますので「Yes」を押します。

f:id:DAI_KONDO:20181101221554p:plain

3.仮想マシンの設定・起動

(1)コマンドプロンプトもしくはPowershellを起動する。

(2)今後複数の仮想マシンを作ることを想定して、それらをまとめるフォルダ(MyVagrant)を作成する。

mkdir MyVagrant

(3) MyVagrantに移動する

cd MyVagrant

(4)仮想マシンを作るフォルダを作る(MyCentOS)

mkdir MyCentOS

(5)MyCentOSに移動する

cd MyCentOS

(6)仮想マシン設定用のVagrantfileを作る

vagrant init bento/centos-6.8

(7) Vagrantfileを編集して仮想マシンIPアドレスを192.168.33.10にする

config.vm.network "private_network", ip: "192.168.33.10"

(8)仮想マシンを起動する(少し時間かかります)

vagrant up

(9)仮想マシンの状態を確認する

vagrant status

4.Puttyをインストールする。

(1)Puttyダウンロードサイトからインストーラをダウンロードする。

Download PuTTY: latest release (0.70)

 (2)[Next]ボタンを押します。

f:id:DAI_KONDO:20181101230359p:plain

(3)[Next]ボタンを押します。

f:id:DAI_KONDO:20181101230439p:plain

(4)[Install]ボタンを押す。

f:id:DAI_KONDO:20181101230503p:plain

(5)ユーザアカウント制御画面が表示されたら[はい]をクリックする。

(6)[Finish]ボタンを押します。

f:id:DAI_KONDO:20181101230606p:plain

5.仮想マシンにログインする。

(1)Puttyを起動する。

(2)HostNameに「192.168.33.10」と入力。

f:id:DAI_KONDO:20181101230909p:plain

(3)「MyCestOS」など名前を付けて[Save]を押下して「Open」を押します。

f:id:DAI_KONDO:20181101231141p:plain

(4)下記画面が表示されたら「はい」をクリックします。

f:id:DAI_KONDO:20181102224755p:plain

(5)IDとPWの入力が求められますので入力します。IDとPWはそれぞれ「vagrant」です。

6.仮想マシンの設定

(1) OSを最新状態にアップデートするため下記コマンドを実行

sudo yum -y update

(2)スクリプトを入手するためのgitをインストールするため下記コマンドを実行

sudo yum -y install git

(3)gitを使ってアプリケーション設定用のスクリプトをダウンロードするため下記コマンドを実行

git clone https://github.com/dotinstallres/centos6.git

(4) centos6フォルダへ移動

cd centos6

(5) スクリプトを実行するため下記コマンドを実行

./run.sh

(6)設定を反映させるためのコマンドを実行

exec $SHELL -l

7.Cyberduck(ファイル転送ツール)のインストール

(1)Windowsのフォルダオプションを開き「隠しファイル、隠しフォルダ、および隠しドライブを表示する」のチェックを入れます。また、「登録されている拡張子は表示しない」のチェックは外します。

(2)公式サイト https://cyberduck.io/ を開きます。

(3)[Download]をクリックします。

f:id:DAI_KONDO:20181103104246p:plain

(4)Windows版の「Download」リンクをクリックします。

f:id:DAI_KONDO:20181103104348p:plain

(5)インストーラーを実行してインストールしてください。

(6)Cyberduckを起動します。

(7)[編集]-[環境設定]をクリックします。

f:id:DAI_KONDO:20181103113158p:plain

(8)「ブラウザ」メニューの「'.'で始まるファイルを表示」と「ダブルクリックしたファイルを外部エディタで開く」のチェックを入れます。

f:id:DAI_KONDO:20181103113301p:plain

(9)外部エディタメニューをクリックし、[ファイrの編集に使用するテキストエディタ]を選択し、[常に省略時エディタを使用]にチェックを入れます。(筆者の場合はAtomを選択)

f:id:DAI_KONDO:20181103113457p:plain

(10)環境設定画面およびCyberduckは右上の「×」で閉じて終了します。

7.仮想マシンへのアクセス

(1)Cyberduckを起動します。

(2)[新規接続]をクリックします。

(3)サーバ、ユーザ名、パスワードを入力して接続ボタンを押します。

   サーバ:SFTP

   ユーザ名:vagrant

   パスワードvagrant

(4)「そのホスト名は現在システムに認識されていません」と表示されたら「常に」にチェックを入れて[許可]ボタンを押します。

(5)下記の画面が表示されたら成功です。

f:id:DAI_KONDO:20181103114555p:plain

毎回(1)~(5)を実行するのは手間なのでブックマーク登録しておきましょう!!

f:id:DAI_KONDO:20181103115015p:plain

②ニックネームを「MyCentOS」などにして「×」で閉じます。

f:id:DAI_KONDO:20181103115112p:plain

⓷ブックマーク登録されると下記のように表示されます。次回以降はこれをクリックして起動することができます。

f:id:DAI_KONDO:20181103130644p:plain

8.終了手順

Cyberduckテキストエディタ

「×」で閉じる。

Putty

①サーバが立ち上がっている状態の場合は[Ctrl]+[C]キー同時押下で止める

②「Exit」と入力して閉じてください。

Vgrant

コマンドプロンプト(もしくはPowerShell)を起動し以下の手順で終了します。

①Myvagrantへ移動

cd Myvagrant

②MyCentOSへ移動

cd MyCentOS

vagrantを終了するコマンドを実行

vagrant suspend

④Exitでコマンドプロンプト(もしくはPowerShell)を終了させます。

Exit