Merge branch 'janl/master'

This commit is contained in:
Chris Anderson 2008-12-31 15:16:32 -08:00
commit c488aab338
16 changed files with 81 additions and 49 deletions

View file

@ -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

View file

@ -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 = {}

View file

@ -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."
#

View file

@ -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..."

View file

@ -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
}

View file

@ -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:
{

View file

@ -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

View file

@ -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

View file

@ -12,9 +12,10 @@ 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://localhost:5984")
def initialize(dbname, host="http://127.0.0.1:5984")
@db = CouchRest.new(host).database(dbname)
end
@ -153,6 +154,37 @@ 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
designs[folder]["forms"]["#{form_name}"] = read(design_doc, libs)
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')

View file

@ -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

View file

@ -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

View file

@ -46,7 +46,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
@ -110,8 +110,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

View file

@ -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

View file

@ -5,7 +5,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!

View file

@ -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)

View file

@ -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)