Module: Cardio
- Defined in:
- lib/cardio.rb
Class Method Summary collapse
- .add_path(path, options = {}) ⇒ Object
- .assume_migrated_upto_version(type) ⇒ Object
- .cache ⇒ Object
- .delete_tmp_files(id = nil) ⇒ Object
- .future_stamp ⇒ Object
- .gem_root ⇒ Object
- .migration_paths(type) ⇒ Object
- .root ⇒ Object
- .schema(type = nil) ⇒ Object
- .schema_mode(type) ⇒ Object
- .schema_stamp_path(type) ⇒ Object
- .schema_suffix(type) ⇒ Object
- .set_config(config) ⇒ Object
- .set_paths(paths) ⇒ Object
Class Method Details
.add_path(path, options = {}) ⇒ Object
80 81 82 83 84 85 86 |
# File 'lib/cardio.rb', line 80 def add_path path, ={} root = .delete(:root) || gem_root gem_path = File.join( root, path ) with = .delete(:with) with = with ? File.join(root, with) : gem_path paths[path] = Rails::Paths::Path.new(paths, gem_path, with, ) end |
.assume_migrated_upto_version(type) ⇒ Object
103 104 105 106 107 |
# File 'lib/cardio.rb', line 103 def assume_migrated_upto_version type Cardio.schema_mode(type) do ActiveRecord::Schema.assume_migrated_upto_version Cardio.schema(type), Cardio.migration_paths(type) end end |
.cache ⇒ Object
20 21 22 |
# File 'lib/cardio.rb', line 20 def cache @@cache ||= ::Rails.cache end |
.delete_tmp_files(id = nil) ⇒ Object
117 118 119 120 121 122 123 |
# File 'lib/cardio.rb', line 117 def delete_tmp_files id=nil dir = Cardio.paths['files'].existent.first + '/tmp' dir += "/#{id}" if id FileUtils.rm_rf dir, :secure=>true rescue Rails.logger.info "failed to remove tmp files" end |
.future_stamp ⇒ Object
88 89 90 91 |
# File 'lib/cardio.rb', line 88 def future_stamp ## used in test data @@future_stamp ||= Time.local 2020,1,1,0,0,0 end |
.gem_root ⇒ Object
76 77 78 |
# File 'lib/cardio.rb', line 76 def gem_root CARD_GEM_ROOT end |
.migration_paths(type) ⇒ Object
93 94 95 96 97 98 99 100 101 |
# File 'lib/cardio.rb', line 93 def migration_paths type list = paths["db/migrate#{schema_suffix type}"].to_a if type == :deck_cards list += Card::Loader.mod_dirs.map do |p| Dir.glob "#{p}/db/migrate_cards" end.flatten end list end |
.root ⇒ Object
72 73 74 |
# File 'lib/cardio.rb', line 72 def root @@config.root end |
.schema(type = nil) ⇒ Object
134 135 136 |
# File 'lib/cardio.rb', line 134 def schema type=nil File.read( schema_stamp_path type ).strip end |
.schema_mode(type) ⇒ Object
125 126 127 128 129 130 131 132 |
# File 'lib/cardio.rb', line 125 def schema_mode type new_suffix = Cardio.schema_suffix type original_suffix = ActiveRecord::Base.table_name_suffix ActiveRecord::Base.table_name_suffix = new_suffix yield ActiveRecord::Base.table_name_suffix = original_suffix end |
.schema_stamp_path(type) ⇒ Object
138 139 140 141 142 143 |
# File 'lib/cardio.rb', line 138 def schema_stamp_path type root_dir = ( type == :deck_cards ? root : gem_root ) stamp_dir = ENV['SCHEMA_STAMP_PATH'] || File.join( root_dir, 'db' ) File.join stamp_dir, "version#{ schema_suffix(type) }.txt" end |
.schema_suffix(type) ⇒ Object
109 110 111 112 113 114 115 |
# File 'lib/cardio.rb', line 109 def schema_suffix type case type when :core_cards then '_core_cards' when :deck_cards then '_deck_cards' else '' end end |
.set_config(config) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/cardio.rb', line 24 def set_config config @@config, @@root = config, config.root config.autoload_paths += Dir["#{gem_root}/mod/*/lib/**/"] config.autoload_paths += Dir["#{gem_root}/lib/**/"] config.autoload_paths += Dir["#{root}/mod/*/lib/**/"] config.read_only = !!ENV['WAGN_READ_ONLY'] config.allow_inline_styles = false config.recaptcha_public_key = nil config.recaptcha_private_key = nil config.recaptcha_proxy = nil config.cache_store = :file_store, 'tmp/cache' config.override_host = nil config.override_protocol = nil config.no_authentication = false config.files_web_path = 'files' config.max_char_count = 200 config.max_depth = 20 config.email_defaults = nil config.token_expiry = 2.days config.revisions_per_page = 10 config.closed_search_limit = 50 end |
.set_paths(paths) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/cardio.rb', line 55 def set_paths paths @@paths = paths add_path 'tmp/set', :root => root add_path 'tmp/set_pattern', :root => root add_path 'mod' add_path "db" add_path 'db/migrate' add_path "db/migrate_core_cards" add_path "db/migrate_deck_cards", :root => root, :with => 'db/migrate_cards' add_path "db/seeds", :with => "db/seeds.rb" add_path 'config/initializers', :glob => '**/*.rb' paths['config/initializers'] << "#{gem_root}/mod/**{,/*/**}/initializers" paths['config/initializers'] << "#{root}/mod/**{,/*/**}/initializers" end |