activerecord-simpledb-adapter 0.4.11 → 0.4.12

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.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ .DS_Store
2
+ .idea
3
+ pkg
4
+ *.swp
5
+ .bundle
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format
3
+ progress
4
+ mtime
data/Gemfile CHANGED
@@ -1,15 +1,14 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'aws', '~> 2.3.0'
4
- gem 'rails', '~> 3.0.9'
5
- gem 'uuidtools', '~> 2.1.1'
3
+ gem 'aws'
4
+ gem 'rake'
5
+ gem 'activerecord', '~> 3.0.9'
6
+ gem 'uuidtools'
6
7
 
7
8
  group :development do
8
9
  gem 'awesome_print'
9
- gem 'rspec', '~> 2.3.0'
10
- gem 'jeweler'
11
- gem 'rcov', '>= 0'
12
- gem 'genspec', '0.2.0.prerails3.2'
10
+ gem 'rspec'
13
11
  gem 'thor'
14
- gem 'ruby-debug'
12
+ gem 'rails', '~> 3.0.9'
13
+ gem 'genspec'
15
14
  end
data/Gemfile.lock CHANGED
@@ -2,119 +2,107 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  abstract (1.0.0)
5
- actionmailer (3.0.9)
6
- actionpack (= 3.0.9)
5
+ actionmailer (3.0.13)
6
+ actionpack (= 3.0.13)
7
7
  mail (~> 2.2.19)
8
- actionpack (3.0.9)
9
- activemodel (= 3.0.9)
10
- activesupport (= 3.0.9)
8
+ actionpack (3.0.13)
9
+ activemodel (= 3.0.13)
10
+ activesupport (= 3.0.13)
11
11
  builder (~> 2.1.2)
12
12
  erubis (~> 2.6.6)
13
13
  i18n (~> 0.5.0)
14
- rack (~> 1.2.1)
14
+ rack (~> 1.2.5)
15
15
  rack-mount (~> 0.6.14)
16
16
  rack-test (~> 0.5.7)
17
17
  tzinfo (~> 0.3.23)
18
- activemodel (3.0.9)
19
- activesupport (= 3.0.9)
18
+ activemodel (3.0.13)
19
+ activesupport (= 3.0.13)
20
20
  builder (~> 2.1.2)
21
21
  i18n (~> 0.5.0)
22
- activerecord (3.0.9)
23
- activemodel (= 3.0.9)
24
- activesupport (= 3.0.9)
22
+ activerecord (3.0.13)
23
+ activemodel (= 3.0.13)
24
+ activesupport (= 3.0.13)
25
25
  arel (~> 2.0.10)
26
26
  tzinfo (~> 0.3.23)
27
- activeresource (3.0.9)
28
- activemodel (= 3.0.9)
29
- activesupport (= 3.0.9)
30
- activesupport (3.0.9)
27
+ activeresource (3.0.13)
28
+ activemodel (= 3.0.13)
29
+ activesupport (= 3.0.13)
30
+ activesupport (3.0.13)
31
31
  arel (2.0.10)
32
- awesome_print (0.4.0)
33
- aws (2.3.34)
34
- activesupport
32
+ awesome_print (1.0.2)
33
+ aws (2.5.6)
35
34
  http_connection
36
35
  uuidtools
37
36
  xml-simple
38
37
  builder (2.1.2)
39
- columnize (0.3.4)
40
- diff-lcs (1.1.2)
38
+ diff-lcs (1.1.3)
41
39
  erubis (2.6.6)
42
40
  abstract (>= 1.0.0)
43
- genspec (0.2.0.prerails3.2)
44
- rspec (>= 2.0.0.beta.14)
45
- sc-core-ext (>= 1.2.1)
46
- git (1.2.5)
41
+ genspec (0.2.6)
42
+ i18n (>= 0.5.0)
43
+ rspec (~> 2)
44
+ sc-core-ext (~> 1.2.1)
45
+ thor (~> 0.14.6)
47
46
  http_connection (1.4.1)
48
47
  i18n (0.5.0)
