summaryrefslogtreecommitdiff
path: root/core/lib/extensions/couchrest.rb
diff options
context:
space:
mode:
authorjessib <jessib@riseup.net>2013-11-21 11:22:30 -0800
committerjessib <jessib@riseup.net>2013-11-21 11:22:30 -0800
commit15b234bf798f3c6347f3c5a13fd1ddfdb744354d (patch)
tree2850982de44badbe87e06dca2adbaf9493a26215 /core/lib/extensions/couchrest.rb
parentf1bc68c73e7183a0ad30c6aefc6cc4cbbf1bc1f0 (diff)
parent19eac22510fcb4ad74456cc3872196fa1e63a93d (diff)
Merge branch 'develop' into feature/return_public_key
Diffstat (limited to 'core/lib/extensions/couchrest.rb')
-rw-r--r--core/lib/extensions/couchrest.rb35
1 files changed, 26 insertions, 9 deletions
diff --git a/core/lib/extensions/couchrest.rb b/core/lib/extensions/couchrest.rb
index 91dfc1c..84cfbb3 100644
--- a/core/lib/extensions/couchrest.rb
+++ b/core/lib/extensions/couchrest.rb
@@ -47,28 +47,45 @@ module CouchRest
def self.load_all_models_with_engines
self.load_all_models_without_engines
return unless defined?(Rails)
- Dir[Rails.root + 'app/models/**/*.rb'].each do |path|
- require path
- end
Dir[Rails.root + '*/app/models/**/*.rb'].each do |path|
require path
end
end
- def self.all_models_and_proxies
- callbacks = migrate_each_model(find_models)
- callbacks += migrate_each_proxying_model(find_proxying_models)
- cleanup(callbacks)
+ class << self
+ alias_method_chain :load_all_models, :engines
+ end
+
+ def dump_all_models
+ prepare_directory
+ find_models.each do |model|
+ model.design_docs.each do |design|
+ dump_design(model, design)
+ end
+ end
end
+ protected
+ def dump_design(model, design)
+ dir = prepare_directory model.name.tableize
+ filename = design.id.sub('_design/','') + '.json'
+ puts dir + filename
+ design.checksum
+ File.open(dir + filename, "w") do |file|
+ file.write(JSON.pretty_generate(design.to_hash))
+ end
+ end
- class << self
- alias_method_chain :load_all_models, :engines
+ def prepare_directory(dir = '')
+ dir = Rails.root + 'tmp' + 'designs' + dir
+ Dir.mkdir(dir) unless Dir.exists?(dir)
+ return dir
end
end
end
+
end
class ModelRailtie