Newer
Older
2024-Tsubasa / system / websocket_test / em-ws-web(intro) / test / hash.rb
#!/usr/bin/env ruby

require 'pp'
require 'json'

# ------------------------------------
# pp Set.new
# pp Set.new([1,2])

# client = Hash.new #Hashの作成
# pp client

# i = 0
# while (i < 10)
#     client[i] = 'name' #nameのところにはhtmlで入力された名前を入れる
#     i += 1
# end

# pp client
# print("hashの長さ(client)は", client.keys.length, "\n") #Hashの長さを調べる
# ------------------------------------

# ------------------------------------
# hash = Hash.new
# clients = Hash.new

# hash = {
#     user1: {
#         id: nil,
#         team: 1 
#     },
#     user2: {
#         id: nil,
#         team: 2
#     }
# }

# testHash = {
#    team1: {
#     id1: {
#         name: "name"
#     },
#     id2: {
#         name: "name"
#     }
#    },
#    team2: {
#     id3: {
#         name: "name"
#     },
#     id4: {
#         name: "name"
#     },
#     id5: {
#         name: "naem"
#     }
#    }
# }

# puts testHash
# puts testHash.length
# puts testHash[:team1].length
# i = 1
# puts testHash[:"team#{i}"].keys.length
# def sum(testHash)
#     i = 0
#     sum_clients = 0
#     while i < testHash.length
#         i += 1
#         sum_clients += testHash[:"team#{i}"].keys.length
#     end
#     return sum_clients
# end

# puts sum(testHash)

#全てのチームを虱潰しに探して、削除したいkeyを見つけたらそれをハッシュから削除するコード
# def delete_hash(testHash, delete_key)
#     i = 0
#     j = 0
#     while i < testHash.length
#         i += 1
#         while j < testHash[:"team#{i}"].keys.length
#             if testHash[:"team#{i}"].keys[j] == delete_key
#                 testHash[:"team#{i}"].delete(testHash[:"team#{i}"].keys[j])
#             end
#             j += 1
#         end
#         j = 0
#     end
#     return testHash
# end

# def sum_clients(clients)
#     i = 0
#     sum = 0
#     while i < clients.length
#         i += 1
#         sum += clients[:"team#{i}"].keys.length
#     end
#     return sum
# end

# puts sum_clients(testHash)
# puts delete_hash(testHash, :id3)

# puts hash

# hash[:user3] = {id: nil, team: 2}
# pp hash

# # 絞り込んで出力
# puts hash[:user2]
# puts hash[:user2][:team]

# # jsonにする
# json_hash = hash.to_json
# puts json_hash

# # 一番最初のuserの部分を変更する
# hash[:user4] = hash.delete(:user1)

# # 違うhashに追加する
# puts hash
# clients = clients.merge(hash)
# puts clients

# puts clients.keys.length
# ------------------------------------

hayaoshi_hash = {}

# hash の追加

p hayaoshi_hash

def push(hayaoshi_hash, push_data)
    flag = false
    hayaoshi_hash.each do |key, value|
        if push_data.keys[0] == key
            flag = true
        end
    end
    puts flag
    if flag == false
        hayaoshi_hash[push_data.keys[0]] = push_data.values[0]
    end
    return hayaoshi_hash
end

push(hayaoshi_hash, {"team2": "tututu"})
p hayaoshi_hash
push(hayaoshi_hash, {"team1": "bababa"})
p hayaoshi_hash
push(hayaoshi_hash, {"team2": "fasfafa"})
p hayaoshi_hash