micro_api 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/lib/generators/micro_api/install/install_generator.rb +25 -6
- data/lib/micro_api/engine.rb +26 -0
- data/lib/micro_api/version.rb +1 -1
- data/spec/dummy/config/application.rb +1 -1
- data/spec/dummy/config/routes.rb +9 -0
- data/spec/requests/micro_api/static_healthz_spec.rb +6 -5
- metadata +26 -16
- data/spec/dummy/log/development.log +0 -2609
- data/spec/dummy/tmp/development_secret.txt +0 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz: ' | 
| 3 | 
            +
              metadata.gz: 931fe90b19dce2b382d2bf2a9aaa8c8387d8e473cd12ce31a9f9c7faa74cd10b
         | 
| 4 | 
            +
              data.tar.gz: '091df9223364158ce18f3adaf343e8ee42c62df40b0e2745af75e8d1e132d7be'
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c1fb1c1fa9ec7b39e6f37ce75493e0d0ebc5693d107d93cedf259771d444b0b11aca0e850eafa00ad5ae2caa72b9245d92a7314c6f95df3366009250545243b5
         | 
| 7 | 
            +
              data.tar.gz: 452621f6f949ccaa271e62952ea28708841d1e589fff4268fbd223c5fae47486eee3bf741b42db0995a67cae650522e0a04b07dc541cd57611183ea1325fa438
         | 
| @@ -30,8 +30,13 @@ module MicroApi | |
| 30 30 |  | 
| 31 31 | 
             
                desc "This generator add row in application.rb file"
         | 
| 32 32 | 
             
                def generate_micro_api_application
         | 
| 33 | 
            -
                   | 
| 34 | 
            -
                   | 
| 33 | 
            +
                  application_list = ["\n"]
         | 
| 34 | 
            +
                  application_list << "config.active_record.default_timezone = :utc" if defined?(ActiveRecord)
         | 
| 35 | 
            +
                  application_list << "config.time_zone = 'CET'"
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  inject_into_file 'config/application.rb', before: /\n  end$/ do
         | 
| 38 | 
            +
                    application_list.join("\n    ").gsub("    \n", "\n")
         | 
| 39 | 
            +
                  end
         | 
| 35 40 | 
             
                end
         | 
| 36 41 |  | 
| 37 42 | 
             
                desc "This generator creates an initializer file at config/initializers"
         | 
| @@ -40,10 +45,24 @@ module MicroApi | |
| 40 45 | 
             
                  template "staging.rb", "#{Rails.root}/config/environments/staging.rb"
         | 
| 41 46 | 
             
                end
         | 
| 42 47 |  | 
| 43 | 
            -
                desc "This generator add  | 
| 44 | 
            -
                def  | 
| 45 | 
            -
                   | 
| 46 | 
            -
             | 
| 48 | 
            +
                desc "This generator add 'api namespace' rows in routes.rb file"
         | 
| 49 | 
            +
                def generate_micro_api_route_api_namespace
         | 
| 50 | 
            +
                  inject_into_file 'config/routes.rb', before: "  # Defines the root path route" do
         | 
| 51 | 
            +
                    "  namespace :api, defaults: { format: :json } do\n  end\n\n"
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                desc "This generator add final rows in routes.rb file"
         | 
| 56 | 
            +
                def generate_micro_api_route_last
         | 
| 57 | 
            +
                  routes_list = [
         | 
| 58 | 
            +
                    "\n",
         | 
| 59 | 
            +
                    "mount MicroApi::Engine, at: MicroApi.routes_path, as: '#{MicroApi.routes_path}'",
         | 
| 60 | 
            +
                    "match '*path', to: 'micro_api/static#no_route_matches', via: :all"
         | 
| 61 | 
            +
                  ]
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                  inject_into_file 'config/routes.rb', before: /\nend$/ do
         | 
| 64 | 
            +
                    routes_list.join("\n  ").gsub("  \n", "\n")
         | 
| 65 | 
            +
                  end
         | 
| 47 66 | 
             
                end
         | 
| 48 67 | 
             
              end
         | 
| 49 68 | 
             
            end
         | 
    
        data/lib/micro_api/engine.rb
    CHANGED
    
    | @@ -1,8 +1,34 @@ | |
