ahoward-helene 0.0.3

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 (72) hide show
  1. data/Rakefile +274 -0
  2. data/helene.gemspec +26 -0
  3. data/lib/helene.rb +113 -0
  4. data/lib/helene/attempt.rb +46 -0
  5. data/lib/helene/aws.rb +50 -0
  6. data/lib/helene/config.rb +147 -0
  7. data/lib/helene/content_type.rb +15 -0
  8. data/lib/helene/content_type.yml +661 -0
  9. data/lib/helene/error.rb +12 -0
  10. data/lib/helene/logging.rb +55 -0
  11. data/lib/helene/objectpool.rb +220 -0
  12. data/lib/helene/rails.rb +21 -0
  13. data/lib/helene/rightscale/acf/right_acf_interface.rb +379 -0
  14. data/lib/helene/rightscale/awsbase/benchmark_fix.rb +39 -0
  15. data/lib/helene/rightscale/awsbase/right_awsbase.rb +803 -0
  16. data/lib/helene/rightscale/awsbase/support.rb +111 -0
  17. data/lib/helene/rightscale/ec2/right_ec2.rb +1737 -0
  18. data/lib/helene/rightscale/net_fix.rb +160 -0
  19. data/lib/helene/rightscale/right_aws.rb +71 -0
  20. data/lib/helene/rightscale/right_http_connection.rb +507 -0
  21. data/lib/helene/rightscale/s3/right_s3.rb +1094 -0
  22. data/lib/helene/rightscale/s3/right_s3_interface.rb +1180 -0
  23. data/lib/helene/rightscale/sdb/active_sdb.rb +930 -0
  24. data/lib/helene/rightscale/sdb/right_sdb_interface.rb +696 -0
  25. data/lib/helene/rightscale/sqs/right_sqs.rb +388 -0
  26. data/lib/helene/rightscale/sqs/right_sqs_gen2.rb +286 -0
  27. data/lib/helene/rightscale/sqs/right_sqs_gen2_interface.rb +444 -0
  28. data/lib/helene/rightscale/sqs/right_sqs_interface.rb +596 -0
  29. data/lib/helene/s3.rb +34 -0
  30. data/lib/helene/s3/bucket.rb +379 -0
  31. data/lib/helene/s3/grantee.rb +134 -0
  32. data/lib/helene/s3/key.rb +162 -0
  33. data/lib/helene/s3/owner.rb +16 -0
  34. data/lib/helene/sdb.rb +9 -0
  35. data/lib/helene/sdb/base.rb +1204 -0
  36. data/lib/helene/sdb/base/associations.rb +481 -0
  37. data/lib/helene/sdb/base/attributes.rb +90 -0
  38. data/lib/helene/sdb/base/connection.rb +20 -0
  39. data/lib/helene/sdb/base/error.rb +20 -0
  40. data/lib/helene/sdb/base/hooks.rb +82 -0
  41. data/lib/helene/sdb/base/literal.rb +52 -0
  42. data/lib/helene/sdb/base/logging.rb +23 -0
  43. data/lib/helene/sdb/base/transactions.rb +53 -0
  44. data/lib/helene/sdb/base/type.rb +137 -0
  45. data/lib/helene/sdb/base/types.rb +123 -0
  46. data/lib/helene/sdb/base/validations.rb +256 -0
  47. data/lib/helene/sdb/cast.rb +114 -0
  48. data/lib/helene/sdb/connection.rb +36 -0
  49. data/lib/helene/sdb/error.rb +5 -0
  50. data/lib/helene/sdb/interface.rb +412 -0
  51. data/lib/helene/sdb/sentinel.rb +15 -0
  52. data/lib/helene/sleepcycle.rb +29 -0
  53. data/lib/helene/superhash.rb +297 -0
  54. data/lib/helene/util.rb +132 -0
  55. data/test/auth.rb +31 -0
  56. data/test/helper.rb +98 -0
  57. data/test/integration/begin.rb +0 -0
  58. data/test/integration/ensure.rb +8 -0
  59. data/test/integration/s3/bucket.rb +106 -0
  60. data/test/integration/sdb/associations.rb +45 -0
  61. data/test/integration/sdb/creating.rb +13 -0
  62. data/test/integration/sdb/emptiness.rb +56 -0
  63. data/test/integration/sdb/hooks.rb +19 -0
  64. data/test/integration/sdb/limits.rb +27 -0
  65. data/test/integration/sdb/saving.rb +21 -0
  66. data/test/integration/sdb/selecting.rb +39 -0
  67. data/test/integration/sdb/types.rb +31 -0
  68. data/test/integration/sdb/validations.rb +60 -0
  69. data/test/integration/setup.rb +27 -0
  70. data/test/integration/teardown.rb +21 -0
  71. data/test/loader.rb +39 -0
  72. metadata +139 -0
