Sha256: a393cfb65cd80cd499287c4910b300225efaf76223895c806fba775c528af1a3
Contents?: true
Size: 1.99 KB
Versions: 3
Compression:
Stored size: 1.99 KB
Contents
require "timecop" require "pry" DATA_ENVIRONMENTS = %i[production development test].freeze ENV["STORE_CODED_FILES"] = "true" module Cardio class Mod # import data from data directory of mods # (list of card attributes) # https://docs.google.com/document/d/13K_ynFwfpHwc3t5gnLeAkZJZHco1wK063nJNYwU8qfc/edit# class Eat include Card::Model::SaveHelper include Edibles def initialize mod: nil, env: nil, user: nil, verbose: nil @mod = mod @env = env @user_id = user&.card_id @verbose = !verbose.nil? end def up Card::Cache.reset_all Card::Mailer.perform_deliveries = false Card::Auth.as_bot do edibles.each do |edible| track edible do current_user edible.delete(:user) time_machine edible.delete(:time) do ensure_card edible end end end end end private def track edible rescuing edible do # puts "eat: #{edible}" if @verbose card = yield puts "eaten: #{card.name}".green # if @verbose end end def rescuing edible yield rescue StandardError => e # binding.pry puts edible puts e.message.red puts e.backtrace.join("\n") if @verbose end def current_user item_user Card::Auth.current_id = item_user&.card_id || @user_id || Card::WagnBotID end def time_machine value, &block return yield unless value.present? Timecop.freeze Time.at(time_integer(value)), &block end def time_integer value case value when /^[+-]\d+$/ # plus or minus an integer (safe to eval) eval "#{Time.now.to_i} #{value}", binding, __FILE__, __LINE__ when Integer value else raise TypeError, "invalid time value: #{value}. accepts int, +int, and -int" end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
card-1.104.2 | lib/cardio/mod/eat.rb |
card-1.104.1 | lib/cardio/mod/eat.rb |
card-1.104.0 | lib/cardio/mod/eat.rb |