| 1 | 
            +
            require 'lograge'
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module MicroApi
         | 
| 2 4 | 
             
              class Engine < ::Rails::Engine
         | 
| 3 5 | 
             
                isolate_namespace MicroApi
         | 
| 4 6 | 
             
                config.generators.api_only = true
         | 
| 5 7 |  | 
| 8 | 
            +
                initializer "micro_api.lograge.init" do |app|
         | 
| 9 | 
            +
                  app.configure do
         | 
| 10 | 
            +
                    config.lograge.enabled = true
         | 
| 11 | 
            +
                    config.lograge.base_controller_class = "ActionController::API"
         | 
| 12 | 
            +
                    config.lograge.formatter = Lograge::Formatters::Json.new
         | 
| 13 | 
            +
                    config.colorize_logging = false
         | 
| 14 | 
            +
                    config.lograge.logger = ActiveSupport::Logger.new($stdout)
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    config.lograge.ignore_custom = lambda do |event|
         | 
| 17 | 
            +
                      event.payload[:path] == "#{MicroApi.routes_path}/healthz" && event.payload[:request].remote_ip =~ /^10\./
         | 
| 18 | 
            +
                    end
         | 
| 19 | 
            +
                    config.lograge.custom_payload do |controller|
         | 
| 20 | 
            +
                      {
         | 
| 21 | 
            +
                        level: :info,
         | 
| 22 | 
            +
                        log_type: :rails,
         | 
| 23 | 
            +
                        request_id: controller.request.request_id,
         | 
| 24 | 
            +
                        host: controller.request.host,
         | 
| 25 | 
            +
                        remote_ip: controller.request.remote_ip,
         | 
| 26 | 
            +
                        image_tag: ENV['IMAGE_TAG']
         | 
| 27 | 
            +
                      }
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
             | 
| 6 32 | 
             
                config.generators do |g|
         | 
| 7 33 | 
             
                  g.test_framework :rspec,
         | 
| 8 34 | 
             
                    controller_specs: true,
         | 
    
        data/lib/micro_api/version.rb
    CHANGED
    
    
    
        data/spec/dummy/config/routes.rb
    CHANGED
    
    | @@ -1,5 +1,14 @@ | |
| 1 1 | 
             
            Rails.application.routes.draw do
         | 
| 2 | 
            +
              # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
         | 
| 3 | 
            +
             | 
| 4 | 
            +
              namespace :api, defaults: { format: :json } do
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              # Defines the root path route ("/")
         | 
| 8 | 
            +
              # root "articles#index"
         | 
| 9 | 
            +
             | 
| 2 10 | 
             
              # mount MicroApi::Engine => "/micro_api"
         | 
| 11 | 
            +
             | 
| 3 12 | 
             
              mount MicroApi::Engine, at: MicroApi.routes_path, as: '/mse'
         | 
| 4 13 | 
             
              match '*path', to: 'micro_api/static#no_route_matches', via: :all
         | 
| 5 14 | 
             
            end
         | 
| @@ -4,6 +4,12 @@ RSpec.describe "Statics" do | |
| 4 4 | 
             
              describe "GET /healthz" do
         | 
| 5 5 | 
             
                before { @route = get("#{MicroApi.routes_path}/healthz") }
         | 
| 6 6 |  | 
| 7 | 
            +
                it "returns http success", type: :request do
         | 
| 8 | 
            +
                  expect(response).to have_http_status(:success)
         | 
| 9 | 
            +
                  expect(response.header['Content-Type']).to include 'application/json'
         | 
| 10 | 
            +
                  expect(json).to have_key('status')
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 7 13 | 
             
                it "routes /micro_api/version to the static controller", type: :routing do
         | 
| 8 14 | 
             
                  expect(@route).to route_to(
         | 
| 9 15 | 
             
                    controller: 'micro_api/static',
         | 
| @@ -11,10 +17,5 @@ RSpec.describe "Statics" do | |
| 11 17 | 
             
                    format: :json
         | 
| 12 18 | 
             
                  )
         | 
| 13 19 | 
             
                end
         | 
| 14 | 
            -
                it "returns http success", type: :request do
         | 
| 15 | 
            -
                  expect(response).to have_http_status(:success)
         | 
| 16 | 
            -
                  expect(response.header['Content-Type']).to include 'application/json'
         | 
