micro_api 0.1.0 → 0.1.1
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 +3 -2
- data/app/controllers/micro_api/static_controller.rb +5 -0
- data/lib/generators/micro_api/install/USAGE +9 -0
- data/lib/generators/micro_api/install/install_generator.rb +49 -0
- data/lib/generators/micro_api/install/templates/micro_api.rb +5 -0
- data/lib/generators/micro_api/install/templates/staging.rb +5 -0
- data/lib/micro_api/version.rb +1 -1
- data/lib/micro_api.rb +8 -1
- data/spec/dummy/config/application.rb +2 -0
- data/spec/dummy/config/routes.rb +3 -1
- data/spec/dummy/log/development.log +2609 -0
- data/spec/dummy/tmp/development_secret.txt +1 -0
- data/spec/generator/micro_api/installs_generator_spec.rb +34 -0
- data/spec/rails_helper.rb +1 -0
- data/spec/requests/micro_api/static_healthz_spec.rb +20 -0
- data/spec/requests/micro_api/static_spec.rb +8 -19
- data/spec/requests/micro_api/static_version_spec.rb +21 -0
- data/spec/support/file_spec_helper.rb +16 -0
- data/spec/support/request_spec_helper.rb +1 -1
- metadata +24 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88d34ac6588812baff48c14c12b1ab5dac85de8ce875a633b10ed557fd207319
|
4
|
+
data.tar.gz: '0924c15c703900c1fb9f90387bd1af51da634ca1d52bc4eae3436b93080cc954'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e792082eb0e8dddfd11db78b6f8ffe85219851d7599fb1c1c0035803ae9de121985cab7a5f61b79ff568a0a0597b94b772a8c8fe1140f08ade427acc8260c0be
|
7
|
+
data.tar.gz: 523a47666b6ab4affed06d1fd0e3c30b52e7a0c9409d246ddc8f811b893a65fb219a51b874db5830ee3c397e530d511e39eff49641562b0be8b4a08edb37c162
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# MicroApi
|
2
|
-
|
2
|
+
This is a Rails plugin that would like to help the startup of rails applications oriented to microservices or, in general, application deployed on the cloud.
|
3
3
|
|
4
4
|
## Usage
|
5
5
|
How to use my plugin.
|
@@ -13,7 +13,8 @@ gem "micro_api"
|
|
13
13
|
|
14
14
|
And then execute:
|
15
15
|
```bash
|
16
|
-
|
16
|
+
bundle
|
17
|
+
bundle exec rails generate micro_api:install
|
17
18
|
```
|
18
19
|
|
19
20
|
Or install it yourself as:
|
@@ -12,5 +12,10 @@ module MicroApi
|
|
12
12
|
itag: ENV.fetch("IMAGE_TAG", nil), # image tag
|
13
13
|
}
|
14
14
|
end
|
15
|
+
|
16
|
+
def no_route_matches
|
17
|
+
exception = ActionController::RoutingError.new("No route matches [#{request.method}] #{request.path}")
|
18
|
+
render json: { error: exception.message }, status: :not_found
|
19
|
+
end
|
15
20
|
end
|
16
21
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module MicroApi
|
2
|
+
# main generator installer
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path("templates", __dir__)
|
5
|
+
|
6
|
+
argument :component, type: :string, default: 'all',
|
7
|
+
banner: "all|application|initializer|route"
|
8
|
+
|
9
|
+
def main
|
10
|
+
method_name = "generate_micro_api_#{component}"
|
11
|
+
return unless self.class.private_method_defined?(method_name)
|
12
|
+
|
13
|
+
send(method_name)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def local_methods
|
19
|
+
private_methods.select { |e| e.to_s.include? "generate_micro_api_" }
|
20
|
+
end
|
21
|
+
|
22
|
+
desc "This generator creates all installs"
|
23
|
+
def generate_micro_api_all
|
24
|
+
local_methods.each do |method_name|
|
25
|
+
next if method_name == __method__
|
26
|
+
|
27
|
+
send(method_name)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "This generator add row in application.rb file"
|
32
|
+
def generate_micro_api_application
|
33
|
+
application 'config.active_record.default_timezone = :utc' if defined?(ActiveRecord)
|
34
|
+
application 'config.time_zone = "CET"'
|
35
|
+
end
|
36
|
+
|
37
|
+
desc "This generator creates an initializer file at config/initializers"
|
38
|
+
def generate_micro_api_initializer
|
39
|
+
template "micro_api.rb", "#{Rails.root}/config/initializers/micro_api.rb"
|
40
|
+
template "staging.rb", "#{Rails.root}/config/environments/staging.rb"
|
41
|
+
end
|
42
|
+
|
43
|
+
desc "This generator add row in routes.rb file"
|
44
|
+
def generate_micro_api_route
|
45
|
+
route "mount MicroApi::Engine, at: MicroApi.routes_path, as: '#{MicroApi.routes_path}'"
|
46
|
+
route "match '*path', to: 'micro_api/static#no_route_matches', via: :all"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/micro_api/version.rb
CHANGED
data/lib/micro_api.rb
CHANGED
data/spec/dummy/config/routes.rb
CHANGED