From 7461e3fede7cf30503baa1eadf243259e02fa522 Mon Sep 17 00:00:00 2001 From: Jan Lehnardt Date: Sun, 14 Dec 2008 12:05:02 +0100 Subject: [PATCH 1/4] s/localhost/127.0.0.1/ --- README.rdoc | 2 +- examples/word_count/markov | 2 +- examples/word_count/word_count.rb | 4 +- examples/word_count/word_count_query.rb | 4 +- lib/couchrest.rb | 2 +- lib/couchrest/commands/push.rb | 2 +- lib/couchrest/core/model.rb | 2 +- lib/couchrest/core/server.rb | 2 +- lib/couchrest/helper/file_manager.rb | 2 +- spec/couchrest/core/couchrest_spec.rb | 46 ++++++++++----------- spec/couchrest/core/database_spec.rb | 2 +- spec/couchrest/core/model_spec.rb | 6 +-- spec/couchrest/helpers/file_manager_spec.rb | 6 +-- spec/spec_helper.rb | 2 +- utils/remap.rb | 4 +- utils/subset.rb | 4 +- 16 files changed, 46 insertions(+), 46 deletions(-) diff --git a/README.rdoc b/README.rdoc index 0d5686f..a9a0255 100644 --- a/README.rdoc +++ b/README.rdoc @@ -31,7 +31,7 @@ CouchRest install, from the project root directory run `rake`, or `autotest` Quick Start: # with !, it creates the database if it doesn't already exist - @db = CouchRest.database!("http://localhost:5984/couchrest-test") + @db = CouchRest.database!("http://127.0.0.1:5984/couchrest-test") response = @db.save({:key => 'value', 'another key' => 'another value'}) doc = @db.get(response['id']) puts doc.inspect diff --git a/examples/word_count/markov b/examples/word_count/markov index af7465e..b873f3e 100755 --- a/examples/word_count/markov +++ b/examples/word_count/markov @@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__)) + '/../../couchrest' -cr = CouchRest.new("http://localhost:5984") +cr = CouchRest.new("http://127.0.0.1:5984") @db = cr.database('word-count-example') @word_memoizer = {} diff --git a/examples/word_count/word_count.rb b/examples/word_count/word_count.rb index 36c1351..f0321ae 100644 --- a/examples/word_count/word_count.rb +++ b/examples/word_count/word_count.rb @@ -1,6 +1,6 @@ require File.dirname(__FILE__) + '/../../couchrest' -couch = CouchRest.new("http://localhost:5984") +couch = CouchRest.new("http://127.0.0.1:5984") db = couch.database('word-count-example') db.delete! rescue nil db = couch.create_db('word-count-example') @@ -62,6 +62,6 @@ end # } # }) -# puts "The books have been stored in your CouchDB. To initiate the MapReduce process, visit http://localhost:5984/_utils/ in your browser and click 'word-count-example', then select view 'words' or 'count'. The process could take about 15 minutes on an average MacBook." +# puts "The books have been stored in your CouchDB. To initiate the MapReduce process, visit http://127.0.0.1:5984/_utils/ in your browser and click 'word-count-example', then select view 'words' or 'count'. The process could take about 15 minutes on an average MacBook." # diff --git a/examples/word_count/word_count_query.rb b/examples/word_count/word_count_query.rb index 31a0222..e69b99a 100644 --- a/examples/word_count/word_count_query.rb +++ b/examples/word_count/word_count_query.rb @@ -1,6 +1,6 @@ require File.dirname(__FILE__) + '/../../couchrest' -couch = CouchRest.new("http://localhost:5984") +couch = CouchRest.new("http://127.0.0.1:5984") db = couch.database('word-count-example') puts "Now that we've parsed all those books into CouchDB, the queries we can run are incredibly flexible." @@ -35,5 +35,5 @@ puts "\nHere are the params for 'flight' in the da-vinci book:" puts params.inspect puts puts 'The url looks like this:' -puts 'http://localhost:5984/word-count-example/_view/word_count/count?key=["flight","da-vinci"]' +puts 'http://127.0.0.1:5984/word-count-example/_view/word_count/count?key=["flight","da-vinci"]' puts "\nTry dropping that in your browser..." \ No newline at end of file diff --git a/lib/couchrest.rb b/lib/couchrest.rb index cff840f..1dc3581 100644 --- a/lib/couchrest.rb +++ b/lib/couchrest.rb @@ -72,7 +72,7 @@ module CouchRest db = nil if db && db.empty? { - :host => host || "localhost:5984", + :host => host || "127.0.0.1:5984", :database => db, :doc => docid } diff --git a/lib/couchrest/commands/push.rb b/lib/couchrest/commands/push.rb index 651df6c..a1b624f 100644 --- a/lib/couchrest/commands/push.rb +++ b/lib/couchrest/commands/push.rb @@ -52,7 +52,7 @@ module CouchRest foo-project/bar-views/my-design/viewname-reduce.js foo-project/bar-views/my-design/noreduce-map.js - Pushed to => http://localhost:5984/baz-database/_design/my-design + Pushed to => http://127.0.0.1:5984/baz-database/_design/my-design And the design document: { diff --git a/lib/couchrest/core/model.rb b/lib/couchrest/core/model.rb index 0fccb27..0d55ec8 100644 --- a/lib/couchrest/core/model.rb +++ b/lib/couchrest/core/model.rb @@ -18,7 +18,7 @@ module CouchRest # than this example. # # class Article < CouchRest::Model - # use_database CouchRest.database!('http://localhost:5984/couchrest-model-test') + # use_database CouchRest.database!('http://127.0.0.1:5984/couchrest-model-test') # unique_id :slug # # view_by :date, :descending => true diff --git a/lib/couchrest/core/server.rb b/lib/couchrest/core/server.rb index 3e62ee2..e76ab82 100644 --- a/lib/couchrest/core/server.rb +++ b/lib/couchrest/core/server.rb @@ -1,7 +1,7 @@ module CouchRest class Server attr_accessor :uri, :uuid_batch_count - def initialize server = 'http://localhost:5984', uuid_batch_count = 1000 + def initialize server = 'http://127.0.0.1:5984', uuid_batch_count = 1000 @uri = server @uuid_batch_count = uuid_batch_count end diff --git a/lib/couchrest/helper/file_manager.rb b/lib/couchrest/helper/file_manager.rb index 6e02fd8..946f96c 100644 --- a/lib/couchrest/helper/file_manager.rb +++ b/lib/couchrest/helper/file_manager.rb @@ -14,7 +14,7 @@ module CouchRest "css" => "text/css", "js" => "test/javascript" } - def initialize(dbname, host="http://localhost:5984") + def initialize(dbname, host="http://127.0.0.1:5984") @db = CouchRest.new(host).database(dbname) end diff --git a/spec/couchrest/core/couchrest_spec.rb b/spec/couchrest/core/couchrest_spec.rb index 1d4499d..f802e2d 100644 --- a/spec/couchrest/core/couchrest_spec.rb +++ b/spec/couchrest/core/couchrest_spec.rb @@ -46,48 +46,48 @@ describe CouchRest do it "should parse just a dbname" do db = CouchRest.parse "my-db" db[:database].should == "my-db" - db[:host].should == "localhost:5984" + db[:host].should == "127.0.0.1:5984" end it "should parse a host and db" do - db = CouchRest.parse "localhost/my-db" + db = CouchRest.parse "127.0.0.1/my-db" db[:database].should == "my-db" - db[:host].should == "localhost" + db[:host].should == "127.0.0.1" end it "should parse a host and db with http" do - db = CouchRest.parse "http://localhost/my-db" + db = CouchRest.parse "http://127.0.0.1/my-db" db[:database].should == "my-db" - db[:host].should == "localhost" + db[:host].should == "127.0.0.1" end it "should parse a host with a port and db" do - db = CouchRest.parse "localhost:5555/my-db" + db = CouchRest.parse "127.0.0.1:5555/my-db" db[:database].should == "my-db" - db[:host].should == "localhost:5555" + db[:host].should == "127.0.0.1:5555" end it "should parse a host with a port and db with http" do - db = CouchRest.parse "http://localhost:5555/my-db" + db = CouchRest.parse "http://127.0.0.1:5555/my-db" db[:database].should == "my-db" - db[:host].should == "localhost:5555" + db[:host].should == "127.0.0.1:5555" end it "should parse just a host" do - db = CouchRest.parse "http://localhost:5555/" + db = CouchRest.parse "http://127.0.0.1:5555/" db[:database].should be_nil - db[:host].should == "localhost:5555" + db[:host].should == "127.0.0.1:5555" end it "should parse just a host no slash" do - db = CouchRest.parse "http://localhost:5555" - db[:host].should == "localhost:5555" + db = CouchRest.parse "http://127.0.0.1:5555" + db[:host].should == "127.0.0.1:5555" db[:database].should be_nil end it "should get docid" do - db = CouchRest.parse "localhost:5555/my-db/my-doc" + db = CouchRest.parse "127.0.0.1:5555/my-db/my-doc" db[:database].should == "my-db" - db[:host].should == "localhost:5555" + db[:host].should == "127.0.0.1:5555" db[:doc].should == "my-doc" end it "should get docid with http" do - db = CouchRest.parse "http://localhost:5555/my-db/my-doc" + db = CouchRest.parse "http://127.0.0.1:5555/my-db/my-doc" db[:database].should == "my-db" - db[:host].should == "localhost:5555" + db[:host].should == "127.0.0.1:5555" db[:doc].should == "my-doc" end @@ -137,24 +137,24 @@ describe CouchRest do describe "easy initializing a database adapter" do it "should be possible without an explicit CouchRest instantiation" do - db = CouchRest.database "http://localhost:5984/couchrest-test" + db = CouchRest.database "http://127.0.0.1:5984/couchrest-test" db.should be_an_instance_of(CouchRest::Database) - db.host.should == "localhost:5984" + db.host.should == "127.0.0.1:5984" end # TODO add https support (need test environment...) # it "should work with https" # do - # db = CouchRest.database "https://localhost:5984/couchrest-test" - # db.host.should == "https://localhost:5984" + # db = CouchRest.database "https://127.0.0.1:5984/couchrest-test" + # db.host.should == "https://127.0.0.1:5984" # end it "should not create the database automatically" do - db = CouchRest.database "http://localhost:5984/couchrest-test" + db = CouchRest.database "http://127.0.0.1:5984/couchrest-test" lambda{db.info}.should raise_error(RestClient::ResourceNotFound) end end describe "ensuring the db exists" do it "should be super easy" do - db = CouchRest.database! "http://localhost:5984/couchrest-test-2" + db = CouchRest.database! "http://127.0.0.1:5984/couchrest-test-2" db.name.should == 'couchrest-test-2' db.info["db_name"].should == 'couchrest-test-2' end diff --git a/spec/couchrest/core/database_spec.rb b/spec/couchrest/core/database_spec.rb index 5fb2e70..5eebf91 100644 --- a/spec/couchrest/core/database_spec.rb +++ b/spec/couchrest/core/database_spec.rb @@ -159,7 +159,7 @@ describe CouchRest::Database do docs = [{'key' => 'value'}, {'_id' => 'totally-uniq'}] id_docs = [{'key' => 'value', '_id' => 'asdf6sgadkfhgsdfusdf'}, {'_id' => 'totally-uniq'}] - CouchRest.should_receive(:post).with("http://localhost:5984/couchrest-test/_bulk_docs", {:docs => id_docs}) + CouchRest.should_receive(:post).with("http://127.0.0.1:5984/couchrest-test/_bulk_docs", {:docs => id_docs}) @db.bulk_save(docs) end diff --git a/spec/couchrest/core/model_spec.rb b/spec/couchrest/core/model_spec.rb index 466b850..f9c9d47 100644 --- a/spec/couchrest/core/model_spec.rb +++ b/spec/couchrest/core/model_spec.rb @@ -45,7 +45,7 @@ class Course < CouchRest::Model end class Article < CouchRest::Model - use_database CouchRest.database!('http://localhost:5984/couchrest-model-test') + use_database CouchRest.database!('http://127.0.0.1:5984/couchrest-model-test') unique_id :slug view_by :date, :descending => true @@ -106,8 +106,8 @@ describe CouchRest::Model do @db = @cr.create_db(TESTDB) rescue nil @adb = @cr.database('couchrest-model-test') @adb.delete! rescue nil - CouchRest.database!('http://localhost:5984/couchrest-model-test') - CouchRest::Model.default_database = CouchRest.database!('http://localhost:5984/couchrest-test') + CouchRest.database!('http://127.0.0.1:5984/couchrest-model-test') + CouchRest::Model.default_database = CouchRest.database!('http://127.0.0.1:5984/couchrest-test') end it "should use the default database" do diff --git a/spec/couchrest/helpers/file_manager_spec.rb b/spec/couchrest/helpers/file_manager_spec.rb index 7e6d4db..ced4c5e 100644 --- a/spec/couchrest/helpers/file_manager_spec.rb +++ b/spec/couchrest/helpers/file_manager_spec.rb @@ -15,12 +15,12 @@ describe CouchRest::FileManager do lambda{CouchRest::FileManager.new}.should raise_error end it "should accept a db name" do - @fm = CouchRest::FileManager.new(TESTDB, 'http://localhost') + @fm = CouchRest::FileManager.new(TESTDB, 'http://127.0.0.1') @fm.db.name.should == TESTDB end - it "should default to localhost couchdb" do + it "should default to 127.0.0.1 couchdb" do @fm = CouchRest::FileManager.new(TESTDB) - @fm.db.host.should == 'http://localhost:5984' + @fm.db.host.should == 'http://127.0.0.1:5984' end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index c6ff9c4..f9d548c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../lib/couchrest' FIXTURE_PATH = File.dirname(__FILE__) + '/fixtures' -COUCHHOST = "http://localhost:5984" +COUCHHOST = "http://127.0.0.1:5984" TESTDB = 'couchrest-test' def reset_test_db! diff --git a/utils/remap.rb b/utils/remap.rb index f42c5d5..131aeb3 100644 --- a/utils/remap.rb +++ b/utils/remap.rb @@ -2,11 +2,11 @@ require 'rubygems' require 'couchrest' # set the source db and map view -source = CouchRest.new("http://localhost:5984").database('source-db') +source = CouchRest.new("http://127.0.0.1:5984").database('source-db') source_view = 'mydesign/view-map' # set the target db -target = CouchRest.new("http://localhost:5984").database('target-db') +target = CouchRest.new("http://127.0.0.1:5984").database('target-db') pager = CouchRest::Pager.new(source) diff --git a/utils/subset.rb b/utils/subset.rb index dd5d2e7..0b7adb9 100644 --- a/utils/subset.rb +++ b/utils/subset.rb @@ -5,10 +5,10 @@ require 'couchrest' # use it to create a smaller dataset on which to prototype views. # specify the source database -source = CouchRest.new("http://localhost:5984").database('source-db') +source = CouchRest.new("http://127.0.0.1:5984").database('source-db') # specify the target database -target = CouchRest.new("http://localhost:5984").database('target-db') +target = CouchRest.new("http://127.0.0.1:5984").database('target-db') # pager efficiently yields all view rows pager = CouchRest::Pager.new(source) From 5f65f9d8abcb32bff575dc2f12a03b05e7af8c47 Mon Sep 17 00:00:00 2001 From: Jan Lehnardt Date: Sun, 14 Dec 2008 13:14:31 +0100 Subject: [PATCH 2/4] add txt mimetype --- lib/couchrest/helper/file_manager.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/couchrest/helper/file_manager.rb b/lib/couchrest/helper/file_manager.rb index 946f96c..2eb578b 100644 --- a/lib/couchrest/helper/file_manager.rb +++ b/lib/couchrest/helper/file_manager.rb @@ -12,7 +12,8 @@ module CouchRest "png" => "image/png", "gif" => "image/gif", "css" => "text/css", - "js" => "test/javascript" + "js" => "test/javascript", + "txt" => "text/plain" } def initialize(dbname, host="http://127.0.0.1:5984") @db = CouchRest.new(host).database(dbname) From 6b4913e9e88b9563dac5c396b35b1840eb9846b2 Mon Sep 17 00:00:00 2001 From: Jan Lehnardt Date: Thu, 25 Dec 2008 21:03:58 +0100 Subject: [PATCH 3/4] push forms/ into _design/$this/forms --- lib/couchrest/helper/file_manager.rb | 48 ++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/lib/couchrest/helper/file_manager.rb b/lib/couchrest/helper/file_manager.rb index 2eb578b..c51849f 100644 --- a/lib/couchrest/helper/file_manager.rb +++ b/lib/couchrest/helper/file_manager.rb @@ -38,7 +38,7 @@ module CouchRest @attachments[name] = { "data" => value, "content_type" => MIMES[name.split('.').last] - } + } end doc = @db.get(docid) rescue nil @@ -153,7 +153,51 @@ module CouchRest designs end - + + def push_forms(forms_dir) + designs = {} + + Dir["#{forms_dir}/**/*.*"].each do |design_doc| + design_doc_parts = design_doc.split('/') + next if /^lib\..*$/.match design_doc_parts.last + pre_normalized_view_name = design_doc_parts.last.split("-") + form_name = pre_normalized_view_name[0..pre_normalized_view_name.length-2].join("-") + + folder = design_doc_parts[-2] + + designs[folder] ||= {} + designs[folder]["forms"] ||= {} + design_lang = design_doc_parts.last.split(".").last + designs[folder]["language"] ||= LANGS[design_lang] + + libs = "" + Dir["#{forms_dir}/lib.#{design_lang}"].collect do |global_lib| + libs << open(global_lib).read + libs << "\n" + end + Dir["#{forms_dir}/#{folder}/lib.#{design_lang}"].collect do |global_lib| + libs << open(global_lib).read + libs << "\n" + end + designs[folder]["forms"]["#{form_name}"] = read(design_doc, libs) + end + end + + # # cleanup empty maps and reduces + # designs.each do |name, props| + # props["forms"].each do |view, funcs| + # next unless view.include?("reduce") + # props["forms"].delete(view) unless funcs.keys.include?("reduce") + # end + # end + + designs.each do |k,v| + create_or_update("_design/#{k}", v) + end + + designs + end + def pull_views(view_dir) prefix = "_design" ds = db.documents(:startkey => '#{prefix}/', :endkey => '#{prefix}/ZZZZZZZZZ') From 5a35359f51089b747e40f26ad11bd21a149e9d10 Mon Sep 17 00:00:00 2001 From: Jan Lehnardt Date: Thu, 25 Dec 2008 21:48:02 +0100 Subject: [PATCH 4/4] push forms/ into _design/$this/forms --- lib/couchrest/helper/file_manager.rb | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/lib/couchrest/helper/file_manager.rb b/lib/couchrest/helper/file_manager.rb index c51849f..7bd4f39 100644 --- a/lib/couchrest/helper/file_manager.rb +++ b/lib/couchrest/helper/file_manager.rb @@ -175,22 +175,9 @@ module CouchRest libs << open(global_lib).read libs << "\n" end - Dir["#{forms_dir}/#{folder}/lib.#{design_lang}"].collect do |global_lib| - libs << open(global_lib).read - libs << "\n" - end - designs[folder]["forms"]["#{form_name}"] = read(design_doc, libs) - end + designs[folder]["forms"]["#{form_name}"] = read(design_doc, libs) end - # # cleanup empty maps and reduces - # designs.each do |name, props| - # props["forms"].each do |view, funcs| - # next unless view.include?("reduce") - # props["forms"].delete(view) unless funcs.keys.include?("reduce") - # end - # end - designs.each do |k,v| create_or_update("_design/#{k}", v) end