キリンめも(技術)

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

Railsの会 16日目「CSS指定 /クラス/initialize」

今回の範囲

f:id:geta206:20170329161843p:plain

ハッシュとシンボル

書き方
その1

 {"hoge" => "hogehoge"}

その2

 {huga: "fugafuga"}  #1.9以降使える
=> と :の違いは?

文字列とシンボルの違い

具体的な話

文字列だと宣言などを繰り返し行った時数値の割り当てが変わる。
1回目 1111111111
2回目 1111111122
シンボルの場合 宣言したとき同じ数値が割り当てられる。
1回目 12345
2回目 12345

ハッシュとは =>

キーを使って、複数のオブジェクトへの参照を
まとめて管理することができるオブジェクト。
ハッシュロケット(=>)の書き方は古いらしい。
それでも=>の書き方を使う理由は、教科書などがハッシュロケットで書くのは=>が全てのversionに対応しているから記述しているらしい。

シンボルとは :

: hoge の書き方をしているものをシンボルという。
文字列以外は基本シンボルを使います。

シンボルのメリット

メモリの利用料が文字列に比べ少なくなる。
Ruby on Rails 入門のための知識 1(シンボルとハッシュ) - OnsenとRuby

CSSの指定方法

指定場所: app/assets/stylesheets
コード

<%= stylesheet_link_tag "custom", :media => "all" %>

コンストラクタ (initializeメソッド)

特殊なメソッド。
クラス内に記述するとオブジェクトを作成した時、
自動で呼び出される。
自動でprivateに設定されます。
戻り値は使われません。
クラスにinitializeメソッドがない時は親クラスから呼び出されます。

呼び方

クラス名.new(引数)


使用例

class Cat
  def initialize(name, color)
    puts "initialize called!"
    @name = name; @color = color
  end
end
 
cat = Cat.new("Tama", "white")

initialize - Rubyリファレンス
Rubyのクラスについてまとめてみた | JavaからのRuby on Rails入門

クラスの継承

class クラス名 < 継承するクラス と指定する

>> class Word < String    # WordクラスはStringクラスを継承する
                                          # 文字列が回文であればtrueを返す
>>   def palindrome?
>>     self == self.reverse    # selfは文字列自身を表します
>>   end
>> end
=> nil

組み込みクラスの変更

組み込みクラスを使用する時は、変数が絶対に空白にならないようにしたいときです。(ユーザー名など)
rubyでは組み込みクラスの拡張ができる。


組込みクラスの変更 - Qiita
【26日目】【1日20分のRailsチュートリアル】基本クラスの拡張とコントローラクラスの学習&Userクラスの作成 - ぞえの技術めも

super classとは

今使用しているクラスはどれを継承しているのかを調べる(クラスの階層を調べる)
stringクラスの継承階層(イメージ図)↓

f:id:geta206:20170329170740p:plain

調べ方(コマンド) 例

>> controller = StaticPagesController.new
=> #
>> controller.class
=> StaticPagesController
>> controller.class.superclass
=> ApplicationController
>> controller.class.superclass.superclass
=> ActionController::Base
>> controller.class.superclass.superclass.superclass
=> ActionController::Metal
>> controller.class.superclass.superclass.superclass.superclass
=> AbstractController::Base
>> controller.class.superclass.superclass.superclass.superclass.superclass
=> Object

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