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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +17 -0
  3. data/.github/workflows/ci.yml +50 -0
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +26 -0
  6. data/.ruby-version +1 -0
  7. data/CHANGELOG.md +58 -0
  8. data/CODE_OF_CONDUCT.md +0 -0
  9. data/Gemfile +12 -6
  10. data/Gemfile.lock +157 -116
  11. data/Guardfile +7 -5
  12. data/LICENSE.txt +0 -0
  13. data/README.md +138 -32
  14. data/Rakefile +4 -2
  15. data/bin/console +2 -0
  16. data/bin/natra +5 -3
  17. data/lib/extensions/string.rb +15 -11
  18. data/lib/natra/cli.rb +7 -2
  19. data/lib/natra/generators/app/app_generator.rb +32 -19
  20. data/lib/natra/generators/app/templates/Dockerfile +28 -10
  21. data/lib/natra/generators/app/templates/Gemfile +26 -20
  22. data/lib/natra/generators/app/templates/Guardfile +2 -0
  23. data/lib/natra/generators/app/templates/README.md +29 -30
  24. data/lib/natra/generators/app/templates/Rakefile +3 -2
  25. data/lib/natra/generators/app/templates/app/controllers/application_controller.rb +2 -0
  26. data/lib/natra/generators/app/templates/app/views/welcome.erb +2 -1
  27. data/lib/natra/generators/app/templates/bin/setup +4 -4
  28. data/lib/natra/generators/app/templates/config/database.yml +6 -6
  29. data/lib/natra/generators/app/templates/config/environment.rb +4 -5
  30. data/lib/natra/generators/app/templates/config/initializers/oj.rb +5 -4
  31. data/lib/natra/generators/app/templates/config/initializers/redis.rb +5 -3
  32. data/lib/natra/generators/app/templates/config/puma.rb +11 -5
  33. data/lib/natra/generators/app/templates/config.ru +2 -0
  34. data/lib/natra/generators/app/templates/db/migrate/add_extensions.rb +3 -1
  35. data/lib/natra/generators/app/templates/docker-compose.yml +3 -5
  36. data/lib/natra/generators/app/templates/rubocop.yml +8 -11
  37. data/lib/natra/generators/app/templates/spec/application_controller_spec.rb +2 -0
  38. data/lib/natra/generators/app/templates/spec/spec_helper.rb +10 -9
  39. data/lib/natra/generators/controller/controller_generator.rb +4 -0
  40. data/lib/natra/generators/model/migration.rb.erb +1 -1
  41. data/lib/natra/generators/model/model_generator.rb +8 -2
  42. data/lib/natra/generators/scaffold/scaffold_generator.rb +3 -0
  43. data/lib/natra/generators/service/service_generator.rb +31 -0
  44. data/lib/natra/generators/service/template/service.rb.erb +11 -0
  45. data/lib/natra/version.rb +3 -1
  46. data/lib/natra.rb +4 -0
  47. data/natra.gemspec +14 -11
  48. metadata +35 -39
  49. data/.coveralls.yml +0 -2
  50. data/.travis.yml +0 -3
@@ -1,7 +1,7 @@
1
- #! /usr/bin/env bash
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['DEV_DATABASE']
5
- pool: 2
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['PROD_DATABASE']
10
- pool: 2
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['TEST_DATABASE']
15
- pool: 2
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['RACK_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
- require 'rack-timeout'
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,5 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Oj.default_options = {
2
- class_cache: true,
3
- mode: :strict
4
- }
5
-
4
+ class_cache: true,
5
+ mode: :strict
6
+ }
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yaml'
2
4
 
3
5
  # Redis Configuration
4
- unless ENV['RACK_ENV'] == 'test'
5
- redis_settings = YAML.load_file('config/redis.yml')
6
- REDIS = Redis.new(redis_settings[ENV['RACK_ENV']])
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
- threads_count = Integer(ENV['PUMA_MAX_THREADS'] || 5)
2
- port = Integer(ENV['PORT'] || 9292)
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
- preload_app!
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['SINATRA_ENV'] || 'development'
15
+ environment ENV.fetch('RACK_ENV', 'development')
10
16
 
11
17
  bind "tcp://0.0.0.0:#{port}"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require './config/environment'
2
4
  use Rack::Timeout, service_timeout: 5
3
5
  ScoutApm::Rack.install!
