JunKikuchi-raws 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,54 @@
1
1
  = RAWS
2
2
 
3
3
  RAWS is a Ruby library for Amazon Web Service (AWS).
4
+
5
+ == SQS (Amazon Simple Queue Service)
6
+
7
+ require 'rubygems'
8
+ require 'raws'
9
+
10
+ RAWS.aws_access_key_id = AWS_ACCESS_KEY_ID
11
+ RAWS.aws_secret_access_key = AWS_SECRET_ACCESS_KEY
12
+
13
+ RAWS::SQS.create_queue('test_queue')
14
+
15
+ sleep 60
16
+
17
+ RAWS::SQS['test_queue'].send('hello1')
18
+ RAWS::SQS['test_queue'].send('hello2')
19
+ RAWS::SQS['test_queue'].send('hello3')
20
+
21
+ RAWS::SQS['test_queue'].receive(10).each do |msg|
22
+ p msg.body
23
+ msg.delete
24
+ end
25
+
26
+ RAWS::SQS['test_queue'].delete_queue
27
+
28
+ == SDB (Amazon SimpleDB)
29
+
30
+ require 'rubygems'
31
+ require 'raws'
32
+
33
+ RAWS.aws_access_key_id = AWS_ACCESS_KEY_ID
34
+ RAWS.aws_secret_access_key = AWS_SECRET_ACCESS_KEY
35
+
36
+ RAWS::SDB.create_domain('test_domain')
37
+
38
+ sleep 60
39
+
40
+ RAWS::SDB['test_domain'].put('1', 'a' => '10')
41
+ RAWS::SDB['test_domain'].put('2', 'b' => '10')
42
+ RAWS::SDB['test_domain'].put('3', 'c' => '10')
43
+
44
+ p RAWS::SDB['test_domain'].get('1')
45
+ p RAWS::SDB['test_domain'].get('2')
46
+ p RAWS::SDB['test_domain'].get('3')
47
+
48
+ RAWS::SDB['test_domain'].delete('1')
49
+ RAWS::SDB['test_domain'].delete('2')
50
+ RAWS::SDB['test_domain'].delete('3')
51
+
52
+ RAWS::SDB['test_domain'].delete_domain
53
+
54
+ == S3 (Amazon Simple Storage Service)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.0.1
@@ -30,6 +30,31 @@ module RAWS::SDB::Model
30
30
  def generate_id
31
31
  UUIDTools::UUID.random_create
32
32
  end
33
+
34
+ def sdb_reader(*names)
35
+ names.each do |name|
36
+ module_eval %Q{
37
+ def #{name}
38
+ self['#{name}']
39
+ end
40
+ }
41
+ end
42
+ end
43
+
44
+ def sdb_writer(*names)
45
+ names.each do |name|
46
+ module_eval %Q{
47
+ def #{name}=(val)
48
+ self['#{name}'] = val
49
+ end
50
+ }
51
+ end
52
+ end
53
+
54
+ def sdb_accessor(*names)
55
+ sdb_reader(*names)
56
+ sdb_writer(*names)
57
+ end
33
58
  end
34
59
 
35
60
  module InstanceMethods
@@ -37,6 +62,7 @@ module RAWS::SDB::Model
37
62
 
38
63
  def initialize(values={}, id=nil)
39
64
  @id, @values = id, values
65
+ after_initialize
40
66
  end
41
67
 
42
68
  def [](key)
@@ -48,15 +74,34 @@ module RAWS::SDB::Model
48
74
  end
49
75
 
50
76
  def delete
77
+ before_delete
51
78
  RAWS::SDB[self.class.domain_name].delete(id) if id
79
+ after_delete
52
80
  end
53
81
 
54
82
  def save
55
- RAWS::SDB[self.class.domain_name].put(
56
- id || self.class.generate_id,
57
- values
58
- )
83
+ before_save
84
+ if id
85
+ before_update
86
+ RAWS::SDB[self.class.domain_name].put(id, values)
87
+ after_update
88
+ else
89
+ before_insert
90
+ RAWS::SDB[self.class.domain_name].put(self.class.generate_id, values)
91
+ after_insert
92
+ end
93
+ after_save
59
94
  end
95
+
96
+ def after_initialize; end
97
+ def before_delete; end
98
+ def after_delete; end
99
+ def before_save; end
100
+ def after_save; end
101
+ def before_update; end
102
+ def after_update; end
103
+ def before_insert; end
104
+ def after_insert; end
60
105
  end
61
106
 
62
107
  def self.included(mod)
@@ -0,0 +1,42 @@
1
+ require 'spec/spec_config'
2
+
3
+ class SDBModel
4
+ include RAWS::SDB::Model
5
+ self.domain_name = RAWS_SDB_DOMAIN
6
+ end
7
+
8
+ describe RAWS::SDB::Model do
9
+ describe 'class' do
10
+ it 'methods' do
11
+ %w'
12
+ create_domain
13
+ delete_domain
14
+ select
15
+ generate_id
16
+ '.each do |val|
17
+ SDBModel.should respond_to val.to_sym
18
+ end
19
+ end
20
+
21
+ it 'domain_name' do
22
+ SDBModel.domain_name.should == RAWS_SDB_DOMAIN
23
+ end
24
+ end
25
+
26
+ describe 'object' do
27
+ before do
28
+ @model = SDBModel.new
29
+ end
30
+
31
+ it 'methods' do
32
+ %w'
33
+ []
34
+ []=
35
+ delete
36
+ save
37
+ '.each do |val|
38
+ @model.should respond_to val.to_sym
39
+ end
40
+ end
41
+ end
42
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: JunKikuchi-raws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jun Kikuchi
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-25 00:00:00 -07:00
12
+ date: 2009-09-13 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -38,7 +38,6 @@ files:
38
38
  - lib/raws/sqs/adapter.rb
39
39
  has_rdoc: false
40
40
  homepage: http://github.com/JunKikuchi/raws
41
- licenses:
42
41
  post_install_message:
43
42
  rdoc_options:
44
43
  - --charset=UTF-8
@@ -59,12 +58,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
58
  requirements: []
60
59
 
61
60
  rubyforge_project:
62
- rubygems_version: 1.3.5
61
+ rubygems_version: 1.2.0
63
62
  signing_key:
64
63
  specification_version: 3
65
64
  summary: raws
66
65
  test_files:
67
66
  - spec/raws/s3_spec.rb
67
+ - spec/raws/sdb/model_spec.rb
68
68
  - spec/raws/sdb_spec.rb
69
69
  - spec/raws/sqs_spec.rb
70
70
  - spec/raws_spec.rb