repositor 0.3.4 → 0.4.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.
- checksums.yaml +4 -4
- data/README.md +17 -11
- data/lib/repositor/active_record.rb +4 -6
- data/lib/repositor.rb +1 -0
- metadata +35 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57ecdac0dba23e52a2837a0a56185f999b873d90
|
4
|
+
data.tar.gz: bf29c856e21fd9c84edb64114646164f350ce5d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ffa9d513e8a76ac0d87c87b61919d094f452445182b6c6b1e90362efe5438afc9b4adf71284e10960c0f7ad6e3dd78989525479f84699dad48f17799a7eba58e
|
7
|
+
data.tar.gz: d41b29977d2bb2756f1464c82f9d799fb2d6d9ca5928b800128eb56baae17dca509ecb3acaf8ccd4a2ce32406af9d81529bfb8e297d0b8d52f48d0fa0f94d54d
|
data/README.md
CHANGED
@@ -101,7 +101,7 @@ In `app` directory you need to create new `repos` directory . Recomended to crea
|
|
101
101
|
class ApplicationRepo
|
102
102
|
# include ORM submodule
|
103
103
|
# now supported only ActiveRecord
|
104
|
-
# more will added soon
|
104
|
+
# more will be added soon
|
105
105
|
include Repositor::ActiveRecord
|
106
106
|
end
|
107
107
|
```
|
@@ -110,6 +110,11 @@ Than you need to create `products_repo.rb`:
|
|
110
110
|
```ruby
|
111
111
|
class ProductsRepo < ApplicationRepo
|
112
112
|
# here you will have default methods for repo actions
|
113
|
+
# if you want communicate with model class,
|
114
|
+
# just can use model method to send it any method you need
|
115
|
+
def all_with_name_john
|
116
|
+
model.where(name: 'John')
|
117
|
+
end
|
113
118
|
end
|
114
119
|
```
|
115
120
|
and that's all... magic already happened (no)
|
@@ -119,18 +124,22 @@ If check what exactly was done, including `Repository` module in base `Applicati
|
|
119
124
|
`Repositor` did for you a lot of dry work. In other case for each repo you must make identical methods, like this:
|
120
125
|
```ruby
|
121
126
|
class ProductsRepo
|
122
|
-
def find(product_id)
|
123
|
-
Product.find(product_id)
|
124
|
-
end
|
125
|
-
|
126
127
|
def all
|
127
128
|
Product.all
|
128
129
|
end
|
129
130
|
|
130
|
-
|
131
|
+
def new
|
131
132
|
Product.new
|
132
133
|
end
|
133
134
|
|
135
|
+
def find(product_id)
|
136
|
+
Product.find(product_id)
|
137
|
+
end
|
138
|
+
|
139
|
+
def create(product_params)
|
140
|
+
Product.create(product_params)
|
141
|
+
end
|
142
|
+
|
134
143
|
def update(product_id, params)
|
135
144
|
find(product_id).tap do |product|
|
136
145
|
product.update(params)
|
@@ -140,13 +149,10 @@ class ProductsRepo
|
|
140
149
|
def destroy(product_id)
|
141
150
|
find(product_id).destroy
|
142
151
|
end
|
143
|
-
|
144
|
-
def create(product_params)
|
145
|
-
Product.create(product_params)
|
146
|
-
end
|
147
152
|
end
|
148
153
|
```
|
149
|
-
If you need to add new method
|
154
|
+
If you need to add new method for model, just define it in repo file.
|
155
|
+
Keep your model skinny.
|
150
156
|
|
151
157
|
## TODO
|
152
158
|
* Specs on the way...
|
@@ -22,14 +22,12 @@ module Repositor
|
|
22
22
|
model.send :create, record_params
|
23
23
|
end
|
24
24
|
|
25
|
-
def update(
|
26
|
-
|
27
|
-
record.update(record_params)
|
28
|
-
end
|
25
|
+
def update(record, record_params)
|
26
|
+
record.update(record_params)
|
29
27
|
end
|
30
28
|
|
31
|
-
def destroy(
|
32
|
-
|
29
|
+
def destroy(record)
|
30
|
+
record.destroy
|
33
31
|
end
|
34
32
|
end
|
35
33
|
end
|
data/lib/repositor.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: repositor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Volodya Sveredyuk
|
@@ -30,6 +30,40 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 3.4.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: pry
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 0.10.3
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.10.3
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: activesupport
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '4.2'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 4.2.6
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '4.2'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 4.2.6
|
33
67
|
description: Create simple Repos for Rails Controllers
|
34
68
|
email: sveredyuk@gmail.com
|
35
69
|
executables: []
|