diff --git a/lib/couchrest/helper/file_manager.rb b/lib/couchrest/helper/file_manager.rb index d7dd0a6..7474b17 100644 --- a/lib/couchrest/helper/file_manager.rb +++ b/lib/couchrest/helper/file_manager.rb @@ -26,8 +26,8 @@ module CouchRest attachdir = File.join(appdir,"_attachments") @doc = dir_to_fields(appdir) - package_forms(@doc["forms"]) - package_views(@doc["views"]) + package_forms(@doc["forms"]) if @doc['forms'] + package_views(@doc["views"]) if @doc['views'] docid = "_design/#{appname}" design = @db.get(docid) rescue {} diff --git a/spec/couchrest/helpers/file_manager_spec.rb b/spec/couchrest/helpers/file_manager_spec.rb index 8c12acd..ffbbc6c 100644 --- a/spec/couchrest/helpers/file_manager_spec.rb +++ b/spec/couchrest/helpers/file_manager_spec.rb @@ -108,6 +108,11 @@ describe CouchRest::FileManager, "pushing an app" do doc = @db.get("_design/couchapp") doc['magical'].should == "so magic" end + it "handles not having a forms directory" do + `rm -rf #{@appdir}/forms` + lambda { @fm.push_app(@appdir, "couchapp") }.should_not raise_error + `mkdir -p #{@appdir}/forms` + end end