キリンめも(技術)

記事を書いています #rails #swift #JS #UE4 #unity

Railsの会 15日目「メソッド・データ構造」

今回の範囲

f:id:geta206:20170321111825p:plain

 

agenda

  1. オブジェクトの種類
  2. メソッドの定義
  3. ブロック

 

1. オブジェクトの種類

length   文字の長さを調べる

>> "foobar".length        # 文字列に "length" というメッセージを送る
=> 6

 

?  論理値で返す

例   

>> "foobar".empty?
=> false
>> "".empty?
=> true

 

メソッドチェーン メソッド連続的に呼び出すこと

 例 

>> a << "foo" << "bar"        # 配列に連続して追加する
=> [42, 8, 17, 6, 7, "foo", "bar"]

 

配列の種類

1 to_a メソッドを使う

>> (0..9).to_a            # 丸かっこを使い、範囲オブジェクトに対してto_aを呼びましょう
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2     %w (配列)

>> a = %w[foo bar baz quux]         # %wを使って文字列の配列に変換
=> ["foo", "bar", "baz", "quux"]

3    [ ]  を使った書き方

>> a[0..2]
=> ["foo", "bar", "baz"]

数字を使った配列の指定方法

>> a = [42, 8, 17]
=> [42, 8, 17]
>> a[0]               Rubyでは角かっこで配列にアクセスする
=> 42
>> a[1]
=> 8
>> a[2]
=> 17
>> a[-1]              # 配列の添字はマイナスにもなれる! == last
=> 17

その他の指定方法
>> a                  # 配列「a」の内容を確認する
=> [42, 8, 17]
>> a.first
=> 42
>> a.second  #基本使わない
=> 8
>> a.last
=> 17
>> a.last == a[-1]    # == を使って比較する
=> true

 

 

2.メソッドの定義

デフォルトの値を返さなくていい時

def string_message(str = '')   

    strに値が絶対入る場合は省略してもよい。

 nulが入る時は、初期値を上記のようにblankに指定しないといけない。

 

値の追加方法(配列)

>> a.push(6)                  # 6を配列に追加する
=> [42, 8, 17, 6]
>> a << 7                     # 7を配列に追加する
=> [42, 8, 17, 6, 7]
>> a << "foo" << "bar"        # 配列に連続して追加する
=> [42, 8, 17, 6, 7, "foo", "bar"]

   

3.ブロック

処理が一つの時の書き方

>> (1..5).each { |i| puts 2 * i }
2
4
6
8
10
=> 1..5

処理が2つ以上の時の書き方

>> (1..5).each do |
?>   puts 2 * i
>> end
2
4
6
8
10
=> 1..5

mapとeachの違い

map 変更したものを返す  ( 配列 (中身を変更したい時)

each 実行結果を返す        ( 中身の処理を変えたい時)

基本mapで書くとどの処理でも通る。

 

>> %w[A B C].map { |char| char.downcase }
=> ["a", "b", "c"]
>> %w[A B C].map(&:downcase) #省略した書き方( char
=> ["a", "b", "c"]

test ブロック

 test "should get home" do
  get static_pages_home_url
  assert_response :success
  assert_select "title", "Ruby on Rails Tutorial Sample App"
end

今までのおさらい
a-zまで配列にしてshuffleして0から7番目を文字列で表示
('a'..'z').to_a.shuffle[0..7].join

 

 

UE4のソースコードを見るまでの手順(github連携)

前提条件

・UE4とgithubのアカウント登録していること

今回はUE4のソースコードを見るまでの手順を紹介したいと思います。

f:id:geta206:20170326235709p:plain






1 UE4の管理者ページにいき プロフィールと書かれている部分をクリック

f:id:geta206:20170326235942j:plain


2 githubのIDを記載する

f:id:geta206:20170327000436j:plain


3 EPICのアプリを開き「github経由でソースにアクセス」をクリック

f:id:geta206:20170327000648p:plain

    1. 4 「view invitation」 をクリック

f:id:geta206:20170327001448j:plain


f:id:geta206:20170327001517j:plain


おわり!!!!

メールでも連携できていたか確認できます!!

obj-c json受け渡し

この方法はあまりおすすめしない。汚染

//jsonで内容取得

// データの取得 
NSBundle *bnd01 = [NSBundle mainBundle]; 
NSString *pth01 = [bnd01 pathForResource:@"q_fim"ofType:@"json"]; 
NSURL *url01 = [NSURL fileURLWithPath:pth01]; 

NSURLRequest *req01 = [NSURLRequest requestWithURL:url01]; 

NSData *dat01 = [NSURLConnection sendSynchronousRequest:req01 
returningResponse:nil error:nil]; 
// JSONオブジェクトの取得 
NSDictionary *cor01 =(NSDictionary *) 
[NSJSONSerialization JSONObjectWithData:dat01 
options:NSJSONReadingMutableContainers 
// 基本的にはこれを選ぶ 
error:nil]; 
_q1.text = cor01[@"fim_q"][0][@"q1_food"]; 
_q3.text = cor01[@"fim_q"][15][@"q4_outerwear"]; 
}



