relaxo 0.4.0 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +17 -0
- data/.travis.yml +11 -0
- data/Gemfile +8 -0
- data/README.md +49 -24
- data/bin/relaxo +28 -16
- data/bin/relaxo-admin +61 -0
- data/build/master.rb +22 -0
- data/build/rakefile.rb +39 -0
- data/build/relaxo-0.1.0.gemspec +29 -0
- data/build/relaxo-0.1.1.gemspec +32 -0
- data/build/relaxo-0.2.0.gemspec +32 -0
- data/build/relaxo-0.3.0.gemspec +32 -0
- data/build/relaxo-0.3.1.gemspec +32 -0
- data/build/relaxo-0.4.0.gemspec +32 -0
- data/lib/relaxo/database.rb +0 -6
- data/lib/relaxo/version.rb +1 -7
- data/lib/relaxo.rb +5 -0
- data/rakefile.rb +9 -0
- data/relaxo.gemspec +30 -0
- data/test/{attachments_test.rb → test_attachments.rb} +5 -1
- data/test/{connection_test.rb → test_connection.rb} +0 -0
- data/test/{database_test.rb → test_database.rb} +0 -0
- data/test/{transaction_test.rb → test_transactions.rb} +0 -0
- metadata +107 -71
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZmJjYzZmZTEwYTAwNzczMjhlNmI5YzdmZWIxNTViOTMwZmZkZmY4Ng==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MzA2ZDlmY2U0MzI0NGFkMGExYmRmNjkyY2ZkZjAzMjQzNzliMGJiYQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ODBmMzE1YzAwNjM3MmUzZjJiNDRlZjNkMTM0NjNjZjM1YTYxZjUxMmQwMGY0
|
10
|
+
Njk2NTllYWZlM2RjZmU0YmU2ZWYxNWNjNGZmNjE0YjU1ZWQwZjM2NWMzMjdl
|
11
|
+
NDJhZWE5MzVkZmJkMjMxZjI5YzNhYTk3ZjI5YmZlOGNkYzVkMmY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZDU3MmI3MTc3NTY3Nzk2NmQ4Njk2Y2IyNTBmNWExY2ZjYTljN2U2NGE1NjNm
|
14
|
+
ZTM2YTI0MWM5N2MwNTFmMTYzYzQ3Y2IyYWYxZTM4YWVhZTA4ZDA5MDFhMzNk
|
15
|
+
MmNkYzA2Yzk1ZGJlZWRhNTkwY2ZhNWM3ZDI4ZTc2ZDY3ODNiZWU=
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -1,26 +1,24 @@
|
|
1
|
-
Relaxo
|
2
|
-
======
|
3
|
-
|
4
|
-
* Author: Samuel G. D. Williams (<http://www.oriontransfer.co.nz>)
|
5
|
-
* Copyright (C) 2012 Samuel G. D. Williams.
|
6
|
-
* Released under the MIT license.
|
1
|
+
# Relaxo
|
7
2
|
|
8
3
|
Relaxo provides a set of tools and interfaces for interacting with CouchDB. It aims to be as simple and efficient as possible while still improving the usability of various CouchDB features.
|
9
4
|
|
10
|
-
|
11
|
-
|
5
|
+
[![Build Status](https://secure.travis-ci.org/ioquatix/relaxo.png)](http://travis-ci.org/ioquatix/relaxo)
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
gem 'relaxo'
|
12
12
|
|
13
|
-
|
13
|
+
And then execute:
|
14
14
|
|
15
|
-
|
15
|
+
$ bundle
|
16
16
|
|
17
|
-
|
17
|
+
Or install it yourself as:
|
18
18
|
|
19
|
-
|
20
|
-
sudo GEM=gem1.9 rake1.9 install_gem
|
19
|
+
$ gem install relaxo
|
21
20
|
|
22
|
-
|
23
|
-
-----------
|
21
|
+
## Usage
|
24
22
|
|
25
23
|
Connect to a local database and manipulate some documents.
|
26
24
|
|
@@ -35,7 +33,7 @@ Connect to a local database and manipulate some documents.
|
|
35
33
|
doc2[:foo] = 'bar'
|
36
34
|
database.save(doc2)
|
37
35
|
|
38
|
-
### Bulk
|
36
|
+
### Transactions/Bulk Save
|
39
37
|
|
40
38
|
Sessions support a very similar interface to the main database class and can for many cases be used interchangeably, but with added efficiency.
|
41
39
|
|
@@ -57,18 +55,32 @@ Sessions support a very similar interface to the main database class and can for
|
|
57
55
|
# {:name=>"Chicken-san", "_id"=>"...", "_rev"=>"..."}
|
58
56
|
#]
|
59
57
|
|
60
|
-
All documents will allocated
|
61
|
-
using CouchDB `_bulk_save`.
|
58
|
+
All documents will allocated UUIDs appropriately and at the end of the session block they will be updated (saved or deleted) using CouchDB `_bulk_save`. The Transactions interface doesn't support any kind of interaction with the server and thus views won't be updated until after the transaction is complete.
|
62
59
|
|
63
60
|
To abort the session, either raise an exception or call `session.abort!` which is equivalent to `throw :abort`.
|
64
61
|
|
65
|
-
### Loading Data
|
62
|
+
### Loading Data
|
66
63
|
|
67
64
|
Relaxo includes a command line script to import documents into a CouchDB database:
|
68
65
|
|
69
|
-
relaxo
|
66
|
+
% relaxo --help
|
67
|
+
Usage: relaxo [options] [server-url] [files]
|
68
|
+
This script can be used to import data to CouchDB.
|
69
|
+
|
70
|
+
Document creation:
|
71
|
+
--existing [mode] Control whether to 'update (new document attributes takes priority), 'merge' (existing document attributes takes priority) or replace (old document attributes discarded) existing documents.
|
72
|
+
--format [type] Control the input format. 'yaml' files are imported as a single document or array of documents. 'csv' files are imported as records using the first row as attribute keys.
|
73
|
+
--[no-]transaction Controls whether data is saved using the batch save operation. Not suitable for huge amounts of data.
|
74
|
+
|
75
|
+
Help and Copyright information:
|
76
|
+
--copy Display copyright and warranty information
|
77
|
+
-h, --help Show this help message.
|
78
|
+
|
79
|
+
This command loads the documents stored in `design.yaml` and `sample.yaml` into the database at `http://localhost:5984/test`.
|
70
80
|
|
71
|
-
|
81
|
+
% relaxo http://localhost:5984/test design.yaml sample.yaml
|
82
|
+
|
83
|
+
...where `design.yaml` and `sample.yaml` contain lists of valid documents, e.g.:
|
72
84
|
|
73
85
|
# design.yaml
|
74
86
|
- _id: "_design/services"
|
@@ -82,10 +94,23 @@ Where `design.yaml` and `sample.yaml` contain lists of valid documents, e.g.:
|
|
82
94
|
}
|
83
95
|
}
|
84
96
|
|
85
|
-
|
86
|
-
|
97
|
+
If you specify `--format=csv`, the input files will be parsed as standard CSV. The document schema is inferred from the zeroth (header) row and all subsequent rows will be converted to individual documents. All fields will be saved as text.
|
98
|
+
|
99
|
+
If your requirements are more complex, consider writing a custom script either to import directly using the `relaxo` gem or convert your data to YAML and import that as above.
|
100
|
+
|
101
|
+
## Contributing
|
102
|
+
|
103
|
+
1. Fork it
|
104
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
105
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
106
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
107
|
+
5. Create new Pull Request
|
108
|
+
|
109
|
+
## License
|
110
|
+
|
111
|
+
Released under the MIT license.
|
87
112
|
|
88
|
-
Copyright
|
113
|
+
Copyright, 2012, by [Samuel G. D. Williams](http://www.codeotaku.com/samuel-williams).
|
89
114
|
|
90
115
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
91
116
|
of this software and associated documentation files (the "Software"), to deal
|
data/bin/relaxo
CHANGED
@@ -55,7 +55,7 @@ ARGV.options do |o|
|
|
55
55
|
o.separator "Help and Copyright information:"
|
56
56
|
|
57
57
|
o.on_tail("--copy", "Display copyright and warranty information") do
|
58
|
-
$stderr.puts "#{script_name} v#{Relaxo::VERSION
|
58
|
+
$stderr.puts "#{script_name} v#{Relaxo::VERSION}. Copyright (c) 2012 Samuel Williams."
|
59
59
|
$stderr.puts "This software is released under the MIT license and comes with ABSOLUTELY NO WARRANTY."
|
60
60
|
exit
|
61
61
|
end
|
@@ -66,19 +66,31 @@ ARGV.options do |o|
|
|
66
66
|
end
|
67
67
|
end.parse!
|
68
68
|
|
69
|
-
|
70
|
-
$stderr.puts "Connecting to #{$url}..."
|
71
|
-
$database = Relaxo.connect($url)
|
69
|
+
url = ARGV.shift
|
72
70
|
|
73
|
-
$
|
71
|
+
$stderr.puts "Connecting to #{url}..."
|
72
|
+
database = Relaxo.connect(url)
|
74
73
|
|
75
|
-
|
74
|
+
begin
|
75
|
+
info = database.info
|
76
|
+
|
77
|
+
$stderr.puts "Connected to #{info['db_name']} which contains #{info['doc_count']} document(s)."
|
78
|
+
rescue StandardError => error
|
79
|
+
$stderr.puts "Could not fetch info from database server!"
|
80
|
+
|
81
|
+
throw
|
82
|
+
end
|
83
|
+
|
84
|
+
|
85
|
+
format = Formats.method(OPTIONS[:format])
|
86
|
+
|
87
|
+
@stats = {
|
76
88
|
:saved => 0,
|
77
89
|
:errors => 0,
|
78
90
|
:total => 0
|
79
91
|
}
|
80
92
|
|
81
|
-
def process_document(database)
|
93
|
+
def process_document(database, document)
|
82
94
|
begin
|
83
95
|
existing_document = nil
|
84
96
|
|
@@ -106,25 +118,25 @@ def process_document(database)
|
|
106
118
|
end
|
107
119
|
|
108
120
|
$stderr.puts "Saving #{document.inspect}"
|
109
|
-
|
121
|
+
result = database.save(document)
|
110
122
|
|
111
|
-
|
123
|
+
@stats[:saved] += 1
|
112
124
|
rescue RestClient::BadRequest => ex
|
113
125
|
$stderr.puts ex.inspect
|
114
126
|
|
115
|
-
|
127
|
+
@stats[:errors] += 1
|
116
128
|
end
|
117
129
|
|
118
|
-
|
130
|
+
@stats[:total] += 1
|
119
131
|
end
|
120
132
|
|
121
133
|
begin
|
122
|
-
|
123
|
-
process_document(document)
|
134
|
+
format.call(ARGF) do |document|
|
135
|
+
process_document(database, document)
|
124
136
|
end
|
125
137
|
ensure
|
126
|
-
$stderr.puts "#{
|
127
|
-
if
|
128
|
-
$stderr.puts "#{
|
138
|
+
$stderr.puts "#{@stats[:saved]} document(s) saved out of #{@stats[:total]}."
|
139
|
+
if @stats[:errors] > 0
|
140
|
+
$stderr.puts "#{@stats[:errors]} errors occurred!"
|
129
141
|
end
|
130
142
|
end
|
data/bin/relaxo-admin
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'relaxo'
|
4
|
+
require 'relaxo/version'
|
5
|
+
require 'optparse'
|
6
|
+
require 'digest/sha1'
|
7
|
+
|
8
|
+
$url = ARGV.shift unless ARGV[0] =~ /^-/
|
9
|
+
$connection = Relaxo::Connection.new($url)
|
10
|
+
|
11
|
+
OPTIONS = {
|
12
|
+
:roles => [],
|
13
|
+
:password => nil
|
14
|
+
}
|
15
|
+
|
16
|
+
ARGV.options do |o|
|
17
|
+
script_name = File.basename($0)
|
18
|
+
|
19
|
+
o.banner = "Usage: #{script_name} [server-url] [options]"
|
20
|
+
o.define_head "This script can be used to import data to CouchDB."
|
21
|
+
|
22
|
+
o.on("--password password", "Specify the password for a new user") do |password|
|
23
|
+
OPTIONS[:password] = password
|
24
|
+
end
|
25
|
+
|
26
|
+
o.on("--roles reader,writer", Array, "Specify the roles for a new user") do |roles|
|
27
|
+
OPTIONS[:roles] = roles
|
28
|
+
end
|
29
|
+
|
30
|
+
o.on("--create-user name", "Create a new (non-admin) user") do |name|
|
31
|
+
password = OPTIONS[:password]
|
32
|
+
|
33
|
+
salt = Digest::SHA1.hexdigest(rand.to_s + name + Time.now.to_s + password)
|
34
|
+
|
35
|
+
user = {
|
36
|
+
Relaxo::ID => "org.couchdb.user:#{name}",
|
37
|
+
:type => "user",
|
38
|
+
:name => name,
|
39
|
+
:roles => OPTIONS[:roles],
|
40
|
+
:salt => salt,
|
41
|
+
:password_sha => Digest::SHA1.hexdigest(password + salt)
|
42
|
+
}
|
43
|
+
|
44
|
+
database = Relaxo::Database.new($connection, "_users")
|
45
|
+
puts database.save(user).inspect
|
46
|
+
end
|
47
|
+
|
48
|
+
o.separator ""
|
49
|
+
o.separator "Help and Copyright information:"
|
50
|
+
|
51
|
+
o.on_tail("--copy", "Display copyright and warranty information") do
|
52
|
+
$stderr.puts "#{script_name} v#{Relaxo::VERSION}. Copyright (c) 2012 Samuel Williams."
|
53
|
+
$stderr.puts "This software is released under the MIT license and comes with ABSOLUTELY NO WARRANTY."
|
54
|
+
exit
|
55
|
+
end
|
56
|
+
|
57
|
+
o.on_tail("-h", "--help", "Show this help message.") do
|
58
|
+
$stderr.puts o
|
59
|
+
exit
|
60
|
+
end
|
61
|
+
end.parse!
|
data/build/master.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
Dir.chdir("../") do
|
3
|
+
require './lib/relaxo/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "relaxo"
|
7
|
+
s.version = Relaxo::VERSION::STRING
|
8
|
+
s.author = "Samuel Williams"
|
9
|
+
s.email = "samuel@oriontransfer.org"
|
10
|
+
s.homepage = "http://www.codeotaku.com/projects/relaxo"
|
11
|
+
s.platform = Gem::Platform::RUBY
|
12
|
+
s.summary = "Relaxo is a helper for loading and working with CouchDB."
|
13
|
+
s.files = FileList["{bin,lib,test}/**/*"] + ["rakefile.rb", "Gemfile", "README.md"]
|
14
|
+
|
15
|
+
s.executables << 'relaxo'
|
16
|
+
|
17
|
+
s.add_dependency("json", "~> 1.7.3")
|
18
|
+
s.add_dependency("rest-client", "~> 1.6.7")
|
19
|
+
|
20
|
+
s.has_rdoc = "yard"
|
21
|
+
end
|
22
|
+
end
|
data/build/rakefile.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
# Automatic Gem Build Script v3.0
|
3
|
+
|
4
|
+
require 'fileutils'
|
5
|
+
require 'rubygems'
|
6
|
+
|
7
|
+
MasterGemspec = "master.rb"
|
8
|
+
|
9
|
+
GEM = ENV['GEM'] || "gem"
|
10
|
+
|
11
|
+
desc 'Build a gemspec file'
|
12
|
+
task :build_gemspec do
|
13
|
+
$spec = Gem::Specification.load(MasterGemspec)
|
14
|
+
|
15
|
+
$versioned_gem = "#{$spec.name}-#{$spec.version}.gem"
|
16
|
+
$versioned_gemspec = "#{$spec.name}-#{$spec.version}.gemspec"
|
17
|
+
$base_gemspec = "#{$spec.name}.gemspec"
|
18
|
+
|
19
|
+
puts "Building #{$versioned_gemspec}..."
|
20
|
+
|
21
|
+
File.open($versioned_gemspec, "w") do |f|
|
22
|
+
f.write($spec.to_ruby)
|
23
|
+
end
|
24
|
+
|
25
|
+
puts "Copying file to ../#{$base_gemspec}"
|
26
|
+
FileUtils.cp($versioned_gemspec, "../#{$base_gemspec}")
|
27
|
+
end
|
28
|
+
|
29
|
+
task :build_gem => [:build_gemspec] do
|
30
|
+
Dir.chdir("../") do
|
31
|
+
system("#{GEM} build #{$base_gemspec}")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
task :install_gem => [:build_gem] do
|
36
|
+
Dir.chdir("../") do
|
37
|
+
system("#{GEM} install --local #{$versioned_gem}")
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "relaxo"
|
5
|
+
s.version = "0.1.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Samuel Williams"]
|
9
|
+
s.date = "2012-07-09"
|
10
|
+
s.email = "samuel.williams@oriontransfer.co.nz"
|
11
|
+
s.executables = ["relaxo"]
|
12
|
+
s.files = ["bin/relaxo", "lib/relaxo", "lib/relaxo/version.rb", "lib/relaxo.rb", "README.md"]
|
13
|
+
s.homepage = "http://www.oriontransfer.co.nz/gems/relaxo"
|
14
|
+
s.require_paths = ["lib"]
|
15
|
+
s.rubygems_version = "1.8.23"
|
16
|
+
s.summary = "Relaxo is a helper for loading and working with CouchDB."
|
17
|
+
|
18
|
+
if s.respond_to? :specification_version then
|
19
|
+
s.specification_version = 3
|
20
|
+
|
21
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
22
|
+
s.add_runtime_dependency(%q<couchrest>, [">= 0"])
|
23
|
+
else
|
24
|
+
s.add_dependency(%q<couchrest>, [">= 0"])
|
25
|
+
end
|
26
|
+
else
|
27
|
+
s.add_dependency(%q<couchrest>, [">= 0"])
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "relaxo"
|
5
|
+
s.version = "0.1.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Samuel Williams"]
|
9
|
+
s.date = "2012-07-10"
|
10
|
+
s.email = "samuel.williams@oriontransfer.co.nz"
|
11
|
+
s.executables = ["relaxo"]
|
12
|
+
s.files = ["bin/relaxo", "lib/relaxo", "lib/relaxo/client.rb", "lib/relaxo/database.rb", "lib/relaxo/model.rb", "lib/relaxo/properties.rb", "lib/relaxo/recordset.rb", "lib/relaxo/server.rb", "lib/relaxo/version.rb", "lib/relaxo.rb", "README.md"]
|
13
|
+
s.homepage = "http://www.oriontransfer.co.nz/gems/relaxo"
|
14
|
+
s.require_paths = ["lib"]
|
15
|
+
s.rubygems_version = "1.8.23"
|
16
|
+
s.summary = "Relaxo is a helper for loading and working with CouchDB."
|
17
|
+
|
18
|
+
if s.respond_to? :specification_version then
|
19
|
+
s.specification_version = 3
|
20
|
+
|
21
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
22
|
+
s.add_runtime_dependency(%q<couchrest>, [">= 0"])
|
23
|
+
s.add_runtime_dependency(%q<rest-client>, [">= 0"])
|
24
|
+
else
|
25
|
+
s.add_dependency(%q<couchrest>, [">= 0"])
|
26
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
27
|
+
end
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<couchrest>, [">= 0"])
|
30
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "relaxo"
|
5
|
+
s.version = "0.2.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Samuel Williams"]
|
9
|
+
s.date = "2012-07-11"
|
10
|
+
s.email = "samuel.williams@oriontransfer.co.nz"
|
11
|
+
s.executables = ["relaxo"]
|
12
|
+
s.files = ["bin/relaxo", "lib/relaxo", "lib/relaxo/client.rb", "lib/relaxo/database.rb", "lib/relaxo/model.rb", "lib/relaxo/properties", "lib/relaxo/properties/money.rb", "lib/relaxo/properties.rb", "lib/relaxo/recordset.rb", "lib/relaxo/server.rb", "lib/relaxo/version.rb", "lib/relaxo.rb", "README.md"]
|
13
|
+
s.homepage = "http://www.oriontransfer.co.nz/gems/relaxo"
|
14
|
+
s.require_paths = ["lib"]
|
15
|
+
s.rubygems_version = "1.8.23"
|
16
|
+
s.summary = "Relaxo is a helper for loading and working with CouchDB."
|
17
|
+
|
18
|
+
if s.respond_to? :specification_version then
|
19
|
+
s.specification_version = 3
|
20
|
+
|
21
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
22
|
+
s.add_runtime_dependency(%q<couchrest>, [">= 0"])
|
23
|
+
s.add_runtime_dependency(%q<rest-client>, [">= 0"])
|
24
|
+
else
|
25
|
+
s.add_dependency(%q<couchrest>, [">= 0"])
|
26
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
27
|
+
end
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<couchrest>, [">= 0"])
|
30
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "relaxo"
|
5
|
+
s.version = "0.3.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Samuel Williams"]
|
9
|
+
s.date = "2012-07-11"
|
10
|
+
s.email = "samuel.williams@oriontransfer.co.nz"
|
11
|
+
s.executables = ["relaxo"]
|
12
|
+
s.files = ["bin/relaxo", "lib/relaxo", "lib/relaxo/client.rb", "lib/relaxo/database.rb", "lib/relaxo/server.rb", "lib/relaxo/session.rb", "lib/relaxo/version.rb", "lib/relaxo.rb", "README.md"]
|
13
|
+
s.homepage = "http://www.oriontransfer.co.nz/gems/relaxo"
|
14
|
+
s.require_paths = ["lib"]
|
15
|
+
s.rubygems_version = "1.8.23"
|
16
|
+
s.summary = "Relaxo is a helper for loading and working with CouchDB."
|
17
|
+
|
18
|
+
if s.respond_to? :specification_version then
|
19
|
+
s.specification_version = 3
|
20
|
+
|
21
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
22
|
+
s.add_runtime_dependency(%q<json>, ["~> 1.7.3"])
|
23
|
+
s.add_runtime_dependency(%q<rest-client>, ["~> 1.6.7"])
|
24
|
+
else
|
25
|
+
s.add_dependency(%q<json>, ["~> 1.7.3"])
|
26
|
+
s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
|
27
|
+
end
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<json>, ["~> 1.7.3"])
|
30
|
+
s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "relaxo"
|
5
|
+
s.version = "0.3.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Samuel Williams"]
|
9
|
+
s.date = "2012-07-23"
|
10
|
+
s.email = "samuel.williams@oriontransfer.co.nz"
|
11
|
+
s.executables = ["relaxo"]
|
12
|
+
s.files = ["bin/relaxo", "lib/relaxo", "lib/relaxo/client.rb", "lib/relaxo/connection.rb", "lib/relaxo/database.rb", "lib/relaxo/session.rb", "lib/relaxo/version.rb", "lib/relaxo.rb", "test/database_test.rb", "README.md"]
|
13
|
+
s.homepage = "http://www.oriontransfer.co.nz/gems/relaxo"
|
14
|
+
s.require_paths = ["lib"]
|
15
|
+
s.rubygems_version = "1.8.23"
|
16
|
+
s.summary = "Relaxo is a helper for loading and working with CouchDB."
|
17
|
+
|
18
|
+
if s.respond_to? :specification_version then
|
19
|
+
s.specification_version = 3
|
20
|
+
|
21
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
22
|
+
s.add_runtime_dependency(%q<json>, ["~> 1.7.3"])
|
23
|
+
s.add_runtime_dependency(%q<rest-client>, ["~> 1.6.7"])
|
24
|
+
else
|
25
|
+
s.add_dependency(%q<json>, ["~> 1.7.3"])
|
26
|
+
s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
|
27
|
+
end
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<json>, ["~> 1.7.3"])
|
30
|
+
s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "relaxo"
|
5
|
+
s.version = "0.4.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Samuel Williams"]
|
9
|
+
s.date = "2012-10-14"
|
10
|
+
s.email = "samuel.williams@oriontransfer.co.nz"
|
11
|
+
s.executables = ["relaxo"]
|
12
|
+
s.files = ["bin/relaxo", "lib/relaxo", "lib/relaxo/attachments.rb", "lib/relaxo/base64-1.8.rb", "lib/relaxo/client.rb", "lib/relaxo/connection.rb", "lib/relaxo/database.rb", "lib/relaxo/json.rb", "lib/relaxo/transaction.rb", "lib/relaxo/version.rb", "lib/relaxo.rb", "test/README.md", "test/attachments_test.rb", "test/connection_test.rb", "test/database_test.rb", "test/helper.rb", "test/transaction_test.rb", "README.md"]
|
13
|
+
s.homepage = "http://www.oriontransfer.co.nz/gems/relaxo"
|
14
|
+
s.require_paths = ["lib"]
|
15
|
+
s.rubygems_version = "1.8.23"
|
16
|
+
s.summary = "Relaxo is a helper for loading and working with CouchDB."
|
17
|
+
|
18
|
+
if s.respond_to? :specification_version then
|
19
|
+
s.specification_version = 3
|
20
|
+
|
21
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
22
|
+
s.add_runtime_dependency(%q<json>, ["~> 1.7.3"])
|
23
|
+
s.add_runtime_dependency(%q<rest-client>, ["~> 1.6.7"])
|
24
|
+
else
|
25
|
+
s.add_dependency(%q<json>, ["~> 1.7.3"])
|
26
|
+
s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
|
27
|
+
end
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<json>, ["~> 1.7.3"])
|
30
|
+
s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
|
31
|
+
end
|
32
|
+
end
|
data/lib/relaxo/database.rb
CHANGED
data/lib/relaxo/version.rb
CHANGED
data/lib/relaxo.rb
CHANGED
data/rakefile.rb
ADDED
data/relaxo.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'relaxo/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "relaxo"
|
8
|
+
spec.version = Relaxo::VERSION
|
9
|
+
spec.authors = ["Samuel Williams"]
|
10
|
+
spec.email = ["samuel.williams@oriontransfer.co.nz"]
|
11
|
+
spec.description = <<-EOF
|
12
|
+
Relaxo provides a set of tools and interfaces for interacting with CouchDB.
|
13
|
+
It aims to be as simple and efficient as possible while still improving the
|
14
|
+
usability of various CouchDB features.
|
15
|
+
EOF
|
16
|
+
spec.summary = %q{Relaxo is a helper for loading and working with CouchDB.}
|
17
|
+
spec.homepage = ""
|
18
|
+
spec.license = "MIT"
|
19
|
+
|
20
|
+
spec.files = `git ls-files`.split($/)
|
21
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
22
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
23
|
+
spec.require_paths = ["lib"]
|
24
|
+
|
25
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
26
|
+
spec.add_development_dependency "rake"
|
27
|
+
|
28
|
+
spec.add_dependency "json", "~> 1.7.3"
|
29
|
+
spec.add_dependency "rest-client"
|
30
|
+
end
|
@@ -27,6 +27,10 @@ class DatabaseTest < Test::Unit::TestCase
|
|
27
27
|
}
|
28
28
|
}
|
29
29
|
|
30
|
-
|
30
|
+
result = @database.save(document)
|
31
|
+
assert result['ok']
|
32
|
+
|
33
|
+
document = @database.get(document[Relaxo::ID])
|
34
|
+
assert_equal 1, document[Relaxo::ATTACHMENTS].size
|
31
35
|
end
|
32
36
|
end
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,60 +1,97 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaxo
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 4
|
8
|
-
- 0
|
9
|
-
version: 0.4.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.2
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
6
|
+
authors:
|
12
7
|
- Samuel Williams
|
13
8
|
autorequire:
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
date: 2013-04-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
22
35
|
prerelease: false
|
23
|
-
|
24
|
-
requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: json
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
25
45
|
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 1
|
29
|
-
- 7
|
30
|
-
- 3
|
46
|
+
- !ruby/object:Gem::Version
|
31
47
|
version: 1.7.3
|
32
48
|
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: rest-client
|
36
49
|
prerelease: false
|
37
|
-
|
38
|
-
requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
39
52
|
- - ~>
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.7.3
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rest-client
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
46
62
|
type: :runtime
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: ! "\t\tRelaxo provides a set of tools and interfaces for interacting
|
70
|
+
with CouchDB.\n\t\tIt aims to be as simple and efficient as possible while still
|
71
|
+
improving the\n\t\tusability of various CouchDB features.\n"
|
72
|
+
email:
|
73
|
+
- samuel.williams@oriontransfer.co.nz
|
74
|
+
executables:
|
51
75
|
- relaxo
|
76
|
+
- relaxo-admin
|
52
77
|
extensions: []
|
53
|
-
|
54
78
|
extra_rdoc_files: []
|
55
|
-
|
56
|
-
|
79
|
+
files:
|
80
|
+
- .gitignore
|
81
|
+
- .travis.yml
|
82
|
+
- Gemfile
|
83
|
+
- README.md
|
57
84
|
- bin/relaxo
|
85
|
+
- bin/relaxo-admin
|
86
|
+
- build/master.rb
|
87
|
+
- build/rakefile.rb
|
88
|
+
- build/relaxo-0.1.0.gemspec
|
89
|
+
- build/relaxo-0.1.1.gemspec
|
90
|
+
- build/relaxo-0.2.0.gemspec
|
91
|
+
- build/relaxo-0.3.0.gemspec
|
92
|
+
- build/relaxo-0.3.1.gemspec
|
93
|
+
- build/relaxo-0.4.0.gemspec
|
94
|
+
- lib/relaxo.rb
|
58
95
|
- lib/relaxo/attachments.rb
|
59
96
|
- lib/relaxo/base64-1.8.rb
|
60
97
|
- lib/relaxo/client.rb
|
@@ -63,43 +100,42 @@ files:
|
|
63
100
|
- lib/relaxo/json.rb
|
64
101
|
- lib/relaxo/transaction.rb
|
65
102
|
- lib/relaxo/version.rb
|
66
|
-
-
|
103
|
+
- rakefile.rb
|
104
|
+
- relaxo.gemspec
|
67
105
|
- test/README.md
|
68
|
-
- test/attachments_test.rb
|
69
|
-
- test/connection_test.rb
|
70
|
-
- test/database_test.rb
|
71
106
|
- test/helper.rb
|
72
|
-
- test/
|
73
|
-
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
107
|
+
- test/test_attachments.rb
|
108
|
+
- test/test_connection.rb
|
109
|
+
- test/test_database.rb
|
110
|
+
- test/test_transactions.rb
|
111
|
+
homepage: ''
|
112
|
+
licenses:
|
113
|
+
- MIT
|
114
|
+
metadata: {}
|
78
115
|
post_install_message:
|
79
116
|
rdoc_options: []
|
80
|
-
|
81
|
-
require_paths:
|
117
|
+
require_paths:
|
82
118
|
- lib
|
83
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
segments:
|
95
|
-
- 0
|
96
|
-
version: "0"
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ! '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
97
129
|
requirements: []
|
98
|
-
|
99
130
|
rubyforge_project:
|
100
|
-
rubygems_version:
|
131
|
+
rubygems_version: 2.0.2
|
101
132
|
signing_key:
|
102
|
-
specification_version:
|
133
|
+
specification_version: 4
|
103
134
|
summary: Relaxo is a helper for loading and working with CouchDB.
|
104
|
-
test_files:
|
105
|
-
|
135
|
+
test_files:
|
136
|
+
- test/README.md
|
137
|
+
- test/helper.rb
|
138
|
+
- test/test_attachments.rb
|
139
|
+
- test/test_connection.rb
|
140
|
+
- test/test_database.rb
|
141
|
+
- test/test_transactions.rb
|