| 17 | 
            -
                  expect(json).to have_key('status')
         | 
| 18 | 
            -
                end
         | 
| 19 20 | 
             
              end
         | 
| 20 21 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,31 +1,45 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: micro_api
         | 
| 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 | 
             
            - ''
         | 
| 8 | 
            -
            autorequire:
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023- | 
| 11 | 
            +
            date: 2023-04-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rspec-rails
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - " | 
| 17 | 
            +
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 6.0.0
         | 
| 20 20 | 
             
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - - " | 
| 24 | 
            +
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version:  | 
| 26 | 
            +
                    version: 6.0.0
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: rubocop
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '1.48'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '1.48'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: simplecov
         | 
| 29 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 44 | 
             
                requirements:
         | 
| 31 45 | 
             
                - - ">="
         | 
| @@ -39,13 +53,13 @@ dependencies: | |
| 39 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 54 | 
             
                    version: '0'
         | 
| 41 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name:  | 
| 56 | 
            +
              name: lograge
         | 
| 43 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 58 | 
             
                requirements:
         | 
| 45 59 | 
             
                - - ">="
         | 
| 46 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 61 | 
             
                    version: '0'
         | 
| 48 | 
            -
              type: : | 
| 62 | 
            +
              type: :runtime
         | 
| 49 63 | 
             
              prerelease: false
         | 
| 50 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 65 | 
             
                requirements:
         | 
| @@ -107,8 +121,6 @@ files: | |
| 107 121 | 
             
            - spec/dummy/config/locales/en.yml
         | 
| 108 122 | 
             
            - spec/dummy/config/puma.rb
         | 
| 109 123 | 
             
            - spec/dummy/config/routes.rb
         | 
| 110 | 
            -
            - spec/dummy/log/development.log
         | 
| 111 | 
            -
            - spec/dummy/tmp/development_secret.txt
         | 
| 112 124 | 
             
            - spec/generator/micro_api/installs_generator_spec.rb
         | 
| 113 125 | 
             
            - spec/rails_helper.rb
         | 
| 114 126 | 
             
            - spec/requests/micro_api/static_healthz_spec.rb
         | 
| @@ -125,7 +137,7 @@ metadata: | |
| 125 137 | 
             
              homepage_uri: https://github.com/lelered/micro_api
         | 
| 126 138 | 
             
              source_code_uri: https://github.com/lelered/micro_api
         | 
| 127 139 | 
             
              changelog_uri: https://github.com/lelered/micro_api/blob/main/CHANGELOG.md
         | 
| 128 | 
            -
            post_install_message:
         | 
| 140 | 
            +
            post_install_message: 
         | 
| 129 141 | 
             
            rdoc_options: []
         | 
| 130 142 | 
             
            require_paths:
         | 
| 131 143 | 
             
            - lib
         | 
| @@ -140,8 +152,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 140 152 | 
             
                - !ruby/object:Gem::Version
         | 
| 141 153 | 
             
                  version: '0'
         | 
| 142 154 | 
             
            requirements: []
         | 
| 143 | 
            -
            rubygems_version: 3.4. | 
| 144 | 
            -
            signing_key:
         | 
| 155 | 
            +
            rubygems_version: 3.4.10
         | 
| 156 | 
            +
            signing_key: 
         | 
| 145 157 | 
             
            specification_version: 4
         | 
| 146 158 | 
             
            summary: Engine plugin for Ruby on Rails applications
         | 
| 147 159 | 
             
            test_files:
         | 
| @@ -163,8 +175,6 @@ test_files: | |
| 163 175 | 
             
            - spec/dummy/config/puma.rb
         | 
| 164 176 | 
             
            - spec/dummy/config/routes.rb
         | 
| 165 177 | 
             
            - spec/dummy/config.ru
         | 
| 166 | 
            -
            - spec/dummy/log/development.log
         | 
| 167 | 
            -
            - spec/dummy/tmp/development_secret.txt
         | 
| 168 178 | 
             
            - spec/generator/micro_api/installs_generator_spec.rb
         | 
| 169 179 | 
             
            - spec/rails_helper.rb
         | 
| 170 180 | 
             
            - spec/requests/micro_api/static_healthz_spec.rb
         |