-----------------------------------------
@interface AppDelegate : UIResponder 
{
// グローバル変数
NSString *hoge
}

@property (nonatomic, retain) NSString *hoge;

すると、ViewController.m で参照や設定が可能に。

// グローバル変数に保存
AppDelegate* delegate = [[UIApplication sharedApplication] delegate];

railsの会 9日目 「@ Haml Jade Slim」

今日の範囲です。

f:id:geta206:20170303130937p:plain

 

 

@Userとは

 インスタンス変数 (グローバル変数みたいなもの)

基本@がつくものはviewでも使用出来る。

それi以外はviewにいかない。

変数に一覧が保存されると、viewを呼び出すよ!

 

f:id:geta206:20170303131905p:plain

AppricationRecord とは

機能

・DBの操作

・User.all を呼び出す

 

index.html.erb (リスト2.0)

<% @users.each do |user| %>

この部分で書き出し。

順番

viewが持っている内容書き出し→コントローラーがhtmlを送信 

→html表示

 

特集 ツール [haml jade slim]

haml はむる [HTML abstracion markup language]

特徴

・記述が少なくて済む

Rubyが使える

・変数宣言、条件分岐、繰り返し処理が出来る

 

 

!!!

↓変換

.html
<!DOCTYPE html>

ルール

・%タグ名

・-# コメント

・インデントは半角2スペース

 

Hamlとは - Qiita

 

実践

Hamlを使う方法、入門編。 今さらですが… やってみると意外と良い。 | Go-Nextブログ

 

jade  じぇいど

・JS Temlates(JST)の一種。(Undersore.js Handlebars.jsが有名)

・軽量マークアップ言語。

Haml Slimに似てる

・記述量がhtmlよりも少ないため、コードが肥大化しても綺麗。

必要なもの Node.js → jade 

 

ルール

・要素のテキストはタグの後ろ、半角スペースを空けて記載

・要素の入れ子は 改行+インデント

・それ以外の属性(src ,name)は( )で囲い、カンマで区切る 等

 

軽量なマークアップ言語 Jade 入門 からの Gulp でコンパイルまで – Gulp で作る Web フロントエンド開発環境 #5 – NET BIZ DIV. TECH BLOG

 

実践をしたい方向け

blog.mismithportfolio.com

 

slim

Rubyのテンプレートエンジン

特徴

・拡張子 .Slim

RailsプロジェクトまたはSinatara(padorino)のテンプレ

・高速、軽量

・HTMLの代替などに使われる

・インデント重要

 

qiita.com 

docker メモ (コマンド一覧)

Dockerとは? 仮想管理ツール (VMに似てる)


コンテナとは
基本 CentOS Linax
言語 PHP Ruby
DB Psql Mysql
のこと。

要は簡単に環境が作れます。


(まずはdocker runで挙動を見て、設定ファイルと照らし合わせてみよう)
 
Docker composeとは?
 複数のDockerコンテナをつなげて一つの動作する環境を作るよ!!
これやで!⇩ (docker-compose ps)で確認できる。

 

--------------------------------------------------------------------------
Name Command State Ports

----------------------------------------------------------------------------

laradock_applications_1 /true Exit 0

laradock_nginx_1 nginx Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp

laradock_php-fpm_1 php-fpm Up 9000/tcp

laradock_postgres_1 /docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp

laradock_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp

laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp

—————————————————————————————

コマンド一覧(初期設定編)
vi docker-compose.yml  //設定ファイル

docker //docker起動

  docker ps //今インストールされているコンテナを確認

docker-compose  //複数のコンテナの構築・実行を自動化する(rpm start みないなもの)

docker-compose up -d nginx redid postgres //

netstat  //netの状態を確認する

brew remove postgresql

docker-compose up -d nginx redid postgres //nginx とpsqlをバックグラウンドで起動 

netstat | grep :5432 //利用しているport番号からどのプロセスが利用しているか

phpbrew list //php 種類確認

phpbrew switch 5.6.26 //切り替え

source $HOME/.phpbrew/bashrc //再読込させる(切り替えの時必須)

php -v //phpversion確認

composer update //アップデート

ps aux //a:自分以外 u:ユーザ名・時刻 x:制御外のプロセス確認

ps aux | grep postures  //文字列検索 postures この文字のみ一覧表示

ps auxwww | grep postgres  //無制限で出力 |postgres検索

docker exec -it laradock_workspace_1 bash//起動

                                                    成功例 root@hogehogehoge:/var/www#

docker exec -it laradock_workspace_1 bash -user=laradock // ユーザ指定

docker exec -it -user=laradock laradock_workspace_1 bash

docker-compose stop && docker-compose up -d nginx redid postgres //停止

 

————————————————————————

おまけ

localhost と打つと

http://localhost/ Lalabel がでると成功
http://localhost/api apiのページ

git に入るとlalavelは自動起動 する。
laradock subモジュールで 最初にデータが入るファイルらしい
設定ファイルの中 (docker-compose.yml)
volumes : 👉ログファイルを記載
docker-compose stop で全てを終わらせる。