gdatastore_mapper 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aa320055068d5564fcdcc0b8096dce15383a35aa
4
- data.tar.gz: 3fe5c73bdaafdbf425749d9a81e1eccf97a8619c
3
+ metadata.gz: e6ba358c0a8c21946a0c0c38cb4449b26cc9705c
4
+ data.tar.gz: f8cad2beee638c900f6418fa06a9e2b8336acc3b
5
5
  SHA512:
6
- metadata.gz: 73593026c0db91d4794ce427d23a387ddae474ec86ea51a597a557f993f47cc0d3e5a1e86edc42e9b26c9e1284fd45db9f737453b583baef9cf0d74927ab90e4
7
- data.tar.gz: 7aef4ddd1a987f6741ce9a97bc435bcd27cde748b6efd2b6035047c7f4bbb456829020ade488d95de5deee17b6b993d61f55e2fd16c3bfb84ff7c94c18d8d51c
6
+ metadata.gz: 972712b50dd7ccdd03be8d5e557271e577dda9d4de3aa8dff47cab82313fbc9b2d8b74a03160f51f35d0fe0743ee59252229f35246b2d2bfb290c6abdc1aa12e
7
+ data.tar.gz: b945a9e7168001e830bed9cb08bedb23812127950e5fe55e56ff18ab908db287f9679f4a1b568056afb6ec9b7f4947683753ea0f36539bb393f9fda42396363e
data/README.md CHANGED
@@ -91,6 +91,8 @@ end
91
91
 
92
92
  ## Persistence Methods
93
93
 
94
+ new record
95
+
94
96
  ```
95
97
  book = Book.new
96
98
  book.title = 'Harry Potter'
@@ -103,12 +105,21 @@ book.save
103
105
  ```
104
106
  Book.create(title: 'Harry Potter')
105
107
  ```
108
+
109
+ update
110
+
106
111
  ```
107
112
  book.update(title: 'Harry Potter 2')
108
113
  ```
114
+
115
+ delete
116
+
109
117
  ```
110
118
  book.delete
111
119
  ```
120
+ ```
121
+ Book.delete_all
122
+ ```
112
123
 
113
124
  ## Scoping Methods
114
125
 
@@ -27,5 +27,5 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.add_development_dependency 'rake', '~> 12.0'
29
29
  spec.add_development_dependency 'bundler', '~> 1.14'
30
- spec.add_development_dependency 'rspec', '~> 3.0'
30
+ spec.add_development_dependency 'rspec', '~> 3.5'
31
31
  end
@@ -2,6 +2,7 @@ require 'gdatastore_mapper/session'
2
2
  require 'gdatastore_mapper/scoping'
3
3
  require 'gdatastore_mapper/associations'
4
4
  require 'gdatastore_mapper/persistence'
5
+ require 'gdatastore_mapper/persistence/class_methods'
5
6
 
6
7
  module GdatastoreMapper
7
8
  module Base
@@ -18,6 +19,7 @@ module GdatastoreMapper
18
19
  extend Scoping
19
20
  extend Associations
20
21
  include Persistence
22
+ extend Persistence::ClassMethods
21
23
  end
22
24
 
23
25
  module ClassMethods
@@ -43,12 +45,6 @@ module GdatastoreMapper
43
45
  record
44
46
  end
45
47
 
46
- def create params
47
- record = self.new params
48
- record.save
49
- record
50
- end
51
-
52
48
  end
53
49
 
54
50
  def attributes
@@ -13,6 +13,7 @@ module GdatastoreMapper
13
13
  end
14
14
 
15
15
  def update attributes
16
+ return false if !valid?
16
17
  run_callbacks :update do
17
18
  attributes.each do |name, value|
18
19
  send "#{name}=", value if respond_to? "#{name}="
@@ -0,0 +1,20 @@
1
+ module GdatastoreMapper
2
+ module Persistence
3
+ module ClassMethods
4
+
5
+ def create params
6
+ record = self.new params
7
+ record.save
8
+ record
9
+ end
10
+
11
+ def delete_all
12
+ self.each do |resource|
13
+ resource.destroy
14
+ end
15
+ true
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -3,9 +3,9 @@ require "gdatastore_mapper/relation"
3
3
  module GdatastoreMapper
4
4
  module Scoping
5
5
 
6
- def where condition
6
+ def where condition, &block
7
7
  return nil unless condition.is_a?(Hash)
8
- dataset_run(where_query condition)
8
+ dataset_run(where_query(condition), &block)
9
9
  end
10
10
 
11
11
  def find id
@@ -29,15 +29,15 @@ module GdatastoreMapper
29
29
  end
30
30
  end
31
31
 
32
- def order condition
32
+ def order condition, &block
33
33
  return nil unless condition.is_a?(Hash)
34
- dataset_run(order_query condition)
34
+ dataset_run(order_query(condition), &block)
35
35
  end
36
36
 
37
- def all
38
- order(created_at: :asc)
37
+ def all &block
38
+ order(created_at: :asc, &block)
39
39
  end
40
-
40
+ alias_method :each, :all
41
41
 
42
42
  def first
43
43
  all.first
@@ -71,11 +71,14 @@ module GdatastoreMapper
71
71
  query
72
72
  end
73
73
 
74
- def dataset_run query
74
+ def dataset_run query, &block
75
75
  entities = GdatastoreMapper::Session.dataset.run query
76
76
  result = GdatastoreMapper::Relation.new(self, nil)
77
77
  entities.each do |entity|
78
- result << (from_entity entity)
78
+ record = from_entity(entity)
79
+ block.call(record) if block_given?
80
+ record = find(record.id)
81
+ result << record if record
79
82
  end
80
83
  result
81
84
  end
@@ -1,3 +1,3 @@
1
1
  module GdatastoreMapper
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gdatastore_mapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shinya Kitamura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-20 00:00:00.000000000 Z
11
+ date: 2017-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-datastore
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: '3.5'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.0'
96
+ version: '3.5'
97
97
  description: Google Cloud Datastore ORM/ODM (Mapper) in Ruby and Ruby on Rails
98
98
  email:
99
99
  - shinya.kitamura.14@gmail.com
@@ -117,6 +117,7 @@ files:
117
117
  - lib/gdatastore_mapper/associations/has_many.rb
118
118
  - lib/gdatastore_mapper/base.rb
119
119
  - lib/gdatastore_mapper/persistence.rb
120
+ - lib/gdatastore_mapper/persistence/class_methods.rb
120
121
  - lib/gdatastore_mapper/relation.rb
121
122
  - lib/gdatastore_mapper/scoping.rb
122
123
  - lib/gdatastore_mapper/session.rb