gdatastore_mapper 0.1.5 → 0.1.6

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.
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