49
- jeweler (1.6.4)
50
- bundler (~> 1.0)
51
- git (>= 1.2.5)
52
- rake
53
- linecache (0.46)
54
- rbx-require-relative (> 0.0.4)
48
+ json (1.7.3)
55
49
  mail (2.2.19)
56
50
  activesupport (>= 2.3.6)
57
51
  i18n (>= 0.4.0)
58
52
  mime-types (~> 1.16)
59
53
  treetop (~> 1.4.8)
60
- mime-types (1.16)
61
- polyglot (0.3.1)
62
- rack (1.2.3)
54
+ mime-types (1.18)
55
+ polyglot (0.3.3)
56
+ rack (1.2.5)
63
57
  rack-mount (0.6.14)
64
58
  rack (>= 1.0.0)
65
59
  rack-test (0.5.7)
66
60
  rack (>= 1.0)
67
- rails (3.0.9)
68
- actionmailer (= 3.0.9)
69
- actionpack (= 3.0.9)
70
- activerecord (= 3.0.9)
71
- activeresource (= 3.0.9)
72
- activesupport (= 3.0.9)
61
+ rails (3.0.13)
62
+ actionmailer (= 3.0.13)
63
+ actionpack (= 3.0.13)
64
+ activerecord (= 3.0.13)
65
+ activeresource (= 3.0.13)
66
+ activesupport (= 3.0.13)
73
67
  bundler (~> 1.0)
74
- railties (= 3.0.9)
75
- railties (3.0.9)
76
- actionpack (= 3.0.9)
77
- activesupport (= 3.0.9)
68
+ railties (= 3.0.13)
69
+ railties (3.0.13)
70
+ actionpack (= 3.0.13)
71
+ activesupport (= 3.0.13)
78
72
  rake (>= 0.8.7)
79
73
  rdoc (~> 3.4)
80
74
  thor (~> 0.14.4)
81
- rake (0.9.2)
82
- rbx-require-relative (0.0.5)
83
- rcov (0.9.9)
84
- rdoc (3.8)
85
- rspec (2.3.0)
86
- rspec-core (~> 2.3.0)
87
- rspec-expectations (~> 2.3.0)
88
- rspec-mocks (~> 2.3.0)
89
- rspec-core (2.3.1)
90
- rspec-expectations (2.3.0)
91
- diff-lcs (~> 1.1.2)
92
- rspec-mocks (2.3.0)
93
- ruby-debug (0.10.4)
94
- columnize (>= 0.1)
95
- ruby-debug-base (~> 0.10.4.0)
96
- ruby-debug-base (0.10.4)
97
- linecache (>= 0.3)
75
+ rake (0.9.2.2)
76
+ rdoc (3.12)
77
+ json (~> 1.4)
78
+ rspec (2.10.0)
79
+ rspec-core (~> 2.10.0)
80
+ rspec-expectations (~> 2.10.0)
81
+ rspec-mocks (~> 2.10.0)
82
+ rspec-core (2.10.1)
83
+ rspec-expectations (2.10.0)
84
+ diff-lcs (~> 1.1.3)
85
+ rspec-mocks (2.10.1)
98
86
  sc-core-ext (1.2.1)
99
87
  activesupport (>= 2.3.5)
100
88
  thor (0.14.6)
101
- treetop (1.4.9)
89
+ treetop (1.4.10)
90
+ polyglot
102
91
  polyglot (>= 0.3.1)
103
- tzinfo (0.3.29)
92
+ tzinfo (0.3.33)
104
93
  uuidtools (2.1.2)
105
- xml-simple (1.1.0)
94
+ xml-simple (1.1.1)
106
95
 
107
96
  PLATFORMS
108
97
  ruby
109
98
 
110
99
  DEPENDENCIES
100
+ activerecord (~> 3.0.9)
111
101
  awesome_print
112
- aws (~> 2.3.0)
113
- genspec (= 0.2.0.prerails3.2)
114
- jeweler
102
+ aws
103
+ genspec
115
104
  rails (~> 3.0.9)
