natra 0.0.7 → 2.0.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/.github/dependabot.yml +17 -0
- data/.github/workflows/ci.yml +50 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +26 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +58 -0
- data/CODE_OF_CONDUCT.md +0 -0
- data/Gemfile +12 -6
- data/Gemfile.lock +157 -116
- data/Guardfile +7 -5
- data/LICENSE.txt +0 -0
- data/README.md +138 -32
- data/Rakefile +4 -2
- data/bin/console +2 -0
- data/bin/natra +5 -3
- data/lib/extensions/string.rb +15 -11
- data/lib/natra/cli.rb +7 -2
- data/lib/natra/generators/app/app_generator.rb +32 -19
- data/lib/natra/generators/app/templates/Dockerfile +28 -10
- data/lib/natra/generators/app/templates/Gemfile +26 -20
- data/lib/natra/generators/app/templates/Guardfile +2 -0
- data/lib/natra/generators/app/templates/README.md +29 -30
- data/lib/natra/generators/app/templates/Rakefile +3 -2
- data/lib/natra/generators/app/templates/app/controllers/application_controller.rb +2 -0
- data/lib/natra/generators/app/templates/app/views/welcome.erb +2 -1
- data/lib/natra/generators/app/templates/bin/setup +4 -4
- data/lib/natra/generators/app/templates/config/database.yml +6 -6
- data/lib/natra/generators/app/templates/config/environment.rb +4 -5
- data/lib/natra/generators/app/templates/config/initializers/oj.rb +5 -4
- data/lib/natra/generators/app/templates/config/initializers/redis.rb +5 -3
- data/lib/natra/generators/app/templates/config/puma.rb +11 -5
- data/lib/natra/generators/app/templates/config.ru +2 -0
- data/lib/natra/generators/app/templates/db/migrate/add_extensions.rb +3 -1
- data/lib/natra/generators/app/templates/docker-compose.yml +3 -5
- data/lib/natra/generators/app/templates/rubocop.yml +8 -11
- data/lib/natra/generators/app/templates/spec/application_controller_spec.rb +2 -0
- data/lib/natra/generators/app/templates/spec/spec_helper.rb +10 -9
- data/lib/natra/generators/controller/controller_generator.rb +4 -0
- data/lib/natra/generators/model/migration.rb.erb +1 -1
- data/lib/natra/generators/model/model_generator.rb +8 -2
- data/lib/natra/generators/scaffold/scaffold_generator.rb +3 -0
- data/lib/natra/generators/service/service_generator.rb +31 -0
- data/lib/natra/generators/service/template/service.rb.erb +11 -0
- data/lib/natra/version.rb +3 -1
- data/lib/natra.rb +4 -0
- data/natra.gemspec +14 -11
- metadata +35 -39
- data/.coveralls.yml +0 -2
- data/.travis.yml +0 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
2
|
|
|
3
3
|
set -e
|
|
4
4
|
|
|
5
|
-
RACK_ENV=development rake db:create db:migrate --trace
|
|
6
|
-
RACK_ENV=development rake db:seed --trace
|
|
7
|
-
RACK_ENV=test DATABASE_URL=$TEST_DATABASE_URL rake db:create db:migrate --trace
|
|
5
|
+
RACK_ENV=development bundle exec rake db:create db:migrate --trace
|
|
6
|
+
RACK_ENV=development bundle exec rake db:seed --trace
|
|
7
|
+
RACK_ENV=test DATABASE_URL=$TEST_DATABASE_URL bundle exec rake db:create db:migrate --trace
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
development:
|
|
2
2
|
adapter: postgresql
|
|
3
3
|
encoding: unicode
|
|
4
|
-
database: ENV
|
|
5
|
-
pool:
|
|
4
|
+
database: <%%= ENV.fetch('DEV_DATABASE', 'development_<%= @name.directory_name %>') %>
|
|
5
|
+
pool: 5
|
|
6
6
|
production:
|
|
7
7
|
adapter: postgresql
|
|
8
8
|
encoding: unicode
|
|
9
|
-
database: ENV
|
|
10
|
-
pool:
|
|
9
|
+
database: <%%= ENV.fetch('PROD_DATABASE', 'production_<%= @name.directory_name %>') %>
|
|
10
|
+
pool: 5
|
|
11
11
|
test:
|
|
12
12
|
adapter: postgresql
|
|
13
13
|
encoding: unicode
|
|
14
|
-
database: ENV
|
|
15
|
-
pool:
|
|
14
|
+
database: <%%= ENV.fetch('TEST_DATABASE', 'test_<%= @name.directory_name %>') %>
|
|
15
|
+
pool: 5
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
ENV['RACK_ENV'] ||= 'development'
|
|
2
|
-
require 'rubygems'
|
|
3
4
|
require 'bundler/setup'
|
|
4
|
-
Bundler.require(:default, ENV
|
|
5
|
+
Bundler.require(:default, ENV.fetch('RACK_ENV'))
|
|
5
6
|
require 'active_support'
|
|
6
7
|
require 'active_support/core_ext/hash/indifferent_access'
|
|
7
8
|
require 'active_support/core_ext/string'
|
|
8
|
-
|
|
9
|
-
require 'scout_apm'
|
|
10
|
-
require 'oj'
|
|
9
|
+
require_all 'config/initializers'
|
|
11
10
|
require './app/controllers/application_controller'
|
|
12
11
|
require_all 'app'
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'yaml'
|
|
2
4
|
|
|
3
5
|
# Redis Configuration
|
|
4
|
-
unless ENV
|
|
5
|
-
redis_settings = YAML.load_file('config/redis.yml')
|
|
6
|
-
REDIS = Redis.new(redis_settings
|
|
6
|
+
unless ENV.fetch('RACK_ENV') == 'test'
|
|
7
|
+
redis_settings = YAML.load_file('config/redis.yml').fetch(ENV.fetch('RACK_ENV'))
|
|
8
|
+
REDIS = Redis.new(**redis_settings.compact.transform_keys(&:to_sym))
|
|
7
9
|
end
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
threads_count = Integer(ENV.fetch('PUMA_MAX_THREADS', 5))
|
|
4
|
+
port = Integer(ENV.fetch('PORT', 9292))
|
|
5
|
+
workers_count = Integer(ENV.fetch('WEB_CONCURRENCY', 0))
|
|
3
6
|
|
|
4
7
|
threads threads_count, threads_count
|
|
5
|
-
workers Integer(ENV['WEB_CONCURRENCY'] || 1)
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
# Cluster mode only when WEB_CONCURRENCY asks for workers.
|
|
10
|
+
if workers_count.positive?
|
|
11
|
+
workers workers_count
|
|
12
|
+
preload_app!
|
|
13
|
+
end
|
|
8
14
|
|
|
9
|
-
environment ENV
|
|
15
|
+
environment ENV.fetch('RACK_ENV', 'development')
|
|
10
16
|
|
|
11
17
|
bind "tcp://0.0.0.0:#{port}"
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
version: "2.3"
|
|
2
|
-
|
|
3
1
|
services:
|
|
4
2
|
web:
|
|
5
3
|
build:
|
|
6
4
|
context: .
|
|
7
5
|
target: development
|
|
8
|
-
command: puma
|
|
6
|
+
command: bundle exec puma -C config/puma.rb
|
|
9
7
|
volumes:
|
|
10
8
|
- .:/usr/src/app
|
|
11
9
|
ports:
|
|
12
10
|
- '9292:9292'
|
|
13
|
-
|
|
11
|
+
depends_on:
|
|
14
12
|
- db
|
|
15
13
|
env_file: secrets.env
|
|
16
14
|
db:
|
|
17
|
-
image: postgres:
|
|
15
|
+
image: postgres:17-alpine
|
|
18
16
|
ports:
|
|
19
17
|
- "54329:5432"
|
|
20
18
|
env_file: secrets.env
|
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
AllCops:
|
|
2
|
-
TargetRubyVersion:
|
|
2
|
+
TargetRubyVersion: 3.3
|
|
3
|
+
NewCops: enable
|
|
4
|
+
SuggestExtensions: false
|
|
3
5
|
Exclude:
|
|
4
6
|
- Guardfile
|
|
5
7
|
- spec/spec_helper.rb
|
|
6
|
-
- tmp
|
|
8
|
+
- tmp/**/*
|
|
9
|
+
- vendor/**/*
|
|
7
10
|
|
|
8
|
-
Documentation:
|
|
11
|
+
Style/Documentation:
|
|
9
12
|
Enabled: false
|
|
10
13
|
|
|
11
14
|
Style/FrozenStringLiteralComment:
|
|
12
15
|
Enabled: false
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
Enabled: false
|
|
16
|
-
|
|
17
|
-
AlignParameters:
|
|
18
|
-
EnforcedStyle: with_fixed_indentation
|
|
19
|
-
|
|
20
|
-
Layout/AlignParameters:
|
|
17
|
+
Layout/ParameterAlignment:
|
|
21
18
|
EnforcedStyle: with_fixed_indentation
|
|
22
19
|
|
|
23
20
|
Layout/MultilineMethodCallIndentation:
|
|
@@ -29,7 +26,7 @@ Layout/MultilineOperationIndentation:
|
|
|
29
26
|
Layout/EndAlignment:
|
|
30
27
|
EnforcedStyleAlignWith: variable
|
|
31
28
|
|
|
32
|
-
ClassAndModuleChildren:
|
|
29
|
+
Style/ClassAndModuleChildren:
|
|
33
30
|
Enabled: false
|
|
34
31
|
|
|
35
32
|
Metrics/BlockLength:
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'simplecov'
|
|
4
|
+
SimpleCov.start
|
|
5
|
+
|
|
1
6
|
ENV['RACK_ENV'] = 'test'
|
|
2
7
|
require_relative '../config/environment'
|
|
3
8
|
require 'rack/test'
|
|
4
9
|
require 'capybara/rspec'
|
|
5
10
|
require 'capybara/dsl'
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if ActiveRecord::Migrator.needs_migration?
|
|
9
|
-
raise 'Migrations are pending. Run `rake db:migrate RACK_ENV=test` to resolve the issue.'
|
|
10
|
-
end
|
|
11
|
+
|
|
12
|
+
ActiveRecord::Migration.check_all_pending!
|
|
11
13
|
|
|
12
14
|
ActiveRecord::Base.logger = nil
|
|
13
15
|
|
|
14
16
|
RSpec.configure do |config|
|
|
15
|
-
config.
|
|
16
|
-
config.filter_run :focus
|
|
17
|
+
config.filter_run_when_matching :focus
|
|
17
18
|
config.include Rack::Test::Methods
|
|
18
19
|
config.include Capybara::DSL
|
|
19
20
|
DatabaseCleaner.strategy = :truncation
|
|
@@ -26,11 +27,11 @@ RSpec.configure do |config|
|
|
|
26
27
|
DatabaseCleaner.clean
|
|
27
28
|
end
|
|
28
29
|
|
|
29
|
-
config.order =
|
|
30
|
+
config.order = :defined
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
def app
|
|
33
|
-
Rack::Builder.parse_file('config.ru')
|
|
34
|
+
Rack::Builder.parse_file('config.ru')
|
|
34
35
|
end
|
|
35
36
|
|
|
36
37
|
Capybara.app = app
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'thor/group'
|
|
2
4
|
require 'active_support/inflector'
|
|
3
5
|
module Natra
|
|
4
6
|
module Generators
|
|
7
|
+
# Generates a controller, its routes and views (natra controller).
|
|
5
8
|
class ControllerGenerator < Thor::Group
|
|
6
9
|
include Thor::Actions
|
|
10
|
+
|
|
7
11
|
attr_reader :controller_name, :class_name, :file_name
|
|
8
12
|
|
|
9
13
|
desc 'Generate an Controller with associated views'
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'thor/group'
|
|
2
4
|
require 'active_support/inflector'
|
|
3
5
|
module Natra
|
|
4
6
|
module Generators
|
|
7
|
+
# Generates an ActiveRecord model and its migration (natra model).
|
|
5
8
|
class ModelGenerator < Thor::Group
|
|
6
9
|
include Thor::Actions
|
|
10
|
+
|
|
7
11
|
attr_reader :file_name, :class_name, :model_name, :migration_name, :migration_class_name, :table_name
|
|
8
12
|
|
|
9
13
|
desc 'Generate an ActiveRecord model'
|
|
@@ -32,7 +36,8 @@ module Natra
|
|
|
32
36
|
|
|
33
37
|
def create_model
|
|
34
38
|
unless model_name == name
|
|
35
|
-
say "[WARNING] The model name '#{name}' was recognized as a plural,
|
|
39
|
+
say "[WARNING] The model name '#{name}' was recognized as a plural, " \
|
|
40
|
+
"using the singular '#{model_name}' instead."
|
|
36
41
|
end
|
|
37
42
|
|
|
38
43
|
template 'model.rb.erb', File.join('app/models', "#{file_name}.rb")
|
|
@@ -43,7 +48,8 @@ module Natra
|
|
|
43
48
|
|
|
44
49
|
migration_files = Dir.entries('db/migrate').reject { |path| File.directory? path }
|
|
45
50
|
|
|
46
|
-
|
|
51
|
+
duplicate = migration_files.find { |file| file.include?(migration_name) }
|
|
52
|
+
if duplicate
|
|
47
53
|
say_status :identical, "db/migrate/#{duplicate}", :blue
|
|
48
54
|
else
|
|
49
55
|
version = Time.now.utc.strftime('%Y%m%d%H%M%S')
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'thor/group'
|
|
2
4
|
require 'active_support/inflector'
|
|
3
5
|
module Natra
|
|
4
6
|
module Generators
|
|
7
|
+
# Generates a model with its controller and views (natra scaffold).
|
|
5
8
|
class ScaffoldGenerator < Thor::Group
|
|
6
9
|
include Thor::Actions
|
|
7
10
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'thor/group'
|
|
4
|
+
require 'active_support/inflector'
|
|
5
|
+
module Natra
|
|
6
|
+
module Generators
|
|
7
|
+
# Generates a plain Ruby service object.
|
|
8
|
+
class ServiceGenerator < Thor::Group
|
|
9
|
+
include Thor::Actions
|
|
10
|
+
|
|
11
|
+
attr_reader :service_name, :class_name, :file_name
|
|
12
|
+
|
|
13
|
+
desc 'Generate a Service Object'
|
|
14
|
+
argument :name, type: :string, desc: 'Name of the Service Object'
|
|
15
|
+
|
|
16
|
+
def self.source_root
|
|
17
|
+
File.dirname(__FILE__)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def setup
|
|
21
|
+
@service_name = name.pluralize.underscore
|
|
22
|
+
@class_name = "#{service_name.camel_case}Service"
|
|
23
|
+
@file_name = class_name.underscore
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def create_service
|
|
27
|
+
template 'template/service.rb.erb', File.join('app/services', "#{file_name}.rb")
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
data/lib/natra/version.rb
CHANGED
data/lib/natra.rb
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'extensions/string'
|
|
2
4
|
require 'natra/generators/app/app_generator'
|
|
3
5
|
require 'natra/generators/model/model_generator'
|
|
4
6
|
require 'natra/generators/scaffold/scaffold_generator'
|
|
5
7
|
require 'natra/generators/controller/controller_generator'
|
|
8
|
+
require 'natra/generators/service/service_generator'
|
|
6
9
|
require 'natra/version'
|
|
7
10
|
require 'natra/cli'
|
|
11
|
+
# Generates lightweight Sinatra API applications and their models, controllers and services.
|
|
8
12
|
module Natra; end
|
data/natra.gemspec
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
lib = File.expand_path('lib', __dir__)
|
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
5
|
require 'natra/version'
|
|
@@ -5,27 +7,28 @@ require 'natra/version'
|
|
|
5
7
|
Gem::Specification.new do |spec|
|
|
6
8
|
spec.name = 'natra'
|
|
7
9
|
spec.version = Natra::VERSION
|
|
8
|
-
spec.authors = ['
|
|
9
|
-
spec.email = ['
|
|
10
|
+
spec.authors = ['James Njuguna']
|
|
11
|
+
spec.email = ['jamesnjuguna0419@gmail.com']
|
|
10
12
|
|
|
11
|
-
spec.summary = 'Natra
|
|
12
|
-
spec.
|
|
13
|
-
spec.
|
|
13
|
+
spec.summary = 'Natra generates lightweight Sinatra applications'
|
|
14
|
+
spec.required_ruby_version = '>= 3.3'
|
|
15
|
+
spec.description = 'Natra generates lightweight Sinatra applications, ideal for containerized ' \
|
|
16
|
+
'API services with a PostgreSQL database.'
|
|
17
|
+
spec.homepage = 'https://github.com/jamesnjuguna0419/natra'
|
|
14
18
|
spec.license = 'MIT'
|
|
15
19
|
if spec.respond_to?(:metadata)
|
|
16
20
|
spec.metadata['homepage_uri'] = spec.homepage
|
|
17
|
-
spec.metadata['source_code_uri'] = 'https://github.com/
|
|
18
|
-
spec.metadata['changelog_uri'] = 'https://github.com/
|
|
21
|
+
spec.metadata['source_code_uri'] = 'https://github.com/jamesnjuguna0419/natra'
|
|
22
|
+
spec.metadata['changelog_uri'] = 'https://github.com/jamesnjuguna0419/natra/blob/master/CHANGELOG.md'
|
|
19
23
|
else
|
|
20
24
|
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
|
21
|
-
|
|
25
|
+
'public gem pushes.'
|
|
22
26
|
end
|
|
23
27
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
24
28
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
25
29
|
end
|
|
26
30
|
spec.executables = ['natra']
|
|
27
31
|
spec.require_paths = ['lib']
|
|
28
|
-
spec.
|
|
29
|
-
spec.
|
|
30
|
-
spec.add_runtime_dependency('thor', '~> 0.18')
|
|
32
|
+
spec.add_dependency('activesupport', '>= 6.1', '< 9')
|
|
33
|
+
spec.add_dependency('thor', '~> 1.3')
|
|
31
34
|
end
|
metadata
CHANGED
|
@@ -1,70 +1,65 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: natra
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
autorequire:
|
|
7
|
+
- James Njuguna
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-10-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: bundler
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '1.16'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '1.16'
|
|
27
13
|
- !ruby/object:Gem::Dependency
|
|
28
14
|
name: activesupport
|
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
|
30
16
|
requirements:
|
|
31
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '6.1'
|
|
20
|
+
- - "<"
|
|
32
21
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
22
|
+
version: '9'
|
|
34
23
|
type: :runtime
|
|
35
24
|
prerelease: false
|
|
36
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
26
|
requirements:
|
|
38
|
-
- - "
|
|
27
|
+
- - ">="
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '6.1'
|
|
30
|
+
- - "<"
|
|
39
31
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
32
|
+
version: '9'
|
|
41
33
|
- !ruby/object:Gem::Dependency
|
|
42
34
|
name: thor
|
|
43
35
|
requirement: !ruby/object:Gem::Requirement
|
|
44
36
|
requirements:
|
|
45
37
|
- - "~>"
|
|
46
38
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
39
|
+
version: '1.3'
|
|
48
40
|
type: :runtime
|
|
49
41
|
prerelease: false
|
|
50
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
43
|
requirements:
|
|
52
44
|
- - "~>"
|
|
53
45
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
55
|
-
description: Natra
|
|
56
|
-
|
|
46
|
+
version: '1.3'
|
|
47
|
+
description: Natra generates lightweight Sinatra applications, ideal for containerized
|
|
48
|
+
API services with a PostgreSQL database.
|
|
57
49
|
email:
|
|
58
|
-
-
|
|
50
|
+
- jamesnjuguna0419@gmail.com
|
|
59
51
|
executables:
|
|
60
52
|
- natra
|
|
61
53
|
extensions: []
|
|
62
54
|
extra_rdoc_files: []
|
|
63
55
|
files:
|
|
64
|
-
- ".
|
|
56
|
+
- ".github/dependabot.yml"
|
|
57
|
+
- ".github/workflows/ci.yml"
|
|
65
58
|
- ".gitignore"
|
|
66
59
|
- ".rspec"
|
|
67
|
-
- ".
|
|
60
|
+
- ".rubocop.yml"
|
|
61
|
+
- ".ruby-version"
|
|
62
|
+
- CHANGELOG.md
|
|
68
63
|
- CODE_OF_CONDUCT.md
|
|
69
64
|
- Gemfile
|
|
70
65
|
- Gemfile.lock
|
|
@@ -115,16 +110,18 @@ files:
|
|
|
115
110
|
- lib/natra/generators/model/model.rb.erb
|
|
116
111
|
- lib/natra/generators/model/model_generator.rb
|
|
117
112
|
- lib/natra/generators/scaffold/scaffold_generator.rb
|
|
113
|
+
- lib/natra/generators/service/service_generator.rb
|
|
114
|
+
- lib/natra/generators/service/template/service.rb.erb
|
|
118
115
|
- lib/natra/version.rb
|
|
119
116
|
- natra.gemspec
|
|
120
|
-
homepage: https://github.com/
|
|
117
|
+
homepage: https://github.com/jamesnjuguna0419/natra
|
|
121
118
|
licenses:
|
|
122
119
|
- MIT
|
|
123
120
|
metadata:
|
|
124
|
-
homepage_uri: https://github.com/
|
|
125
|
-
source_code_uri: https://github.com/
|
|
126
|
-
changelog_uri: https://github.com/
|
|
127
|
-
post_install_message:
|
|
121
|
+
homepage_uri: https://github.com/jamesnjuguna0419/natra
|
|
122
|
+
source_code_uri: https://github.com/jamesnjuguna0419/natra
|
|
123
|
+
changelog_uri: https://github.com/jamesnjuguna0419/natra/blob/master/CHANGELOG.md
|
|
124
|
+
post_install_message:
|
|
128
125
|
rdoc_options: []
|
|
129
126
|
require_paths:
|
|
130
127
|
- lib
|
|
@@ -132,16 +129,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
132
129
|
requirements:
|
|
133
130
|
- - ">="
|
|
134
131
|
- !ruby/object:Gem::Version
|
|
135
|
-
version: '
|
|
132
|
+
version: '3.3'
|
|
136
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
134
|
requirements:
|
|
138
135
|
- - ">="
|
|
139
136
|
- !ruby/object:Gem::Version
|
|
140
137
|
version: '0'
|
|
141
138
|
requirements: []
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
signing_key:
|
|
139
|
+
rubygems_version: 3.5.22
|
|
140
|
+
signing_key:
|
|
145
141
|
specification_version: 4
|
|
146
|
-
summary: Natra
|
|
142
|
+
summary: Natra generates lightweight Sinatra applications
|
|
147
143
|
test_files: []
|
data/.coveralls.yml
DELETED
data/.travis.yml
DELETED