@@ -1,4 +1,6 @@
1
- class AddExtensions < ActiveRecord::Migration[5.2]
1
+ # frozen_string_literal: true
2
+
3
+ class AddExtensions < ActiveRecord::Migration[8.1]
2
4
  def change
3
5
  enable_extension 'hstore'
4
6
  enable_extension 'uuid-ossp'
@@ -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
- links:
11
+ depends_on:
14
12
  - db
15
13
  env_file: secrets.env
16
14
  db:
17
- image: postgres:10-alpine
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.5
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
- Encoding:
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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'spec_helper'
2
4
 
3
5
  def app
@@ -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
- require 'coveralls'
7
- Coveralls.wear!
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.run_all_when_everything_filtered = true
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 = 'default'
30
+ config.order = :defined
30
31
  end
31
32
 
32
33
  def app
33
- Rack::Builder.parse_file('config.ru').first
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,4 +1,4 @@
1
- class <%= migration_class_name %> < ActiveRecord::Migration
1
+ class <%= migration_class_name %> < ActiveRecord::Migration[8.1]
2
2
  def change
3
3
  create_table :<%= table_name %> ,id: :uuid do |t|
4
4
  <% attributes.each do |attribute| -%>
@@ -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, using the singular '#{model_name}' instead."
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
- if duplicate = migration_files.find { |file| file.include?(migration_name) }
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
@@ -0,0 +1,11 @@
1
+ class <%= class_name %>
2
+ attr_reader :args
3
+
4
+ def initialize(*args)
5
+ @args = args
6
+ end
7
+
8
+ def call
9
+ args
10
+ end
11
+ end
data/lib/natra/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Natra
2
- VERSION = '0.0.7'.freeze
4
+ VERSION = '2.0.0'
3
5
  end
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 = ['Thiru Njuguna']
9
- spec.email = ['thirunjuguna@outlook.com']
10
+ spec.authors = ['James Njuguna']
11
+ spec.email = ['jamesnjuguna0419@gmail.com']
10
12
 
11
- spec.summary = 'Natra generate a light weight sinatra application'
12
- spec.description = 'Natra generate a light weight sinatra application.It\'s ideal for building containerized micro-services with postgres database'
13
- spec.homepage = 'https://github.com/thirunjuguna/natra'
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/thirunjuguna/natra'
18
- spec.metadata['changelog_uri'] = 'https://github.com/thirunjuguna/natra'
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
- 'public gem pushes.'
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.add_development_dependency 'bundler', '~> 1.16'
29
- spec.add_runtime_dependency('activesupport', '~> 5.0')
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.7
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Thiru Njuguna
8
- autorequire:
7
+ - James Njuguna
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-07 00:00:00.000000000 Z
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: '5.0'
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: '5.0'
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: '0.18'
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: '0.18'
55
- description: Natra generate a light weight sinatra application.It's ideal for building
56
- containerized micro-services with postgres database
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
- - thirunjuguna@outlook.com
50
+ - jamesnjuguna0419@gmail.com
59
51
  executables:
60
52
  - natra
61
53
  extensions: []
62
54
  extra_rdoc_files: []
63
55
  files:
64
- - ".coveralls.yml"
56
+ - ".github/dependabot.yml"
57
+ - ".github/workflows/ci.yml"
65
58
  - ".gitignore"
66
59
  - ".rspec"
67
- - ".travis.yml"
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/thirunjuguna/natra
117
+ homepage: https://github.com/jamesnjuguna0419/natra
121
118
  licenses:
122
119
  - MIT
123
120
  metadata:
124
- homepage_uri: https://github.com/thirunjuguna/natra
125
- source_code_uri: https://github.com/thirunjuguna/natra
126
- changelog_uri: https://github.com/thirunjuguna/natra
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: '0'
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
- rubyforge_project:
143
- rubygems_version: 2.7.7
144
- signing_key:
139
+ rubygems_version: 3.5.22
140
+ signing_key:
145
141
  specification_version: 4
146
- summary: Natra generate a light weight sinatra application
142
+ summary: Natra generates lightweight Sinatra applications
147
143
  test_files: []
data/.coveralls.yml DELETED
@@ -1,2 +0,0 @@
1
- service_name: travis-pro
2
- repo_token: 8OEMw8ExmIqo7cLyL2qAlvBuxZO1N9SjO
data/.travis.yml DELETED
@@ -1,3 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.5.3