Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Ruby で作る大規模イベントネットワーク構築・運用支援システム TTDB

Ruby で作る大規模イベントネットワーク構築・運用支援システム TTDB

2025/12/6 北陸Ruby会議01
https://regional.rubykaigi.org/hokuriku01/

Avatar for Taketo Takashima

Taketo Takashima

December 06, 2025
Tweet

More Decks by Taketo Takashima

Other Decks in Technology

Transcript

  1. ΠϕϯτωοτϫʔΫ w ΧϯϑΝϨϯεɾలࣔձͳͲͷΠϕϯτձ৔ωοτϫʔΫ w ΠϕϯτʹΑͬͯن໛΋໨త΋ͦΕͧΕҧ͏ w ৗઃͰ͸ͳ͘Πϕϯτ༻ʹԾઃͰߏங͍ͯ͠Δ͜ͱ΋ଟ͍ w ओͳ໨త w

    ΠϕϯτࢀՃऀ΁ͷΠϯλʔωοτ઀ଓੑͷఏڙ 8J'J  w ਺ඦਓҎ্ͷن໛ͷΠϕϯτͩͱɺձ৔ઃඋͷωοτϫʔΫ͕ΩϟύΦʔόʔ Ͱෆ҆ఆͳ͜ͱ͕͋ΔͨΊ w ྫ3VCZ,BJHJɺ,BJHJPO3BJMTɺ+"/0(ͳͲ
  2. 4IPX/FUͷن໛ w ϥοΫຊ  w ػث਺୆  w ର֎઀ଓଳҬ5CQT w

    ߏஙظؒ໿िؒ w ਓ਺໿ਓ IUUQTXXXJOUFSPQKQBTTFUT fi MFFXFCQEG
  3. *1ΞυϨε؅ཧͷ࣮૷ w 55%#Ͱ*1"EESΫϥεΛ֦ு w *1ΞυϨεͷ1SF fi Y΍ $*%3Λར༻Ͱ͖Δ w JQBEESFYUHFN

    w 55%#Ͱར༻͍ͯͨ͠ *1"EESΫϥε֦ுΛ·ͱΊͨ ϥΠϒϥϦ w IUUQTHJUIVCDPNJOUFSPQ UPLZPTIPXOFUJQBEESFYU # to_s_with_pre fi x (ipaddr v1.2.7: IPAddr#cidr) ipaddr = IPAddr.new("3ffe:505:2::1") ipaddr.to_s_with_pre fi x => "3ffe:505:2::1/128" # +/- (ipaddr next version: IPAddr#+/-) ipaddr = IPAddr.new("3ffe:505:2::1") (ipaddr + 5).to_s_with_pre fi x => "3ffe:505:2::6/128" # ==: Fix to compare with address pre fi x IPAddr.new("192.168.1.0/24") == IPAddr.new("192.168.1.0/25") => false # different behavior with pure IPAddr class
  4. ϙʔτ઀ଓ৘ใͷ࣮૷ w .PEFM͸͞Βʹ೰·͍͠ w ͦΕͧΕͷϙʔτ͔Β ର޲ͷϙʔτΛऔಘ͍ͨ͠ w ػثͷϙʔτҎ֎΋઀ଓ͍ͨ͠ w FUDʜ

    w ݁Ռɺ͜Μͳײ͡ͷ.PEFM $PODFSOΛ࣮૷ module ConnectableModule extend ActiveSupport::Concern included do has_one :glue1, class_name: "::Connectable::Glue", as: :connector1, dependent: :destroy has_one :glue2, class_name: "::Connectable::Glue", as: :connector2, dependent: :destroy accepts_nested_attributes_for :glue1, :glue2 private :glue1, :glue2 scope :orphans, lambda { select("#{table_name}.*") .joins("LEFT OUTER JOIN connector_glues as conn_glues ON (#{table_name}.id = conn_glues.connector1_id AND conn_glues.connector1_type = '#{self.name}') OR (#{table_name}.id = conn_glues.connector2_id AND conn_glues.connector2_type = '#{self.name}')") .where("conn_glues.id IS NULL") } end def glue glue1 || glue2 end def opposed_connector return glue1.connector2 unless glue1.nil? return glue2.connector1 unless glue2.nil? end end
  5. ೝূج൫ 4".-*E1 w 55%#Λೝূج൫ʹϦϞʔτΞΫηεͳͲͷ440Λ࣮ݱ w ߏ੒ w 55%#4".-*E1 w $JTDP%VP4".-1SPYZ

    w ࣮૷ w TBNM@JEQHFN IUUQTTQFBLFSEFDLDPNTIPXOFUTXPOFUEPUDPOG[FSPUPSBTVUPEF[IJFSVHVBOHEBJZV TFLJZVSJUFJTBCJTVUPYJFXFJKJBOTIJKJQBO TMJEF