activerequest 0.1.1 → 0.1.2
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/Gemfile +1 -0
- data/README.md +6 -2
- data/Rakefile +7 -1
- data/activerequest.gemspec +4 -2
- data/examples/README.md +1 -1
- data/examples/sinatra/app.rb +6 -3
- data/examples/user.rb +6 -0
- data/lib/active_request/base.rb +1 -1
- data/lib/active_request/has_many.rb +9 -4
- data/lib/active_request/queries.rb +1 -1
- data/lib/active_request/version.rb +1 -1
- metadata +32 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 990a7797574f080962dcc91833fbe8c79cf4061d
|
4
|
+
data.tar.gz: 8a05f525a754236b8a9dcf7c1ee99c196c7ff2da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cb8320e5214fcd218246ee011be1e17c8dc8bb2502857ed93a88959503794c645e5d80eee0b1f107a20e0dccc1f17fbb4efc1a97e9ac8276822e8407405c9b9
|
7
|
+
data.tar.gz: 85a4d89439b6958152ed3ff197cf1d1dbe0ec07ab74cce47a96c3f625f75f58ef83a1a96978b73f8b53c60e5a23dae772439a85869ab8963a8a8da5b6904912e
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
# Activerequest
|
2
2
|
|
3
|
-
|
3
|
+
Active Request is a gem to help monolithic projects turn into micro services.
|
4
4
|
|
5
|
-
|
5
|
+
[](https://badge.fury.io/rb/activerequest)
|
6
|
+
[](https://travis-ci.org/xptavares/activerequest)
|
7
|
+
[](https://codecov.io/gh/xptavares/activerequest)
|
8
|
+
[](https://codeclimate.com/github/xptavares/activerequest)
|
9
|
+
[](https://codeclimate.com/github/xptavares/activerequest)
|
6
10
|
|
7
11
|
## Installation
|
8
12
|
|
data/Rakefile
CHANGED
@@ -7,4 +7,10 @@ Rake::TestTask.new(:test) do |t|
|
|
7
7
|
t.test_files = FileList['test/**/*_test.rb']
|
8
8
|
end
|
9
9
|
|
10
|
-
task :
|
10
|
+
task default: :test
|
11
|
+
|
12
|
+
desc 'Generates a coverage report'
|
13
|
+
task :coverage do
|
14
|
+
ENV['COVERAGE'] = 'true'
|
15
|
+
Rake::Task['test'].execute
|
16
|
+
end
|
data/activerequest.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Alexandre Tavares"]
|
10
10
|
spec.email = ["xptavares@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
12
|
+
spec.summary = "ActiveRequest is a gem to help monolithic projects turn into micro services."
|
13
|
+
spec.description = "ActiveRequest is a gem to help monolithic projects turn into micro services."
|
14
14
|
spec.homepage = "http://rubygems.org/gems/activerequest"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
@@ -24,7 +24,9 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.11"
|
26
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
|
+
spec.add_development_dependency "webmock", "~> 2.1.0"
|
27
28
|
spec.add_development_dependency "minitest", "~> 5.0"
|
28
29
|
spec.add_development_dependency 'mocha', '~> 1.1'
|
29
30
|
spec.add_development_dependency "minitest-vcr", "~> 1.4.0"
|
31
|
+
spec.add_development_dependency 'multi_json', '~> 1.0'
|
30
32
|
end
|
data/examples/README.md
CHANGED
@@ -69,7 +69,7 @@ end
|
|
69
69
|
#### has many
|
70
70
|
|
71
71
|
```ruby
|
72
|
-
blog = Blog.
|
72
|
+
blog = Blog.find 1
|
73
73
|
=> #<Blog:0x0056334e564ed8 @id=1, @title="title 1", @posts=[]>
|
74
74
|
blog.posts # "GET /v1/blogs/1/posts.json HTTP/1.1" 200
|
75
75
|
=> [#<Post:0x0056334e554240 @id=1, @title="title 1", @body="body 1", @blog=nil>, #<Post:0x0056334e5537a0 @id=2, @title="title 2", @body="body 2", @blog=nil>]
|
data/examples/sinatra/app.rb
CHANGED
@@ -28,12 +28,15 @@ end
|
|
28
28
|
|
29
29
|
post '/v1/blogs.json' do
|
30
30
|
status 201
|
31
|
-
json
|
31
|
+
return json(blog: { id: rand(1..9999) }) if params["blog"]["title"]
|
32
|
+
status 422
|
33
|
+
json(errors: { title: ["obrigatório"] }, full_error_messages: "Title obrigatório")
|
32
34
|
end
|
33
35
|
|
34
36
|
put '/v1/blogs/:id.json' do
|
35
|
-
id
|
36
|
-
|
37
|
+
return json(blog: { id: params[:id].to_i }) if params["blog"]["title"]
|
38
|
+
status 422
|
39
|
+
json(errors: { title: ["obrigatório"] }, full_error_messages: "Title obrigatório")
|
37
40
|
end
|
38
41
|
|
39
42
|
delete '/v1/blogs/:id.json' do
|
data/examples/user.rb
ADDED
data/lib/active_request/base.rb
CHANGED
@@ -23,14 +23,19 @@ module ActiveRequest
|
|
23
23
|
if id && variable.blank?
|
24
24
|
father_ojb = Object.const_get(many[:class_name])
|
25
25
|
father_model_name = father_ojb.model_name.pluralize
|
26
|
+
self_model_name = self.class.model_name
|
26
27
|
self.class.base_uri("#{ActiveRequest.configuration.uri}/#{ActiveRequest.configuration.api_version}/")
|
27
|
-
response = self.class.get("/#{
|
28
|
+
response = self.class.get("/#{self_model_name.pluralize}/#{id}/#{father_model_name}.json", headers: self.class.headers)
|
28
29
|
return [] unless 200 == response.code
|
29
30
|
body = JSON.parse(response.body)
|
30
31
|
# TODO era para ser assim mesmo?
|
31
|
-
|
32
|
-
|
33
|
-
|
32
|
+
childrens = body["#{self_model_name}/#{father_model_name}"].map { |params| father_ojb.new(params) }
|
33
|
+
childrens.each do |ch|
|
34
|
+
ch.instance_variable_set("@#{self_model_name}", self)
|
35
|
+
ch.instance_variable_set("@#{self_model_name}_id", self.id)
|
36
|
+
end
|
37
|
+
send("#{many[:association]}=", childrens)
|
38
|
+
variable = childrens
|
34
39
|
end
|
35
40
|
variable
|
36
41
|
end
|
@@ -94,7 +94,7 @@ module ActiveRequest
|
|
94
94
|
def query
|
95
95
|
many_atts = query_for_manys.reduce(:merge)
|
96
96
|
local_atts = attributes.map { |att| add_key_value(att, send(att)) }.reject(&:blank?).reduce(:merge)
|
97
|
-
{ self.class.model_name => local_atts.merge(many_atts) }
|
97
|
+
{ self.class.model_name => local_atts ? local_atts.merge(many_atts) : many_atts }
|
98
98
|
end
|
99
99
|
|
100
100
|
def query_for_manys
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerequest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Tavares
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.1.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.1.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: minitest
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,7 +122,21 @@ dependencies:
|
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: 1.4.0
|
111
|
-
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: multi_json
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.0'
|
139
|
+
description: ActiveRequest is a gem to help monolithic projects turn into micro services.
|
112
140
|
email:
|
113
141
|
- xptavares@gmail.com
|
114
142
|
executables: []
|
@@ -129,6 +157,7 @@ files:
|
|
129
157
|
- examples/config.rb
|
130
158
|
- examples/post.rb
|
131
159
|
- examples/sinatra/app.rb
|
160
|
+
- examples/user.rb
|
132
161
|
- lib/active_request.rb
|
133
162
|
- lib/active_request/attributes.rb
|
134
163
|
- lib/active_request/base.rb
|
@@ -161,6 +190,6 @@ rubyforge_project:
|
|
161
190
|
rubygems_version: 2.4.5
|
162
191
|
signing_key:
|
163
192
|
specification_version: 4
|
164
|
-
summary:
|
193
|
+
summary: ActiveRequest is a gem to help monolithic projects turn into micro services.
|
165
194
|
test_files: []
|
166
195
|
has_rdoc:
|