ruote-couch 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+
2
+ = ruote-couch - CHANGELOG.txt
3
+
4
+ == ruote-couch 2.1.0 not yet released
5
+
@@ -0,0 +1,21 @@
1
+
2
+ Copyright (c) 2001-2010, John Mettraux, jmettraux@gmail.com
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in
12
+ all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
21
+
@@ -0,0 +1,26 @@
1
+
2
+ = ruote-couch
3
+
4
+ A storage implementation for ruote 2.1.x.
5
+
6
+ Warning : this is a very naive implementation for now. No optimizations.
7
+
8
+
9
+ == license
10
+
11
+ MIT
12
+
13
+
14
+ == Links
15
+
16
+ http://ruote.rubyforge.org
17
+ http://github.com/jmettraux/ruote
18
+
19
+ http://jmettraux.wordpress.com (blog)
20
+
21
+
22
+ == feedback
23
+
24
+ mailing list : http://groups.google.com/group/openwferu-users
25
+ irc : irc.freenode.net #ruote
26
+
@@ -0,0 +1,77 @@
1
+
2
+ require 'rubygems'
3
+ require 'rake'
4
+
5
+ require 'lib/ruote/couch/version.rb'
6
+
7
+ #
8
+ # CLEAN
9
+
10
+ require 'rake/clean'
11
+ CLEAN.include('pkg', 'tmp', 'html')
12
+ task :default => [ :clean ]
13
+
14
+
15
+ #
16
+ # GEM
17
+
18
+ require 'jeweler'
19
+
20
+ Jeweler::Tasks.new do |gem|
21
+
22
+ gem.version = Ruote::Couch::VERSION
23
+ gem.name = 'ruote-couch'
24
+ gem.summary = 'CouchDB storage for ruote 2.1'
25
+ gem.description = %{
26
+ CouchDB storage for ruote 2.1 (ruby workflow engine)
27
+ }.strip
28
+ gem.email = 'jmettraux@gmail.com'
29
+ gem.homepage = 'http://github.com/jmettraux/ruote-couch'
30
+ gem.authors = [ 'John Mettraux' ]
31
+ gem.rubyforge_project = 'ruote'
32
+
33
+ gem.test_file = 'test/test.rb'
34
+
35
+ #gem.add_dependency 'yajl-ruby'
36
+ #gem.add_dependency 'json'
37
+ gem.add_dependency 'rufus-jig', '>= 0.1.6'
38
+ gem.add_development_dependency 'yard', '>= 0'
39
+
40
+ # gemspec spec : http://www.rubygems.org/read/chapter/20
41
+ end
42
+ Jeweler::GemcutterTasks.new
43
+
44
+
45
+ #
46
+ # DOC
47
+
48
+ begin
49
+
50
+ require 'yard'
51
+
52
+ YARD::Rake::YardocTask.new do |doc|
53
+ doc.options = [
54
+ '-o', 'html/ruote-couch', '--title',
55
+ "ruote-couch #{Ruote::Couch::VERSION}"
56
+ ]
57
+ end
58
+
59
+ rescue LoadError
60
+
61
+ task :yard do
62
+ abort "YARD is not available : sudo gem install yard"
63
+ end
64
+ end
65
+
66
+
67
+ #
68
+ # TO THE WEB
69
+
70
+ task :upload_website => [ :clean, :yard ] do
71
+
72
+ account = 'jmettraux@rubyforge.org'
73
+ webdir = '/var/www/gforge-projects/ruote'
74
+
75
+ sh "rsync -azv -e ssh html/ruote-couch #{account}:#{webdir}/"
76
+ end
77
+
@@ -0,0 +1,8 @@
1
+
2
+ [ ] view for ats
3
+ [ ] view for crons
4
+
5
+ [ ] jig / r-couch should not rely on exceptions
6
+
7
+ [x] ct_2 --couch says put(gone) is returning nil... :(
8
+
@@ -0,0 +1,3 @@
1
+
2
+ require 'ruote/couch/storage'
3
+
@@ -0,0 +1,3 @@
1
+
2
+ require 'ruote/couch/storage'
3
+
@@ -0,0 +1,145 @@
1
+ #--
2
+ # Copyright (c) 2005-2010, John Mettraux, jmettraux@gmail.com
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ # of this software and associated documentation files (the "Software"), to deal
6
+ # in the Software without restriction, including without limitation the rights
7
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ # copies of the Software, and to permit persons to whom the Software is
9
+ # furnished to do so, subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in
12
+ # all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ # THE SOFTWARE.
21
+ #
22
+ # Made in Japan.
23
+ #++
24
+
25
+
26
+ module Ruote::Couch
27
+
28
+ class Database
29
+
30
+ attr_reader :type
31
+
32
+ def initialize (host, port, type, name, re_put_ok=true)
33
+
34
+ @couch = Rufus::Jig::Couch.new(host, port, name, :re_put_ok => re_put_ok)
35
+ @couch.put('.') unless @couch.get('.')
36
+
37
+ @type = type
38
+
39
+ prepare
40
+ end
41
+
42
+ def put (doc, opts)
43
+
44
+ doc['put_at'] = Ruote.now_to_utc_s
45
+
46
+ @couch.put(doc, :update_rev => opts[:update_rev])
47
+ #
48
+ # :update_rev => true :
49
+ # updating the current doc _rev, this trick allows
50
+ # direct "create then apply" chaining
51
+ end
52
+
53
+ def get (key)
54
+
55
+ @couch.get(key)
56
+ end
57
+
58
+ def delete (doc)
59
+
60
+ begin
61
+
62
+ @couch.delete(doc)
63
+
64
+ rescue Rufus::Jig::HttpError => he
65
+ if he.status == 404
66
+ true
67
+ else
68
+ raise he
69
+ end
70
+ end
71
+ end
72
+
73
+ def get_many (key, opts)
74
+
75
+ os = if l = opts[:limit]
76
+ "&limit=#{l}"
77
+ else
78
+ ''
79
+ end
80
+
81
+ rs = @couch.get("_all_docs?include_docs=true#{os}")
82
+
83
+ rs = rs['rows'].collect { |e| e['doc'] }
84
+
85
+ rs = rs.select { |doc| doc['_id'].match(key) } if key
86
+ # naive...
87
+
88
+ rs
89
+ end
90
+
91
+ def dump
92
+
93
+ s = "=== #{@type} ===\n"
94
+
95
+ get_many(nil, {}).inject(s) do |s1, e|
96
+ s1 << "\n"
97
+ e.keys.sort.inject(s1) do |s2, k|
98
+ s2 << " #{k} => #{e[k].inspect}\n"
99
+ end
100
+ end
101
+ end
102
+
103
+ def shutdown
104
+
105
+ @couch.close
106
+ end
107
+
108
+ def purge!
109
+
110
+ @couch.delete('.')
111
+ @couch.close
112
+ end
113
+
114
+ protected
115
+
116
+ def prepare
117
+
118
+ # nothing to do for a index-less database
119
+ end
120
+ end
121
+
122
+ class WfidIndexedDatabase < Database
123
+
124
+ #DESIGN_DOC_TEMPLATE = %{
125
+ # {
126
+ # "_id": "_design/ruote",
127
+ # "version": 0,
128
+ #
129
+ # "views": {
130
+ # "by_type": {
131
+ # "map": "function (doc) { emit(doc.type, doc); }"
132
+ # }
133
+ # }
134
+ # }
135
+ #}.strip
136
+
137
+ protected
138
+
139
+ def prepare
140
+
141
+ # TODO
142
+ end
143
+ end
144
+ end
145
+
@@ -0,0 +1,144 @@
1
+ #--
2
+ # Copyright (c) 2005-2010, John Mettraux, jmettraux@gmail.com
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ # of this software and associated documentation files (the "Software"), to deal
6
+ # in the Software without restriction, including without limitation the rights
7
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ # copies of the Software, and to permit persons to whom the Software is
9
+ # furnished to do so, subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in
12
+ # all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ # THE SOFTWARE.
21
+ #
22
+ # Made in Japan.
23
+ #++
24
+
25
+ require 'ruote/storage/base'
26
+ require 'ruote/couch/version'
27
+ require 'ruote/couch/database'
28
+ require 'rufus/jig' # gem install rufus-jig
29
+
30
+
31
+ module Ruote
32
+ module Couch
33
+
34
+ class CouchStorage
35
+
36
+ include Ruote::StorageBase
37
+
38
+ attr_reader :couch
39
+
40
+ def initialize (host, port, options={})
41
+
42
+ @host = host
43
+ @port = port
44
+
45
+ @options = options
46
+
47
+ @prefix = options['prefix'] || ''
48
+ @prefix = "#{@prefix}_" if @prefix.size > 0
49
+
50
+ @dbs = {}
51
+
52
+ %w[ msgs schedules configurations variables ].each do |type|
53
+
54
+ @dbs[type] = Database.new(
55
+ @host, @port, type, "#{@prefix}ruote_#{type}")
56
+ end
57
+
58
+ %w[ errors workitems ].each do |type|
59
+
60
+ @dbs[type] = WfidIndexedDatabase.new(
61
+ @host, @port, type, "#{@prefix}ruote_#{type}")
62
+ end
63
+
64
+ @dbs['expressions'] = WfidIndexedDatabase.new(
65
+ @host, @port, 'expressions', "#{@prefix}ruote_expressions", false)
66
+
67
+ put_configuration
68
+ end
69
+
70
+ def put (doc, opts={})
71
+
72
+ @dbs[doc['type']].put(doc, opts)
73
+ end
74
+
75
+ def get (type, key)
76
+
77
+ @dbs[type].get(key)
78
+ end
79
+
80
+ def delete (doc)
81
+
82
+ db = @dbs[doc['type']]
83
+
84
+ raise ArgumentError.new("no database for type '#{doc['type']}'") unless db
85
+
86
+ db.delete(doc)
87
+ end
88
+
89
+ def get_many (type, key=nil, opts={})
90
+
91
+ @dbs[type].get_many(key, opts)
92
+ end
93
+
94
+ def purge!
95
+
96
+ @dbs.values.each { |db| db.purge! }
97
+ end
98
+
99
+ def dump (type)
100
+
101
+ @dbs[type].dump
102
+ end
103
+
104
+ def shutdown
105
+
106
+ @dbs.values.each { |db| db.shutdown }
107
+ end
108
+
109
+ # Mainly used by ruote's test/unit/ut_17_storage.rb
110
+ #
111
+ def add_test_type (type)
112
+
113
+ @dbs[type] = Database.new(
114
+ @host, @port, type, "#{@prefix}ruote_#{type}", false)
115
+ end
116
+
117
+ protected
118
+
119
+ def put_configuration
120
+
121
+ return if get('configurations', 'engine')
122
+
123
+ conf = { '_id' => 'engine', 'type' => 'configurations' }.merge!(@options)
124
+
125
+ put(conf)
126
+ end
127
+
128
+ # def put_design_document
129
+ #
130
+ # doc = Rufus::Jig::Json.decode(
131
+ # File.read(File.join(File.dirname(__FILE__), 'storage.json')))
132
+ #
133
+ # current = @couch.get('_design/ruote')
134
+ #
135
+ # if current.nil? || doc['version'] >= (current['version'] || -1)
136
+ #
137
+ # @couch.delete(current) if current
138
+ # @couch.put(doc)
139
+ # end
140
+ # end
141
+ end
142
+ end
143
+ end
144
+
@@ -0,0 +1,7 @@
1
+
2
+ module Ruote
3
+ module Couch
4
+ VERSION = '2.1.1'
5
+ end
6
+ end
7
+
@@ -0,0 +1,66 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{ruote-couch}
8
+ s.version = "2.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["John Mettraux"]
12
+ s.date = %q{2009-12-31}
13
+ s.description = %q{CouchDB storage for ruote 2.1 (ruby workflow engine)}
14
+ s.email = %q{jmettraux@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ "CHANGELOG.txt",
21
+ "LICENSE.txt",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "TODO.txt",
25
+ "lib/ruote-couch.rb",
26
+ "lib/ruote/couch.rb",
27
+ "lib/ruote/couch/database.rb",
28
+ "lib/ruote/couch/storage.rb",
29
+ "lib/ruote/couch/version.rb",
30
+ "ruote-couch.gemspec",
31
+ "test/functional/ft_0_echo.rb",
32
+ "test/functional/test.rb",
33
+ "test/integration_connection.rb",
34
+ "test/path_helper.rb",
35
+ "test/test.rb",
36
+ "test/test_helper.rb",
37
+ "test/unit/test.rb",
38
+ "test/unit/ut_0_initial.rb"
39
+ ]
40
+ s.homepage = %q{http://github.com/jmettraux/ruote-couch}
41
+ s.rdoc_options = ["--charset=UTF-8"]
42
+ s.require_paths = ["lib"]
43
+ s.rubyforge_project = %q{ruote}
44
+ s.rubygems_version = %q{1.3.5}
45
+ s.summary = %q{CouchDB storage for ruote 2.1}
46
+ s.test_files = [
47
+ "test/test.rb"
48
+ ]
49
+
50
+ if s.respond_to? :specification_version then
51
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
52
+ s.specification_version = 3
53
+
54
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
55
+ s.add_runtime_dependency(%q<rufus-jig>, [">= 0.1.6"])
56
+ s.add_development_dependency(%q<yard>, [">= 0"])
57
+ else
58
+ s.add_dependency(%q<rufus-jig>, [">= 0.1.6"])
59
+ s.add_dependency(%q<yard>, [">= 0"])
60
+ end
61
+ else
62
+ s.add_dependency(%q<rufus-jig>, [">= 0.1.6"])
63
+ s.add_dependency(%q<yard>, [">= 0"])
64
+ end
65
+ end
66
+
@@ -0,0 +1,42 @@
1
+
2
+ #
3
+ # testing ruote-couch
4
+ #
5
+ # Fri Dec 11 22:06:25 JST 2009
6
+ #
7
+
8
+ require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
9
+
10
+ require 'ruote/engine'
11
+ require 'ruote/worker'
12
+
13
+ require File.join(File.dirname(__FILE__), '..', 'integration_connection.rb')
14
+
15
+
16
+ class FtInitialTest < Test::Unit::TestCase
17
+
18
+ def test_echo
19
+
20
+ #require 'ruote/storage/hash_storage'
21
+ #storage = Ruote::HashStorage.new
22
+ #require 'ruote/storage/fs_storage'
23
+ #storage = Ruote::FsStorage.new('work')
24
+
25
+ storage = new_storage(nil)
26
+
27
+ engine = Ruote::Engine.new(Ruote::Worker.new(storage))
28
+
29
+ engine.context[:noisy] = true
30
+
31
+ pdef = Ruote.process_definition :name => 'test' do
32
+ echo '* SEEN *'
33
+ end
34
+
35
+ wfid = engine.launch(pdef)
36
+
37
+ engine.wait_for(wfid)
38
+
39
+ #storage.purge!
40
+ end
41
+ end
42
+
@@ -0,0 +1,11 @@
1
+
2
+ #
3
+ # testing ruote-couch
4
+ #
5
+ # Fri Dec 11 20:11:39 JST 2009
6
+ #
7
+
8
+ Dir.glob(File.join(File.dirname(__FILE__), 'ft_*.rb')).sort.each { |t|
9
+ require(t)
10
+ }
11
+
@@ -0,0 +1,23 @@
1
+
2
+ #
3
+ # testing ruote-couch
4
+ #
5
+ # Sun Dec 13 20:22:43 JST 2009
6
+ #
7
+
8
+ require 'yajl' rescue require 'json'
9
+ Rufus::Json.detect_backend
10
+
11
+ require 'patron' rescue nil
12
+
13
+ require 'ruote/couch/storage'
14
+
15
+
16
+ def new_storage (opts)
17
+
18
+ opts ||= {}
19
+
20
+ Ruote::Couch::CouchStorage.new(
21
+ '127.0.0.1', 5984, opts.merge!('prefix' => 'test'))
22
+ end
23
+
@@ -0,0 +1,16 @@
1
+
2
+ #
3
+ # testing ruote-couch
4
+ #
5
+ # Thu Dec 10 11:04:02 JST 2009
6
+ #
7
+
8
+ ruote_lib = File.expand_path(
9
+ File.join(File.dirname(__FILE__), *%w[ .. .. ruote lib ]))
10
+ ruote_couch_lib = File.expand_path(
11
+ File.join(File.dirname(__FILE__), *%w[ .. lib ]))
12
+
13
+ [ ruote_lib, ruote_couch_lib ].each do |lib|
14
+ $:.unshift(lib) unless $:.include?(lib)
15
+ end
16
+
@@ -0,0 +1,10 @@
1
+
2
+ #
3
+ # testing Ruote-couch
4
+ #
5
+ # Fri Dec 11 20:10:30 JST 2009
6
+ #
7
+
8
+ load File.dirname(__FILE__) + '/unit/test.rb'
9
+ load File.dirname(__FILE__) + '/functional/test.rb'
10
+
@@ -0,0 +1,13 @@
1
+
2
+ #
3
+ # testing ruote-couch
4
+ #
5
+ # Thu Dec 10 11:09:17 JST 2009
6
+ #
7
+
8
+ require 'yajl'
9
+
10
+ require File.join(File.dirname(__FILE__), 'path_helper')
11
+
12
+ require 'test/unit'
13
+
@@ -0,0 +1,11 @@
1
+
2
+ #
3
+ # testing ruote-couch
4
+ #
5
+ # Fri Dec 11 20:12:37 JST 2009
6
+ #
7
+
8
+ Dir.glob(File.join(File.dirname(__FILE__), 'ut_*.rb')).sort.each { |t|
9
+ require(t)
10
+ }
11
+
@@ -0,0 +1,27 @@
1
+
2
+ #
3
+ # testing ruote-couch
4
+ #
5
+ # Thu Dec 10 11:07:56 JST 2009
6
+ #
7
+
8
+ require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
9
+
10
+ require 'ruote/couch/storage'
11
+
12
+
13
+ class UtInitialTest < Test::Unit::TestCase
14
+
15
+ def test_connect
16
+
17
+ storage = Ruote::Couch::CouchStorage.new(
18
+ '127.0.0.1', 5984, :prefix => 'test')
19
+
20
+ v = storage.get_many('configurations')
21
+
22
+ #p v
23
+
24
+ assert_equal 1, v.size
25
+ end
26
+ end
27
+
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruote-couch
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.1
5
+ platform: ruby
6
+ authors:
7
+ - John Mettraux
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-31 00:00:00 +09:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rufus-jig
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.1.6
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: yard
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: CouchDB storage for ruote 2.1 (ruby workflow engine)
36
+ email: jmettraux@gmail.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - LICENSE.txt
43
+ - README.rdoc
44
+ files:
45
+ - CHANGELOG.txt
46
+ - LICENSE.txt
47
+ - README.rdoc
48
+ - Rakefile
49
+ - TODO.txt
50
+ - lib/ruote-couch.rb
51
+ - lib/ruote/couch.rb
52
+ - lib/ruote/couch/database.rb
53
+ - lib/ruote/couch/storage.rb
54
+ - lib/ruote/couch/version.rb
55
+ - ruote-couch.gemspec
56
+ - test/functional/ft_0_echo.rb
57
+ - test/functional/test.rb
58
+ - test/integration_connection.rb
59
+ - test/path_helper.rb
60
+ - test/test.rb
61
+ - test/test_helper.rb
62
+ - test/unit/test.rb
63
+ - test/unit/ut_0_initial.rb
64
+ has_rdoc: true
65
+ homepage: http://github.com/jmettraux/ruote-couch
66
+ licenses: []
67
+
68
+ post_install_message:
69
+ rdoc_options:
70
+ - --charset=UTF-8
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ version:
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ requirements: []
86
+
87
+ rubyforge_project: ruote
88
+ rubygems_version: 1.3.5
89
+ signing_key:
90
+ specification_version: 3
91
+ summary: CouchDB storage for ruote 2.1
92
+ test_files:
93
+ - test/test.rb