116
- rcov
117
- rspec (~> 2.3.0)
118
- ruby-debug
105
+ rake
106
+ rspec
119
107
  thor
120
- uuidtools (~> 2.1.1)
108
+ uuidtools
data/Rakefile ADDED
@@ -0,0 +1,23 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'rspec/core'
13
+ require 'rspec/core/rake_task'
14
+ RSpec::Core::RakeTask.new(:spec) do |spec|
15
+ spec.pattern = FileList['spec/**/*_spec.rb']
16
+ end
17
+
18
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
19
+ spec.pattern = 'spec/**/*_spec.rb'
20
+ spec.rcov = true
21
+ end
22
+
23
+ task :default => :spec
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.4.11
@@ -1,85 +1,26 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
1
+ $:.push File.expand_path("../lib", __FILE__)
5
2
 
6
3
  Gem::Specification.new do |s|
7
- s.name = %q{activerecord-simpledb-adapter}
8
- s.version = "0.4.11"
4
+ s.name = %q{activerecord-simpledb-adapter}
5
+ s.version = "0.4.12"
6
+ s.authors = ["Ilia Ablamonov", "Alex Gorkunov", "Cloud Castle Inc."]
7
+ s.email = %q{ilia@flamefork.ru}
8
+ s.licenses = ["MIT"]
9
+ s.homepage = %q{http://www.github.com/gorkunov/consular-another-gnome-terminal}
10
+ s.summary = %q{Gnome Terminal support for Consular (without using xdotool)}
11
+ s.description = %q{Gnome Terminal support for Consular without emulation keyboard events}
12
+ s.homepage = %q{http://github.com/cloudcastle/activerecord-simpledb-adapter}
9
13
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Ilia Ablamonov", "Alex Gorkunov", "Cloud Castle Inc."]
12
- s.date = %q{2011-07-26}
13
- s.email = %q{ilia@flamefork.ru}
14
- s.extra_rdoc_files = [
15
- "LICENSE.txt",
16
- "README.md"
17
- ]
18
- s.files = [
19
- "Gemfile",
20
- "Gemfile.lock",
21
- "LICENSE.txt",
22
- "README.md",
23
- "activerecord-simpledb-adapter.gemspec",
24
- "lib/active_record/connection_adapters/simpledb_adapter.rb",
25
- "lib/active_record/connection_adapters/simpledb_adapter/adapter.rb",
26
- "lib/active_record/connection_adapters/simpledb_adapter/base.rb",
27
- "lib/active_record/connection_adapters/simpledb_adapter/column.rb",
28
- "lib/active_record/connection_adapters/simpledb_adapter/defaults.rb",
29
- "lib/active_record/connection_adapters/simpledb_adapter/finder_methods.rb",
30
- "lib/active_record/connection_adapters/simpledb_adapter/misc/aws_overrides.rb",
31
- "lib/active_record/connection_adapters/simpledb_adapter/misc/simpledb_logger.rb",
32
- "lib/active_record/connection_adapters/simpledb_adapter/table_definition.rb",
33
- "lib/active_record/connection_adapters/simpledb_adapter/validations.rb",
34
- "lib/activerecord-simpledb-adapter.rb",
35
- "lib/arel/visitors/simpledb.rb",
36
- "lib/generators/active_record/model/model_generator.rb",
37
- "lib/generators/active_record/model/templates/model.rb",
38
- "lib/tasks/simpledb.rake"
39
- ]
40
- s.homepage = %q{http://github.com/cloudcastle/activerecord-simpledb-adapter}
41
- s.licenses = ["MIT"]
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- spec/*`.split("\n")
42
16
  s.require_paths = ["lib"]
43
- s.rubygems_version = %q{1.6.2}
44
- s.summary = %q{ActiveRecord SimpleDB adapter}
45
17
 
46
- if s.respond_to? :specification_version then
47
- s.specification_version = 3
48
-
49
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
- s.add_runtime_dependency(%q<aws>, ["~> 2.3.0"])
51
- s.add_runtime_dependency(%q<rails>, ["~> 3.0.9"])
52
- s.add_runtime_dependency(%q<uuidtools>, ["~> 2.1.1"])
53
- s.add_development_dependency(%q<awesome_print>, [">= 0"])
54
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
55
- s.add_development_dependency(%q<jeweler>, [">= 0"])
56
- s.add_development_dependency(%q<rcov>, [">= 0"])
57
- s.add_development_dependency(%q<genspec>, ["= 0.2.0.prerails3.2"])
58
- s.add_development_dependency(%q<thor>, [">= 0"])
59
- s.add_development_dependency(%q<ruby-debug>, [">= 0"])
60
- else
61
- s.add_dependency(%q<aws>, ["~> 2.3.0"])
62
- s.add_dependency(%q<rails>, ["~> 3.0.9"])
63
- s.add_dependency(%q<uuidtools>, ["~> 2.1.1"])
64
- s.add_dependency(%q<awesome_print>, [">= 0"])
65
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
66
- s.add_dependency(%q<jeweler>, [">= 0"])
67
- s.add_dependency(%q<rcov>, [">= 0"])
68
- s.add_dependency(%q<genspec>, ["= 0.2.0.prerails3.2"])
69
- s.add_dependency(%q<thor>, [">= 0"])
70
- s.add_dependency(%q<ruby-debug>, [">= 0"])
71
- end
72
- else
73
- s.add_dependency(%q<aws>, ["~> 2.3.0"])
74
- s.add_dependency(%q<rails>, ["~> 3.0.9"])
75
- s.add_dependency(%q<uuidtools>, ["~> 2.1.1"])
76
- s.add_dependency(%q<awesome_print>, [">= 0"])
77
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
78
- s.add_dependency(%q<jeweler>, [">= 0"])
79
- s.add_dependency(%q<rcov>, [">= 0"])
80
- s.add_dependency(%q<genspec>, ["= 0.2.0.prerails3.2"])
81
- s.add_dependency(%q<thor>, [">= 0"])
82
- s.add_dependency(%q<ruby-debug>, [">= 0"])
83
- end
18
+ s.add_runtime_dependency(%q<aws>)
19
+ s.add_runtime_dependency(%q<activerecord>, ["~> 3.0.9"])
20
+ s.add_runtime_dependency(%q<uuidtools>)
21
+ s.add_development_dependency(%q<awesome_print>)
22
+ s.add_development_dependency(%q<rspec>)
23
+ s.add_development_dependency(%q<rails>, ["~> 3.0.9"])
24
+ s.add_development_dependency(%q<genspec>)
25
+ s.add_development_dependency(%q<thor>)
84
26
  end
85
-
@@ -20,7 +20,7 @@ module ActiveRecordSimpledbAdapter
20
20
 
21
21
  if has_default
22
22
  value = if column.default.is_a? Proc
23
- column.default.call(self)
23
+ column.default.call
24
24
  else
25
25
  column.default
26
26
  end
@@ -1,16 +1,6 @@
1
- module ActiveRecordSimpledbAdapter
2
- class Railtie < ::Rails::Railtie
3
- rake_tasks do
4
- load 'tasks/simpledb.rake'
5
- end
6
-
7
- generators do
8
- require 'generators/active_record/model/model_generator'
9
- end
10
-
11
- ActiveSupport.on_load(:active_record) do
12
- require 'active_record/connection_adapters/simpledb_adapter'
13
- require 'arel/visitors/simpledb'
14
- end
15
- end
1
+ if defined?(Rails)
2
+ require "railtie"
3
+ else
4
+ require 'active_record/connection_adapters/simpledb_adapter'
5
+ require 'arel/visitors/simpledb'
16
6
  end
data/lib/railtie.rb ADDED
@@ -0,0 +1,16 @@
1
+ module ActiveRecordSimpledbAdapter
2
+ class Railtie < ::Rails::Railtie
3
+ rake_tasks do
4
+ load 'tasks/simpledb.rake'
5
+ end
6
+
7
+ generators do
8
+ require 'generators/active_record/model/model_generator'
9
+ end
10
+
11
+ ActiveSupport.on_load(:active_record) do
12
+ require 'active_record/connection_adapters/simpledb_adapter'
13
+ require 'arel/visitors/simpledb'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+ describe "SimpleDBAdapter ActiveRecord associations" do
3
+ class Bar < ActiveRecord::Base
4
+ columns_definition do |t|
5
+ t.json :bar
6
+ end
7
+ has_many :fars
8
+ end
9
+ class Far < ActiveRecord::Base
10
+ columns_definition do |t|
11
+ t.json :bar
12
+ t.string :bar_id
13
+ end
14
+ belongs_to :bar
15
+ end
16
+
17
+ before :each do
18
+ ActiveRecord::Base.logger = Logger.new(STDOUT)
19
+ ActiveRecord::Base.establish_connection($config)
20
+ ActiveRecord::Base.connection.create_domain($config[:domain_name])
21
+ end
22
+
23
+ after :each do
24
+ ActiveRecord::Base.connection.delete_domain($config[:domain_name])
25
+ end
26
+
27
+ it "should create has many recources" do
28
+ t = Bar.create!
29
+ t.fars.create!
30
+ t.fars.count.should == 1
31
+ end
32
+ end
@@ -0,0 +1,91 @@
1
+ require 'spec_helper'
2
+ #spec helpers difition
3
+ class F < ActiveRecord::Base
4
+ columns_definition do |t|
5
+ t.string :body
6
+ end
7
+
8
+ has_many :bs
9
+ after_save lambda { self.bs.create!({:body => "test"}) }
10
+ end
11
+ class B < ActiveRecord::Base
12
+ columns_definition do |t|
13
+ t.string :body
14
+ t.string :f_id
15
+ end
16
+ end
17
+ #testes
18
+ describe "SimpleDBAdapter ActiveRecord batches operation" do
19
+
20
+ before :each do
21
+ ActiveRecord::Base.logger = Logger.new(STDOUT)
22
+ ActiveRecord::Base.establish_connection($config)
23
+ ActiveRecord::Base.connection.create_domain($config[:domain_name])
24
+ end
25
+
26
+ after :each do
27
+ ActiveRecord::Base.connection.delete_domain($config[:domain_name])
28
+ end
29
+
30
+ it "should work with usual create statments" do
31
+ count = 5
32
+ Person.batch do
33
+ count.times { |i| Person.create_valid }
34
+ Person.count.should == 0
35
+ end
36
+ items = Person.all
37
+ items.count.should == count
38
+ items.each { |item| item.is_valid? }
39
+ end
40
+
41
+ it "should work with usual update statments" do
42
+ count = 5
43
+ items = []
44
+ count.times { items << Person.create_valid }
45
+ Person.batch do
46
+ items.each {|item| item.update_attributes({:login => 'test'}); item.save! }
47
+ end
48
+ items = Person.all
49
+ items.count.should == count
50
+ items.each { |item| item.login.should == 'test' }
51
+ end
52
+
53
+ it "should work with usual destroy statments" do
54
+ count = 5
55
+ items = []
56
+ count.times { items << Person.create_valid }
57
+ Person.batch do
58
+ items.each {|item| item.destroy }
59
+ end
60
+ Person.count.should == 0
61
+ end
62
+
63
+ it "should work with diferrent statments in one batch session" do
64
+ count = 5
65
+ items = []
66
+ count.times { items << Person.create_valid }
67
+ Person.batch do
68
+ items.each do |item|
69
+ item.destroy
70
+ Person.create_valid
71
+ end
72
+ end
73
+ Person.count.should == count
74
+ end
75
+
76
+ it "should auto split to several batches when count of items more than BATCH_MAX_ITEM_COUNT" do
77
+ count = 50
78
+ Person.batch do
79
+ count.times { |i| Person.create_valid }
80
+ end
81
+ Person.count.should == count
82
+ end
83
+
84
+ it "should batch internal operations too (sub-updates)" do
85
+ count = 5
86
+ F.batch do
87
+ count.times { F.create!({:body => "body"}) }
88
+ end
89
+ [F, B].each {|r| r.count.should == count }
90
+ end
91
+ end