cloudwow-not_relational 0.1.0

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.
Files changed (78) hide show
  1. data/README.rdoc +7 -0
  2. data/VERSION.yml +4 -0
  3. data/lib/not_relational/acts_as_not_relational_application.rb +11 -0
  4. data/lib/not_relational/and_condition.rb +10 -0
  5. data/lib/not_relational/attribute_range.rb +57 -0
  6. data/lib/not_relational/berkeley_repository.rb +48 -0
  7. data/lib/not_relational/configuration.rb +111 -0
  8. data/lib/not_relational/crypto.rb +58 -0
  9. data/lib/not_relational/domain_model.rb +855 -0
  10. data/lib/not_relational/domain_model_cache_item.rb +14 -0
  11. data/lib/not_relational/equals_condition.rb +18 -0
  12. data/lib/not_relational/geo.rb +188 -0
  13. data/lib/not_relational/index_description.rb +41 -0
  14. data/lib/not_relational/is_null_transform.rb +16 -0
  15. data/lib/not_relational/lazy_loading_text.rb +29 -0
  16. data/lib/not_relational/local_storage.rb +38 -0
  17. data/lib/not_relational/memcache_repository.rb +91 -0
  18. data/lib/not_relational/memory_repository.rb +273 -0
  19. data/lib/not_relational/memory_storage.rb +33 -0
  20. data/lib/not_relational/or_condition.rb +53 -0
  21. data/lib/not_relational/property_description.rb +102 -0
  22. data/lib/not_relational/query_string_auth_generator.rb +166 -0
  23. data/lib/not_relational/reference.rb +28 -0
  24. data/lib/not_relational/repository.rb +419 -0
  25. data/lib/not_relational/repository_factory.rb +67 -0
  26. data/lib/not_relational/repository_interface.rb +48 -0
  27. data/lib/not_relational/s3.rb +581 -0
  28. data/lib/not_relational/sdb_formatter.rb +119 -0
  29. data/lib/not_relational/sdb_monkey_patch.rb +47 -0
  30. data/lib/not_relational/starts_with_condition.rb +21 -0
  31. data/lib/not_relational/storage.rb +223 -0
  32. data/lib/not_relational/tag_cloud.rb +56 -0
  33. data/lib/not_relational/tracker_description.rb +26 -0
  34. data/lib/not_relational/uuid.rb +285 -0
  35. data/lib/not_relational.rb +17 -0
  36. data/test/models/album.rb +206 -0
  37. data/test/models/blurb.rb +65 -0
  38. data/test/models/blurb_wording.rb +18 -0
  39. data/test/models/comment.rb +27 -0
  40. data/test/models/error.rb +14 -0
  41. data/test/models/friend.rb +27 -0
  42. data/test/models/friend_request.rb +34 -0
  43. data/test/models/geo.rb +186 -0
  44. data/test/models/group.rb +283 -0
  45. data/test/models/language.rb +16 -0
  46. data/test/models/media_file.rb +32 -0
  47. data/test/models/media_item.rb +258 -0
  48. data/test/models/message.rb +26 -0
  49. data/test/models/node.rb +282 -0
  50. data/test/models/outgoing_email.rb +26 -0
  51. data/test/models/page_view_detail.rb +15 -0
  52. data/test/models/page_view_summary.rb +15 -0
  53. data/test/models/place.rb +103 -0
  54. data/test/models/rating.rb +21 -0
  55. data/test/models/tag.rb +89 -0
  56. data/test/models/user.rb +289 -0
  57. data/test/models/user_event.rb +67 -0
  58. data/test/models/weblab.rb +17 -0
  59. data/test/unit_tests/album_test.rb +181 -0
  60. data/test/unit_tests/bdb_test.rb +34 -0
  61. data/test/unit_tests/blurb_test.rb +110 -0
  62. data/test/unit_tests/comment_test.rb +42 -0
  63. data/test/unit_tests/composite_key_test.rb +75 -0
  64. data/test/unit_tests/enum_test.rb +32 -0
  65. data/test/unit_tests/group_test.rb +214 -0
  66. data/test/unit_tests/mediaitem_test.rb +412 -0
  67. data/test/unit_tests/memcache_repository_test.rb +40 -0
  68. data/test/unit_tests/memory_repository_test.rb +69 -0
  69. data/test/unit_tests/node_test.rb +490 -0
  70. data/test/unit_tests/place_test.rb +219 -0
  71. data/test/unit_tests/reference_set_test.rb +66 -0
  72. data/test/unit_tests/repository_factory_test.rb +16 -0
  73. data/test/unit_tests/tag_test.rb +86 -0
  74. data/test/unit_tests/user_test.rb +102 -0
  75. data/test/unit_tests/uuid.state +3 -0
  76. data/test/utils/create_sdb_domains.rb +44 -0
  77. data/test/utils/whack_domains.rb +32 -0
  78. metadata +134 -0