@@ -0,0 +1,31 @@
1
+ testing Helene::Sdb::Base do
2
+
3
+ context 'types' do
4
+ setup do
5
+ @a = model(:a) do
6
+ attribute :x, :text
7
+ end
8
+ end
9
+
10
+ perform = 'be able to represent text fields > 1024'
11
+ should perform do
12
+ text = '*' * ((1024 * 9) + 3)
13
+ a = assert{ @a.create! :x => text }
14
+ assert{ a.x==text }
15
+ eventually_assert(perform){ a.reload; a.x==text }
16
+
17
+ text = 'abc' + text + 'xyz'
18
+ a = assert{ @a.create! :x => text }
19
+ assert{ a.x==text }
20
+ assert{ a.x.first(3)=='abc' }
21
+ assert{ a.x.last(3)=='xyz' }
22
+ eventually_assert(perform){
23
+ a.reload;
24
+ a.x==text
25
+ a.x.first(3)=='abc'
26
+ a.x.last(3)=='xyz'
27
+ }
28
+ end
29
+ end
30
+
31
+ end
@@ -0,0 +1,60 @@
1
+ testing Helene::Sdb::Base do
2
+
3
+ context "validations" do
4
+ context ":on => :create" do
5
+ setup do
6
+ @a = model(:a) do
7
+ attribute :mode, :string
8
+ validates_format_of :mode, :with => /\Acreate\z/, :on => :create
9
+ end
10
+ end
11
+
12
+ should "only be checked for creation" do
13
+ a = assert{ @a.new(:mode => "bad") }
14
+ assert{ !a.valid? }
15
+ a.mode = "create"
16
+ assert{ a.save! }
17
+ a.mode = "update"
18
+ assert{ a.valid? }
19
+ end
20
+ end
21
+
22
+ context ":on => :update" do
23
+ setup do
24
+ @a = model(:a) do
25
+ attribute :mode, :string
26
+ validates_format_of :mode, :with => /\Aupdate\z/, :on => :update
27
+ end
28
+ end
29
+
30
+ should "only be checked for updates" do
31
+ a = assert{ @a.new(:mode => "create") }
32
+ assert{ a.save! }
33
+ assert{ !a.valid? }
34
+ a.mode = "update"
35
+ assert{ a.valid? }
36
+ end
37
+ end
38
+
39
+ context ":on => :save" do
40
+ setup do
41
+ @a = model(:a) do
42
+ attribute :mode, :string
43
+ validates_format_of :mode, :with => /\Asave\z/, :on => :save
44
+ end
45
+ end
46
+
47
+ should "always be checked" do
48
+ a = assert{ @a.new(:mode => "bad") }
49
+ assert{ !a.valid? }
50
+ a.mode = "save"
51
+ assert{ a.save! }
52
+ a.mode = "update"
53
+ assert{ !a.valid? }
54
+ a.mode = "save"
55
+ assert{ a.valid? }
56
+ end
57
+ end
58
+ end
59
+
60
+ end
@@ -0,0 +1,27 @@
1
+
2
+ if test(?e, $test_integration_setup_guard)
3
+
4
+ puts
5
+ puts '*** setup has already run ***'
6
+ puts
7
+
8
+ else
9
+
10
+ testing 'setup' do
11
+
12
+ context('migrating') do
13
+ should('allow some basic models to be migrated') do
14
+ models.threadify do |model|
15
+ assert_nothing_raised do
16
+ model.delete_domain rescue nil
17
+ model.create_domain
18
+ end
19
+ end
20
+ require 'time'
21
+ open($test_integration_setup_guard, 'w'){|fd| fd.puts Time.now.iso8601(2)}
22
+ end
23
+ end
24
+
25
+ end
26
+
27
+ end
@@ -0,0 +1,21 @@
1
+
2
+ if true # test(?e, $test_integration_setup_guard)
3
+
4
+ testing 'teardown' do
5
+
6
+ should('nuke domains for all test models') do
7
+ models.threadify do |model|
8
+ model.delete_domain rescue nil
9
+ end
10
+ File.unlink($test_integration_setup_guard) rescue nil
11
+ assert !test(?e, $test_integration_setup_guard)
12
+ end
13
+ end
14
+
15
+ else
16
+
17
+ puts
18
+ puts '*** nothing to teardown ***'
19
+ puts
20
+
21
+ end
@@ -0,0 +1,39 @@
1
+ # sets up the required environment for running tests
2
+ #
3
+ $src_dir = File.expand_path(File.dirname(File.dirname(__FILE__)))
4
+ $lib_dir = File.join($src_dir, 'lib')
5
+ $test_dir = File.join($src_dir, 'test')
6
+ $test_lib_dir = File.join($src_dir, 'test', 'lib')
7
+ $test_data_dir = File.join($src_dir, 'test', 'data')
8
+ $test_unit_dir = File.join($test_dir, 'unit')
9
+ $test_unit_lib_dir = File.join($test_unit_dir, 'lib')
10
+ $test_integration_dir = File.join($test_dir, 'integration')
11
+ $test_integration_lib_dir = File.join($test_integration_dir, 'lib')
12
+ $test_config_file = File.join($test_dir, 'config.yml')
13
+
14
+ $test_integration_setup_guard = File.join($test_integration_dir, '.guard')
15
+ $test_log = File.join($test_dir, 'log')
16
+
17
+ $load_path = [$lib_dir, $test_dir, $test_lib_dir]
18
+ $load_path.each{|load_path| $LOAD_PATH.unshift(load_path)}
19
+ ENV['RUBYLIB'] = $LOAD_PATH.join(File::PATH_SEPARATOR)
20
+
21
+ Dir.chdir($src_dir)
22
+
23
+ require 'test/unit'
24
+
25
+ begin
26
+ require 'rubygems'
27
+ rescue LoadError
28
+ nil
29
+ end
30
+
31
+ require 'shoulda'
32
+
33
+ require File.join($lib_dir, 'helene')
34
+ require File.join($test_dir, 'helper')
35
+
36
+ Helene.logger = $test_log
37
+
38
+ STDOUT.sync = true
39
+ STDERR.sync = true
metadata ADDED
@@ -0,0 +1,139 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ahoward-helene
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Ara T. Howard
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-05-16 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: ara.t.howard@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - helene.gemspec
26
+ - lib
27
+ - lib/helene
28
+ - lib/helene/attempt.rb
29
+ - lib/helene/aws.rb
30
+ - lib/helene/config.rb
31
+ - lib/helene/content_type.rb
32
+ - lib/helene/content_type.yml
33
+ - lib/helene/error.rb
34
+ - lib/helene/logging.rb
35
+ - lib/helene/objectpool.rb
36
+ - lib/helene/rails.rb
37
+ - lib/helene/rightscale
38
+ - lib/helene/rightscale/acf
39
+ - lib/helene/rightscale/acf/right_acf_interface.rb
40
+ - lib/helene/rightscale/awsbase
41
+ - lib/helene/rightscale/awsbase/benchmark_fix.rb
42
+ - lib/helene/rightscale/awsbase/right_awsbase.rb
43
+ - lib/helene/rightscale/awsbase/support.rb
44
+ - lib/helene/rightscale/ec2
45
+ - lib/helene/rightscale/ec2/right_ec2.rb
46
+ - lib/helene/rightscale/net_fix.rb
47
+ - lib/helene/rightscale/right_aws.rb
48
+ - lib/helene/rightscale/right_http_connection.rb
49
+ - lib/helene/rightscale/s3
50
+ - lib/helene/rightscale/s3/right_s3.rb
51
+ - lib/helene/rightscale/s3/right_s3_interface.rb
52
+ - lib/helene/rightscale/sdb
53
+ - lib/helene/rightscale/sdb/active_sdb.rb
54
+ - lib/helene/rightscale/sdb/right_sdb_interface.rb
55
+ - lib/helene/rightscale/sqs
56
+ - lib/helene/rightscale/sqs/right_sqs.rb
57
+ - lib/helene/rightscale/sqs/right_sqs_gen2.rb
58
+ - lib/helene/rightscale/sqs/right_sqs_gen2_interface.rb
59
+ - lib/helene/rightscale/sqs/right_sqs_interface.rb
60
+ - lib/helene/s3
61
+ - lib/helene/s3/bucket.rb
62
+ - lib/helene/s3/grantee.rb
63
+ - lib/helene/s3/key.rb
64
+ - lib/helene/s3/owner.rb
65
+ - lib/helene/s3.rb
66
+ - lib/helene/sdb
67
+ - lib/helene/sdb/base
68
+ - lib/helene/sdb/base/associations.rb
69
+ - lib/helene/sdb/base/attributes.rb
70
+ - lib/helene/sdb/base/connection.rb
71
+ - lib/helene/sdb/base/error.rb
72
+ - lib/helene/sdb/base/hooks.rb
73
+ - lib/helene/sdb/base/literal.rb
74
+ - lib/helene/sdb/base/logging.rb
75
+ - lib/helene/sdb/base/transactions.rb
76
+ - lib/helene/sdb/base/type.rb
77
+ - lib/helene/sdb/base/types.rb
78
+ - lib/helene/sdb/base/validations.rb
79
+ - lib/helene/sdb/base.rb
80
+ - lib/helene/sdb/cast.rb
81
+ - lib/helene/sdb/connection.rb
82
+ - lib/helene/sdb/error.rb
83
+ - lib/helene/sdb/interface.rb
84
+ - lib/helene/sdb/sentinel.rb
85
+ - lib/helene/sdb.rb
86
+ - lib/helene/sleepcycle.rb
87
+ - lib/helene/superhash.rb
88
+ - lib/helene/util.rb
89
+ - lib/helene.rb
90
+ - Rakefile
91
+ - test
92
+ - test/auth.rb
93
+ - test/helper.rb
94
+ - test/integration
95
+ - test/integration/begin.rb
96
+ - test/integration/ensure.rb
97
+ - test/integration/s3
98
+ - test/integration/s3/bucket.rb
99
+ - test/integration/sdb
100
+ - test/integration/sdb/associations.rb
101
+ - test/integration/sdb/creating.rb
102
+ - test/integration/sdb/emptiness.rb
103
+ - test/integration/sdb/hooks.rb
104
+ - test/integration/sdb/limits.rb
105
+ - test/integration/sdb/saving.rb
106
+ - test/integration/sdb/selecting.rb
107
+ - test/integration/sdb/types.rb
108
+ - test/integration/sdb/validations.rb
109
+ - test/integration/setup.rb
110
+ - test/integration/teardown.rb
111
+ - test/loader.rb
112
+ has_rdoc: true
113
+ homepage: http://github.com/ahoward/helene/tree/master
114
+ post_install_message:
115
+ rdoc_options: []
116
+
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: "0"
124
+ version:
125
+ required_rubygems_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: "0"
130
+ version:
131
+ requirements: []
132
+
133
+ rubyforge_project: codeforpeople
134
+ rubygems_version: 1.2.0
135
+ signing_key:
136
+ specification_version: 2
137
+ summary: helene
138
+ test_files: []
139
+