@@ -0,0 +1,66 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+
4
+
5
+ require 'test/unit'
6
+
7
+ $:.push(File.dirname(__FILE__) +'/../../test/models')
8
+ $:.push(File.dirname(__FILE__) +'/../../lib/not_relational')
9
+
10
+ require File.dirname(__FILE__) +'/../../test/models/page_view_summary.rb'
11
+ require File.dirname(__FILE__) +'/../../test/models/page_view_detail.rb'
12
+ require File.dirname(__FILE__) +'/../../test/models/node.rb'
13
+ ENV['not_relational_ENV']='testing'
14
+ class ReferenceSetTest < Test::Unit::TestCase
15
+ def ReferenceSetTest.set_up
16
+
17
+ PageViewSummary.find(:all).each do |node|
18
+ node.destroy
19
+ end
20
+ Node.find(:all).each do |node|
21
+ node.destroy
22
+ end
23
+
24
+ end
25
+ def test_foo
26
+ ReferenceSetTest.set_up
27
+ return
28
+ NotRelational::RepositoryFactory.instance.pause
29
+ date=Time.gm(2008,12,25)
30
+ x=PageViewSummary.new(:username=>'david',:date=>date,:page_view_count=>7)
31
+ y=PageViewSummary.new(:username=>'joe',:date=>date,:page_view_count=>6)
32
+ z=PageViewSummary.new(:username=>'david',:date=>date+500,:page_view_count=>5)
33
+ x.save
34
+ y.save
35
+ z.save
36
+
37
+ node= Node.fill_new_node('david', "my title", 'hello world')
38
+ node.save
39
+
40
+ x.add_to_details(node)
41
+ x.save
42
+
43
+ found_x=PageViewSummary.find(x.primary_key)
44
+ assert_equal(1,found_x.details.length)
45
+ assert_equal('my title',found_x.details[0].latestTitle)
46
+ assert_equal(node.id,found_x.details[0].id)
47
+
48
+ node2= Node.fill_new_node('david2', "my title2", 'hello world')
49
+ node2.save
50
+
51
+ found_x.add_to_details(node2)
52
+ found_x.save
53
+
54
+ found_x2=PageViewSummary.find(x.primary_key)
55
+ assert_equal(2,found_x2.details.length)
56
+ assert_equal('my title',found_x.details[0].latestTitle)
57
+ assert_equal(node.id,found_x.details[0].id)
58
+ assert_equal('my title2',found_x.details[1].latestTitle)
59
+ assert_equal(node2.id,found_x.details[1].id)
60
+
61
+
62
+ found_y=PageViewSummary.find(y.primary_key)
63
+ assert_equal(0,found_y.details.length)
64
+
65
+ end
66
+ end
@@ -0,0 +1,16 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+
4
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
5
+
6
+ require 'test/unit'
7
+
8
+ require File.dirname(__FILE__) +'/../../lib/not_relational/repository_factory.rb'
9
+ ENV['not_relational_ENV']='testing'
10
+
11
+ class RepositoryFactoryTest < Test::Unit::TestCase
12
+ def test_foo
13
+ found=NotRelational::RepositoryFactory.instance
14
+ assert_not_nil found
15
+ end
16
+ end
@@ -0,0 +1,86 @@
1
+
2
+ require 'rubygems'
3
+ require 'test/unit'
4
+ $:.push(File.dirname(__FILE__) +'/../../test/models')
5
+ $:.push(File.dirname(__FILE__) +'/../../lib/not_relational')
6
+ require File.dirname(__FILE__) +'/../../lib/not_relational/domain_model.rb'
7
+ require File.dirname(__FILE__) +'/../../lib/not_relational/attribute_range.rb'
8
+ require File.dirname(__FILE__) +'/../../lib/not_relational/repository.rb'
9
+ require File.dirname(__FILE__) +'/../../lib/not_relational/memory_repository.rb'
10
+ require File.dirname(__FILE__) +'/../../test/models/node.rb'
11
+ require File.dirname(__FILE__) +'/../../test/models/user.rb'
12
+ require File.dirname(__FILE__) +'/../../test/models/place.rb'
13
+ require File.dirname(__FILE__) +'/../../test/models/album.rb'
14
+ require File.dirname(__FILE__) +'/../../test/models/media_item.rb'
15
+ require File.dirname(__FILE__) +'/../../test/models/media_file.rb'
16
+ require File.dirname(__FILE__) +'/../../test/models/tag.rb'
17
+ require File.dirname(__FILE__) +'/../../test/models/rating.rb'
18
+ require File.dirname(__FILE__) +'/../../test/models/comment.rb'
19
+
20
+ ENV['not_relational_ENV']='testing'
21
+
22
+ class TagTest < Test::Unit::TestCase
23
+ def TagTest.set_up
24
+
25
+ # Mediaitem.find(:all).each do |node|
26
+ # node.destroy
27
+ # end
28
+ # User.find(:all).each do |node|
29
+ # node.destroy
30
+ # end
31
+ Tag.find(:all).each do |node|
32
+ node.destroy
33
+ end
34
+ Group.find(:all).each do |node|
35
+ node.destroy
36
+ end
37
+
38
+ end
39
+ def test_find_by_group_and_tag
40
+ TagTest.set_up
41
+ group1=Group.create_group("testgroup", "my group short desc", "description long desc", "tags my test", true, 'joe')
42
+ group2=Group.create_group("testgroup2", "my group short desc", "description long desc", "tags my test", true, 'joe')
43
+ tag=Tag.new
44
+ tag.tag_name='my'
45
+ tag.group_id=group1.id
46
+ tag.mediaitem_id='a'
47
+ tag.created_time=Time.now.gmtime
48
+ tag.save
49
+
50
+ tag=Tag.new
51
+ tag.tag_name='my'
52
+ tag.group_id=group1.id
53
+ tag.mediaitem_id='b'
54
+ tag.created_time=Time.now.gmtime
55
+ tag.save
56
+
57
+ tag=Tag.new
58
+ tag.tag_name='duh'
59
+ tag.group_id=group1.id
60
+ tag.mediaitem_id='c'
61
+ tag.created_time=Time.now.gmtime
62
+ tag.save
63
+
64
+ tag=Tag.new
65
+ tag.tag_name='duh'
66
+ tag.group_id=group2.id
67
+ tag.mediaitem_id='c'
68
+ tag.created_time=Time.now.gmtime
69
+ tag.save
70
+
71
+ tag=Tag.new
72
+ tag.tag_name='duh'
73
+ tag.group_id=group2.id
74
+ tag.mediaitem_id='c'
75
+ tag.created_time=Time.now.gmtime
76
+ tag.save
77
+
78
+ found=Tag.find_by_group_and_tag(group1.id,'my',:limit=>100,:order_by=>:tag_name,:order=>:descending)
79
+ assert_equal(2,found.length)
80
+ found=Tag.find_by_group_and_tag(group1.id,'duh',:limit=>100,:order_by=>:tag_name,:order=>:descending)
81
+ assert_equal(1,found.length)
82
+ found=Tag.find_by_group_and_tag(group2.id,'duh',:limit=>100,:order_by=>:tag_name,:order=>:descending)
83
+ assert_equal(2,found.length)
84
+ end
85
+
86
+ end
@@ -0,0 +1,102 @@
1
+
2
+ require 'rubygems'
3
+ require 'test/unit'
4
+ $:.push(File.dirname(__FILE__) +'/../../test/models')
5
+ $:.push(File.dirname(__FILE__) +'/../../lib/not_relational')
6
+ require File.dirname(__FILE__) +'/../../lib/not_relational/domain_model.rb'
7
+ require File.dirname(__FILE__) +'/../../lib/not_relational/attribute_range.rb'
8
+ require File.dirname(__FILE__) +'/../../lib/not_relational/repository.rb'
9
+ require File.dirname(__FILE__) +'/../../lib/not_relational/memory_repository.rb'
10
+ require File.dirname(__FILE__) +'/../../test/models/node.rb'
11
+ require File.dirname(__FILE__) +'/../../test/models/user.rb'
12
+ require File.dirname(__FILE__) +'/../../test/models/place.rb'
13
+ require File.dirname(__FILE__) +'/../../test/models/album.rb'
14
+ require File.dirname(__FILE__) +'/../../test/models/media_item.rb'
15
+ require File.dirname(__FILE__) +'/../../test/models/media_file.rb'
16
+ require File.dirname(__FILE__) +'/../../test/models/tag.rb'
17
+ require File.dirname(__FILE__) +'/../../test/models/rating.rb'
18
+ require File.dirname(__FILE__) +'/../../test/models/comment.rb'
19
+ require File.dirname(__FILE__) +'/../../test/models/blurb.rb'
20
+
21
+ ENV['not_relational_ENV']='testing'
22
+
23
+ class UserTest < Test::Unit::TestCase
24
+ def test_range
25
+ User.find(:all).each do |old_user |
26
+ old_user.destroy
27
+ end
28
+ blurb_1=Blurb.new(:name=>"garbage_1")
29
+ blurb_1.save
30
+ blurb_2=Blurb.new(:name=>"garbage_2")
31
+ blurb_2.save
32
+
33
+
34
+ @user1 = User.new(
35
+ :login=>'aaa',
36
+ :last_login => Time.now.gmtime,
37
+ :created_at => Time.now.gmtime,
38
+ :password=>"guid2",
39
+ :profile_mediaitem_guid=>"duh1"
40
+ )
41
+
42
+ @user1.save
43
+ @user2 = User.new(
44
+ :login=>'ccc',
45
+ :last_login => Time.now.gmtime,
46
+ :created_at => Time.now.gmtime,
47
+ :profile_mediaitem_guid=>"guid1"
48
+ )
49
+ @user2.save
50
+
51
+ @user3 = User.new(
52
+ :login=>'ddd',
53
+ :last_login => Time.now.gmtime,
54
+ :created_at => Time.now.gmtime-200*60*60
55
+ )
56
+ @user3.save
57
+
58
+ NotRelational::RepositoryFactory.instance.pause()
59
+ results=User.recent_with_media()
60
+
61
+ assert_equal( 2 , results.length )
62
+
63
+ end
64
+ # def test_trackers
65
+ # User.find(:all).each do |old_user |
66
+ # old_user.destroy
67
+ #
68
+ # end
69
+ # Node.find(:all).each do |old_node |
70
+ # old_node.destroy
71
+ # end
72
+ # user=nil
73
+ # node=nil
74
+ # DomainModel.transaction{
75
+ # user = User.new(
76
+ # :login=>'aaa',
77
+ # :last_login => Time.now.gmtime,
78
+ # :created_at => Time.now.gmtime,
79
+ # :password=>"guid2",
80
+ # :profile_mediaitem_guid=>"duh1"
81
+ # )
82
+ #
83
+ # user.save
84
+ # user.save
85
+ # user.save
86
+ # node= Node.fill_new_node(user.login, "my title", 'hello world')
87
+ # user.add_to_nodes(node)
88
+ # }
89
+ # found=user.nodes
90
+ # assert_equal(1,found.length)
91
+ #
92
+ # assert_equal(node.id,found[0].id)
93
+ #
94
+ # user=User.find(user.login)
95
+ #
96
+ # found=user.nodes
97
+ # assert_equal(1,found.length)
98
+ #
99
+ # assert_equal(node.id,found[0].id)
100
+ # end
101
+
102
+ end
@@ -0,0 +1,3 @@
1
+ mac_addr: "00:22:41:29:f3:dd"
2
+ sequence: "0xb005"
3
+ last_clock: "0x2b6a72afadef0c"
@@ -0,0 +1,44 @@
1
+ $KCODE = 'u'
2
+ require 'config/boot.rb'
3
+ require 'config/environment.rb'
4
+ require "aws_sdb"
5
+
6
+ log = Logger.new(STDOUT)
7
+ log.level = Logger::ERROR
8
+
9
+ devpay_config = YAML.load(File.open("#{File.dirname(__FILE__) }/config/devpay.yml"))
10
+
11
+ dev_config = devpay_config['development']
12
+ test_config = devpay_config['testing']
13
+ prod_config = devpay_config['production']
14
+
15
+ def create_domain(domain_name)
16
+
17
+ $sdb.create_domain(domain_name)
18
+
19
+
20
+ end
21
+
22
+ [
23
+ 'Node',
24
+ 'Mediaitem',
25
+ 'Mediafile',
26
+ 'Place',
27
+ 'Group'
28
+
29
+ ].each do |model_name|
30
+ #create_domain(dev_config['domain_name']+"_"+model_name)
31
+ create_domain(test_config['domain_name']+"_"+model_name)
32
+ # create_domain(prod_config['domain_name']+"_"+model_name)
33
+ end
34
+
35
+ # create_domain(dev_config['domain_name']+"_Image")
36
+ # create_domain(dev_config['domain_name']+"_User")
37
+ # create_domain(dev_config['domain_name']+"_ImageFile")
38
+ #
39
+ #
40
+ # create_domain(prod_config['domain_name']+"_Image")
41
+ # create_domain(prod_config['domain_name']+"_User")
42
+ # create_domain(prod_config['domain_name']+"_ImageFile")
43
+
44
+
@@ -0,0 +1,32 @@
1
+ $KCODE = 'u'
2
+ require "aws_sdb"
3
+
4
+ log = Logger.new(STDOUT)
5
+ log.level = Logger::ERROR
6
+ path="#{File.dirname(__FILE__) }/../../config/database.yml"
7
+ puts path
8
+ devpay_config = YAML.load(File.open(path))
9
+
10
+ #dev_config = devpay_config['development']
11
+ test_config = devpay_config['testing_not_relational']
12
+ #prod_config = devpay_config['production']
13
+ #$sdb=AwsSdb::Service.new(nil,test_config['aws_key_id'],test_config['aws_secret_key'],"http://sdb.amazonaws.com")
14
+ $sdb=AwsSdb::Service.new(
15
+ :access_key_id=>test_config['aws_key_id'],
16
+ :secret_access_key=>test_config['aws_secret_key'],
17
+ :url=>"http://sdb.amazonaws.com",
18
+ :logger=>log)
19
+ def delete_domain(domain_name)
20
+
21
+ $sdb.delete_domain(domain_name)
22
+
23
+
24
+ end
25
+ def create_domain(domain_name)
26
+
27
+ $sdb.create_domain(domain_name)
28
+
29
+
30
+ end
31
+ delete_domain(test_config['domain_name_prefix'])
32
+ create_domain(test_config['domain_name_prefix'])
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cloudwow-not_relational
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - David Knight
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-03-17 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: david@cloudwow.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README.rdoc
24
+ files:
25
+ - README.rdoc
26
+ - VERSION.yml
27
+ - lib/not_relational
28
+ - lib/not_relational/acts_as_not_relational_application.rb
29
+ - lib/not_relational/and_condition.rb
30
+ - lib/not_relational/attribute_range.rb
31
+ - lib/not_relational/berkeley_repository.rb
32
+ - lib/not_relational/configuration.rb
33
+ - lib/not_relational/crypto.rb
34
+ - lib/not_relational/domain_model.rb
35
+ - lib/not_relational/domain_model_cache_item.rb
36
+ - lib/not_relational/equals_condition.rb
37
+ - lib/not_relational/geo.rb
38
+ - lib/not_relational/index_description.rb
39
+ - lib/not_relational/is_null_transform.rb
40
+ - lib/not_relational/lazy_loading_text.rb
41
+ - lib/not_relational/local_storage.rb
42
+ - lib/not_relational/memcache_repository.rb
43
+ - lib/not_relational/memory_repository.rb
44
+ - lib/not_relational/memory_storage.rb
45
+ - lib/not_relational/or_condition.rb
46
+ - lib/not_relational/property_description.rb
47
+ - lib/not_relational/query_string_auth_generator.rb
48
+ - lib/not_relational/reference.rb
49
+ - lib/not_relational/repository.rb
50
+ - lib/not_relational/repository_factory.rb
51
+ - lib/not_relational/repository_interface.rb
52
+ - lib/not_relational/s3.rb
53
+ - lib/not_relational/sdb_formatter.rb
54
+ - lib/not_relational/sdb_monkey_patch.rb
55
+ - lib/not_relational/starts_with_condition.rb
56
+ - lib/not_relational/storage.rb
57
+ - lib/not_relational/tag_cloud.rb
58
+ - lib/not_relational/tracker_description.rb
59
+ - lib/not_relational/uuid.rb
60
+ - lib/not_relational.rb
61
+ - test/models
62
+ - test/models/album.rb
63
+ - test/models/blurb.rb
64
+ - test/models/blurb_wording.rb
65
+ - test/models/comment.rb
66
+ - test/models/error.rb
67
+ - test/models/friend.rb
68
+ - test/models/friend_request.rb
69
+ - test/models/geo.rb
70
+ - test/models/group.rb
71
+ - test/models/language.rb
72
+ - test/models/media_file.rb
73
+ - test/models/media_item.rb
74
+ - test/models/message.rb
75
+ - test/models/node.rb
76
+ - test/models/outgoing_email.rb
77
+ - test/models/page_view_detail.rb
78
+ - test/models/page_view_summary.rb
79
+ - test/models/place.rb
80
+ - test/models/rating.rb
81
+ - test/models/tag.rb
82
+ - test/models/user.rb
83
+ - test/models/user_event.rb
84
+ - test/models/weblab.rb
85
+ - test/unit_tests
86
+ - test/unit_tests/album_test.rb
87
+ - test/unit_tests/bdb_test.rb
88
+ - test/unit_tests/blurb_test.rb
89
+ - test/unit_tests/comment_test.rb
90
+ - test/unit_tests/composite_key_test.rb
91
+ - test/unit_tests/enum_test.rb
92
+ - test/unit_tests/group_test.rb
93
+ - test/unit_tests/mediaitem_test.rb
94
+ - test/unit_tests/memcache_repository_test.rb
95
+ - test/unit_tests/memory_repository_test.rb
96
+ - test/unit_tests/node_test.rb
97
+ - test/unit_tests/place_test.rb
98
+ - test/unit_tests/reference_set_test.rb
99
+ - test/unit_tests/repository_factory_test.rb
100
+ - test/unit_tests/tag_test.rb
101
+ - test/unit_tests/user_test.rb
102
+ - test/unit_tests/uuid.state
103
+ - test/utils
104
+ - test/utils/create_sdb_domains.rb
105
+ - test/utils/whack_domains.rb
106
+ has_rdoc: true
107
+ homepage: http://github.com/daviddisco/not_relational
108
+ post_install_message:
109
+ rdoc_options:
110
+ - --inline-source
111
+ - --charset=UTF-8
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: "0"
119
+ version:
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: "0"
125
+ version:
126
+ requirements: []
127
+
128
+ rubyforge_project:
129
+ rubygems_version: 1.2.0
130
+ signing_key:
131
+ specification_version: 2
132
+ summary: TODO
133
+ test_files: []
134
+