natra 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76b4a8e352e608faa8f15689e30b24773d3396443f9b1ec9ed41aeb3526199ea
4
- data.tar.gz: f631d842f44216ae67644fce16c566a5ae5bfd4dfbc9e4ac086f98597663f571
3
+ metadata.gz: a6e15fd5f640c81e1bd7ba2310d12953882a4abed4bfc5217e8043f03dd7700a
4
+ data.tar.gz: add394a5664c58702ab440b435711c297b7e0c3e16ec3c838cf5155eccad87f6
5
5
  SHA512:
6
- metadata.gz: c24ef188a704d0c8ddb0153b3326a61977ceedb0fa661daddcdd1820121492d826a5ecd8684166728f22ab0437c5d1ef1dc3964320b18a6af96c3a4ef3cd9c36
7
- data.tar.gz: b363163c823c3f7d27df84fa6950f6bde67b265ceb0c58fea9496d445cc2eec6559828bb046a1eb572ba1c8357394528d0a609fe42745648c31a3e5d9698ddc7
6
+ metadata.gz: 6c037f2da480e504be84dc1092f09e784ac1674985fb339037e3c6f8157adcccb9e5a076225d3f8c86f9e699a3e64cfe7fd1affa34791397f26a4268664dc144
7
+ data.tar.gz: 986be7f23d02cbfbdbc5ee2b8a1fc0e825ba6d4cec8ff9eff72913ebe2f5021ccd33972396df173bf0228811a691f0a28860f0618fb2a2620abe3395a3d6cba3
data/.travis.yml CHANGED
@@ -1,4 +1,3 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.5.3
4
- # before_install: gem install bundler
3
+ - 2.5.3
data/Gemfile CHANGED
@@ -1,14 +1,12 @@
1
1
  source 'https://rubygems.org/'
2
-
3
2
  gemspec
4
-
5
3
  gem 'active_model_serializers', '~> 0.10.0.rc1'
6
- gem 'coveralls', '~> 0'
4
+ gem 'coveralls'
7
5
  group :development do
8
- gem "rake", '~> 0'
9
- gem "pry"
6
+ gem 'rake'
7
+ gem 'pry'
10
8
  gem 'guard'
11
9
  gem 'rspec'
12
10
  gem 'guard-rubocop'
13
11
  gem 'guard-rspec', require: false
14
- end
12
+ end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- natra (0.0.3)
4
+ natra (0.0.4)
5
5
  activesupport (~> 5.0)
6
6
  thor (~> 0.18)
7
7
 
@@ -91,7 +91,7 @@ GEM
91
91
  nenv (~> 0.1)
92
92
  shellany (~> 0.0)
93
93
  parallel (1.12.1)
94
- parser (2.5.1.2)
94
+ parser (2.5.3.0)
95
95
  ast (~> 2.4.0)
96
96
  powerpack (0.1.2)
97
97
  pry (0.11.3)
@@ -106,7 +106,7 @@ GEM
106
106
  rails-html-sanitizer (1.0.4)
107
107
  loofah (~> 2.2, >= 2.2.2)
108
108
  rainbow (3.0.0)
109
- rake (0.9.6)
109
+ rake (12.3.1)
110
110
  rb-fsevent (0.10.3)
111
111
  rb-inotify (0.9.10)
112
112
  ffi (>= 0.5.0, < 2)
@@ -154,13 +154,13 @@ PLATFORMS
154
154
  DEPENDENCIES
155
155
  active_model_serializers (~> 0.10.0.rc1)
156
156
  bundler (~> 1.16)
157
- coveralls (~> 0)
157
+ coveralls
158
158
  guard
159
159
  guard-rspec
160
160
  guard-rubocop
161
161
  natra!
162
162
  pry
163
- rake (~> 0)
163
+ rake
164
164
  rspec
165
165
 
166
166
  BUNDLED WITH
data/Guardfile CHANGED
@@ -1,29 +1,3 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- ## Uncomment and set this to only include directories you want to watch
5
- # directories %w(app lib config test spec features) \
6
- # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
-
8
- ## Note: if you are using the `directories` clause above and you are not
9
- ## watching the project directory ('.'), then you will want to move
10
- ## the Guardfile to a watched dir and symlink it back, e.g.
11
- #
12
- # $ mkdir config
13
- # $ mv Guardfile config/
14
- # $ ln -s config/Guardfile .
15
- #
16
- # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
-
18
- # Note: The cmd option is now required due to the increasing number of ways
19
- # rspec may be run, below are examples of the most common uses.
20
- # * bundler: 'bundle exec rspec'
21
- # * bundler binstubs: 'bin/rspec'
22
- # * spring: 'bin/rspec' (This will use spring if running and you have
23
- # installed the spring binstubs per the docs)
24
- # * zeus: 'zeus rspec' (requires the server to be started separately)
25
- # * 'just' rspec: 'rspec'
26
-
27
1
  guard :rspec, cmd: "bundle exec rspec" do
28
2
  require "guard/rspec/dsl"
29
3
  dsl = Guard::RSpec::Dsl.new(self)
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # Natra
2
2
  [![Coverage Status](https://coveralls.io/repos/github/thirunjuguna/natra/badge.svg?branch=master)](https://coveralls.io/github/thirunjuguna/natra?branch=master)
3
- [![Build Status](https://travis-ci.com/thirunjuguna/natra.svg?branch=master)](https://travis-ci.com/thirunjuguna/natra)
4
-
3
+ [![Build Status](https://travis-ci.com/thirunjuguna/natra.svg?branch=master)](https://travis-ci.com/thirunjuguna/natra)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/e76bbd27a1c4cb8911ae/maintainability)](https://codeclimate.com/github/thirunjuguna/natra/maintainability)
5
+ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/450f5da9d33d4adca897563ec759c1b2)](https://www.codacy.com/app/thirunjuguna/natra?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=thirunjuguna/natra&amp;utm_campaign=Badge_Grade)
5
6
 
6
7
  ## Installation
7
8
 
@@ -49,7 +50,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
49
50
 
50
51
  ## Contributing
51
52
 
52
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/natra. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
53
+ Bug reports and pull requests are welcome on GitHub at https://github.com/thirunjuguna/natra. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
53
54
 
54
55
  ## License
55
56
 
@@ -57,4 +58,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
57
58
 
58
59
  ## Code of Conduct
59
60
 
60
- Everyone interacting in the Natra project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/natra/blob/master/CODE_OF_CONDUCT.md).
61
+ Everyone interacting in the Natra project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/thirunjuguna/natra/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -2,5 +2,4 @@ require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec
5
+ task default: :spec
data/bin/console CHANGED
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "natra"
5
- require "pry"
2
+ require 'bundler/setup'
3
+ require 'natra'
4
+ require 'pry'
6
5
  Pry.start
data/bin/natra CHANGED
@@ -1,7 +1,4 @@
1
1
  #!/usr/bin/env bash
2
-
3
2
  $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
4
-
5
3
  require "natra"
6
-
7
4
  Natra::CLI.start
data/bin/setup CHANGED
@@ -2,5 +2,4 @@
2
2
  set -euo pipefail
3
3
  IFS=$'\n\t'
4
4
  set -vx
5
-
6
5
  bundle install
@@ -4,10 +4,7 @@ module Natra
4
4
  def camel_case
5
5
  return self.gsub(/^./) { |l| l.capitalize } if !match(/[_-]/)
6
6
  altered_self = self.downcase.capitalize
7
- altered_self.scan(/[_-][a-zA-Z]/).each do |match|
8
- altered_self.gsub!(match, match[1].upcase)
9
- end
10
-
7
+ altered_self.scan(/[_-][a-zA-Z]/).each { |match| altered_self.gsub!(match, match[1].upcase) }
11
8
  altered_self
12
9
  end
13
10
 
data/lib/natra.rb CHANGED
@@ -1,9 +1,8 @@
1
- require "extensions/string"
2
- require "natra/generators/app/app_generator"
3
- require "natra/generators/model/model_generator"
4
- require "natra/generators/scaffold/scaffold_generator"
5
- require "natra/generators/controller/controller_generator"
6
- require "natra/version"
7
- require "natra/cli"
8
-
9
- module Natra; end
1
+ require 'extensions/string'
2
+ require 'natra/generators/app/app_generator'
3
+ require 'natra/generators/model/model_generator'
4
+ require 'natra/generators/scaffold/scaffold_generator'
5
+ require 'natra/generators/controller/controller_generator'
6
+ require 'natra/version'
7
+ require 'natra/cli'
8
+ module Natra; end
data/lib/natra/cli.rb CHANGED
@@ -3,11 +3,11 @@ module Natra
3
3
  class CLI < Thor
4
4
  desc '-v', 'Show Natra version number'
5
5
  map %w[-v --version] => :version
6
- # USAGE: Natra -v
6
+
7
7
  def version
8
8
  say "Natra #{Natra::VERSION}"
9
9
  end
10
- # register(class_name, subcommand_alias, usage_list_string, description_string)
10
+
11
11
  register Natra::Generators::AppGenerator, 'new', 'new APP_PATH', 'Creates a new Sinatra application'
12
12
  register Natra::Generators::ModelGenerator, 'model', 'model NAME', 'Generate a model'
13
13
  register Natra::Generators::ControllerGenerator, 'controller', 'controller NAME', 'Generate a controller'
@@ -1,126 +1,127 @@
1
- # encoding: UTF-8
2
- require "thor/group"
3
-
1
+ require 'thor/group'
4
2
  module Natra
5
3
  module Generators
6
4
  class AppGenerator < Thor::Group
7
5
  include Thor::Actions
6
+ desc 'Creates a new Sinatra application'
7
+ argument :name, type: :string, desc: 'The name of the new application'
8
+ class_option :capistrano, type: :boolean, desc: 'Include Capistrano configuration'
9
+ class_option :redis, type: :boolean, desc: 'Include Redis configuration'
10
+ class_option :rvm, type: :boolean, desc: 'Create .ruby-version (ruby-2.1.0) and .ruby-gemset'
11
+ class_option :bundle, type: :boolean, desc: 'Run bundle after generating the app'
12
+ class_option :git, type: :boolean, desc: 'Initialize a Git repository'
8
13
 
9
- desc "Creates a new Sinatra application"
10
- argument :name, :type => :string, :desc => "The name of the new application"
11
- class_option :capistrano, :type => :boolean, :desc => "Include Capistrano configuration"
12
- class_option :redis, :type => :boolean, :desc => "Include Redis configuration"
13
- class_option :rvm, :type => :boolean, :desc => "Create .ruby-version (ruby-2.1.0) and .ruby-gemset"
14
- class_option :bundle, :type => :boolean, :desc => "Run bundle after generating the app"
15
- class_option :git, :type => :boolean, :desc => "Initialize a Git repository"
16
-
17
- # Creates instance variables from options passed to natra.
18
14
  def setup
19
15
  @app_path = name.directory_name
20
16
  @name = name.file_name
21
-
22
- options.each do |key, value|
23
- instance_variable_set "@#{key.to_s}".to_sym, value
24
- end
17
+ options.each {|key, value| instance_variable_set "@#{key}".to_sym, value}
25
18
  end
26
19
 
27
20
  def self.source_root
28
- File.expand_path(File.join(File.dirname(__FILE__), "templates"))
21
+ File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
29
22
  end
30
23
 
31
- # Create empty directories
32
24
  def create_empty_directories
33
- %w{config/initializers lib spec}.each do |dir|
34
- empty_directory File.join(@app_path, dir)
35
- end
36
-
25
+ %w[config/initializers lib spec].each {|dir| empty_directory File.join(@app_path, dir)}
37
26
  empty_directory File.join(@app_path, 'db/migrate')
27
+ create_file File.join(@app_path, 'lib', '.keep')
28
+ template 'config/environment.rb', File.join(@app_path, 'config/environment.rb')
29
+ end
30
+
31
+ def create_seeds_file
32
+ create_file File.join(@app_path, 'db', 'seeds.rb')
33
+ end
38
34
 
39
- create_file File.join(@app_path, "lib", ".gitkeep")
40
- template "config/environment.rb", File.join(@app_path, "config/environment.rb")
35
+ def initialize_db
36
+ copy_file('bin/setup', File.join(@app_path, 'bin/setup'))
37
+ end
38
+
39
+ def uuid_setup
40
+ template 'db/migrate/add_extensions.rb', File.join(@app_path, "db/migrate/#{Time.now.strftime('%Y%m%d')}0000_add_extensions.rb")
41
41
  end
42
42
 
43
43
  def create_public_directory
44
- template "public/favicon.ico", File.join(@app_path, "public/favicon.ico")
44
+ template 'public/favicon.ico', File.join(@app_path, 'public/favicon.ico')
45
45
  end
46
46
 
47
47
  def create_app_directory
48
- %w{app/controllers app/views app/models}.each do |dir|
49
- directory dir, File.join(@app_path, dir)
50
- end
48
+ %w[app/controllers app/views app/models].each {|dir| directory dir, File.join(@app_path, dir)}
51
49
  end
52
50
 
53
51
  def create_app_spec
54
- template "spec/application_controller_spec.rb", File.join(@app_path, "spec/application_controller_spec.rb")
52
+ template 'spec/application_controller_spec.rb', File.join(@app_path, 'spec/application_controller_spec.rb')
55
53
  end
56
54
 
57
55
  def create_spec_helper
58
- template "spec/spec_helper.rb", File.join(@app_path, "spec/spec_helper.rb")
56
+ template 'spec/spec_helper.rb', File.join(@app_path, 'spec/spec_helper.rb')
59
57
  end
60
58
 
61
59
  def create_config
62
- template "config.ru", File.join(@app_path, "config.ru")
60
+ template 'config.ru', File.join(@app_path, 'config.ru')
63
61
  end
64
62
 
65
63
  def create_gemfile
66
- template "Gemfile", File.join(@app_path, "Gemfile")
64
+ template 'Gemfile', File.join(@app_path, 'Gemfile')
67
65
  end
68
66
 
69
67
  def create_rakefile
70
- template "Rakefile", File.join(@app_path, "Rakefile")
68
+ template 'Rakefile', File.join(@app_path, 'Rakefile')
71
69
  end
72
70
 
73
71
  def create_readme
74
- template("README.md", File.join(@app_path, "README.md"))
72
+ template('README.md', File.join(@app_path, 'README.md'))
75
73
  end
76
74
 
77
75
  def create_db_config
78
- template("config/db.yml", File.join(@app_path, "config/db.yml"))
76
+ template('config/db.yml', File.join(@app_path, 'config/db.yml'))
79
77
  end
80
78
 
81
79
  def create_database_initializer
82
- template("config/initializers/database.rb", File.join(@app_path, "config/initializers/database.rb"))
80
+ template('config/initializers/database.rb', File.join(@app_path, 'config/initializers/database.rb'))
83
81
  end
84
82
 
85
83
  def create_redis_config
86
- copy_file("config/redis.yml", File.join(@app_path, "config/redis.yml")) if @redis
84
+ copy_file('config/redis.yml', File.join(@app_path, 'config/redis.yml')) if @redis
87
85
  end
88
86
 
89
87
  def create_redis_initializer
90
- template("config/initializers/redis.rb", File.join(@app_path, "config/initializers/redis.rb")) if @redis
88
+ template('config/initializers/redis.rb', File.join(@app_path, 'config/initializers/redis.rb')) if @redis
91
89
  end
92
90
 
93
91
  def create_gitignore
94
- copy_file "gitignore", File.join(@app_path, '.gitignore')
92
+ copy_file 'gitignore', File.join(@app_path, '.gitignore')
95
93
  end
94
+
96
95
  def create_rspec
97
96
  copy_file 'rspec', File.join(@app_path, '.rspec')
98
97
  end
98
+
99
99
  def create_rubocop
100
- copy_file 'rubocop.yml', File.join(@app_path, '.rubocop.yml')
100
+ copy_file 'rubocop.yml', File.join(@app_path, '.rubocop.yml')
101
101
  end
102
+
102
103
  def create_docker
103
104
  copy_file 'Dockerfile', File.join(@app_path, 'Dockerfile')
104
105
  end
106
+
105
107
  def create_docker_compose
106
- template('docker-compose.yml', File.join(@app_path, "docker-compose.yml"))
108
+ template('docker-compose.yml', File.join(@app_path, 'docker-compose.yml'))
107
109
  end
110
+
108
111
  def create_guardfile
109
- copy_file 'Guardfile',File.join(@app_path, 'Guardfile')
112
+ copy_file 'Guardfile', File.join(@app_path, 'Guardfile')
110
113
  end
114
+
111
115
  def create_spec_support
112
- create_file File.join(@app_path, "spec/support/", ".keep")
116
+ create_file File.join(@app_path, 'spec/support/', '.keep')
113
117
  end
118
+
114
119
  def create_secrets
115
- template('secrets.env',File.join(@app_path, "secrets.env"))
120
+ template('secrets.env', File.join(@app_path, 'secrets.env'))
116
121
  end
117
-
122
+
118
123
  def create_capistrano_config
119
- if @capistrano
120
- inside(@app_path) do
121
- run('cap install')
122
- end
123
- end
124
+ inside(@app_path) {run('cap install')} if @capistrano
124
125
  end
125
126
 
126
127
  def create_rvm_gemset
@@ -134,15 +135,11 @@ module Natra
134
135
  end
135
136
 
136
137
  def initialize_git_repo
137
- inside(@app_path) do
138
- run('git init .') if @git
139
- end
138
+ inside(@app_path) {run('git init .') if @git}
140
139
  end
141
140
 
142
141
  def install_dependencies
143
- inside(@app_path) do
144
- run('bundle') if @bundle
145
- end
142
+ inside(@app_path) {run('bundle') if @bundle}
146
143
  end
147
144
  end
148
145
  end
@@ -6,7 +6,6 @@ gem 'sinatra-activerecord', :require => 'sinatra/activerecord'
6
6
  gem 'rake'
7
7
  gem 'rack-timeout'
8
8
  gem 'require_all'
9
- gem 'sqlite3'
10
9
  gem 'thin'
11
10
  gem 'shotgun'
12
11
  gem 'scout_apm'
@@ -0,0 +1,7 @@
1
+ class AddExtensions < ActiveRecord::Migration
2
+ def change
3
+ enable_extension 'hstore'
4
+ enable_extension 'uuid-ossp'
5
+ enable_extension 'pgcrypto'
6
+ end
7
+ end
@@ -1,17 +1,15 @@
1
- require "thor/group"
2
- require "active_support/inflector"
3
-
1
+ require 'thor/group'
2
+ require 'active_support/inflector'
4
3
  module Natra
5
4
  module Generators
6
5
  class ControllerGenerator < Thor::Group
7
6
  include Thor::Actions
8
7
  attr_reader :controller_name, :class_name, :file_name
9
8
 
10
- desc "Generate an Controller with associated views"
11
- argument :name, type: :string, desc: "Name of the controller"
9
+ desc 'Generate an Controller with associated views'
10
+ argument :name, type: :string, desc: 'Name of the controller'
12
11
 
13
- # --no-views make views optional
14
- class_option :views, type: :boolean, default: true, desc: "Generate views for controller"
12
+ class_option :views, type: :boolean, default: true, desc: 'Generate views for controller'
15
13
 
16
14
  def self.source_root
17
15
  File.dirname(__FILE__)
@@ -24,13 +22,14 @@ module Natra
24
22
  end
25
23
 
26
24
  def create_controller
27
- template "templates/controller.rb.erb", File.join("app/controllers", "#{file_name}.rb")
28
- insert_into_file "config.ru", "use #{class_name}\n", after: "run ApplicationController\n"
25
+ template 'templates/controller.rb.erb', File.join('app/controllers', "#{file_name}.rb")
26
+ insert_into_file 'config.ru', "use #{class_name}\n", after: "run ApplicationController\n"
29
27
  end
30
28
 
31
29
  def create_views
32
30
  return unless options[:views]
33
- directory "templates/views", File.join("app/views", "#{controller_name}")
31
+
32
+ directory 'templates/views', File.join('app/views', controller_name.to_s)
34
33
  end
35
34
  end
36
35
  end
@@ -1,6 +1,6 @@
1
1
  class <%= migration_class_name %> < ActiveRecord::Migration
2
2
  def change
3
- create_table :<%= table_name %> do |t|
3
+ create_table :<%= table_name %> ,id: :uuid do |t|
4
4
  <% attributes.each do |attribute| -%>
5
5
  t.<%= attribute[:type] %> :<%= attribute[:name] %>
6
6
  <% end %>
@@ -1,18 +1,16 @@
1
- require "thor/group"
2
- require "active_support/inflector"
3
-
1
+ require 'thor/group'
2
+ require 'active_support/inflector'
4
3
  module Natra
5
4
  module Generators
6
5
  class ModelGenerator < Thor::Group
7
6
  include Thor::Actions
8
7
  attr_reader :file_name, :class_name, :model_name, :migration_name, :migration_class_name, :table_name
9
8
 
10
- desc "Generate an ActiveRecord model"
11
- argument :name, type: :string, desc: "Name of the model"
12
- argument :attributes, type: :array, default: [], banner: "field:type field:type"
9
+ desc 'Generate an ActiveRecord model'
10
+ argument :name, type: :string, desc: 'Name of the model'
11
+ argument :attributes, type: :array, default: [], banner: 'field:type field:type'
13
12
 
14
- # --no-migration make migrations optional
15
- class_option :migration, type: :boolean, default: true, desc: "Generate migration for model"
13
+ class_option :migration, type: :boolean, default: true, desc: 'Generate migration for model'
16
14
 
17
15
  def self.source_root
18
16
  File.dirname(__FILE__)
@@ -27,8 +25,8 @@ module Natra
27
25
  @migration_class_name = migration_name.camel_case
28
26
 
29
27
  attributes.map! do |attribute|
30
- field = attribute.split(":")
31
- { name: field[0], type: field[1] || "string" }
28
+ field = attribute.split(':')
29
+ { name: field[0], type: field[1] || 'string' }
32
30
  end
33
31
  end
34
32
 
@@ -37,21 +35,21 @@ module Natra
37
35
  say "[WARNING] The model name '#{name}' was recognized as a plural, using the singular '#{model_name}' instead."
38
36
  end
39
37
 
40
- template "model.rb.erb", File.join("app/models", "#{file_name}.rb")
38
+ template 'model.rb.erb', File.join('app/models', "#{file_name}.rb")
41
39
  end
42
40
 
43
41
  def create_migration
44
42
  return unless options[:migration]
45
43
 
46
- migration_files = Dir.entries("db/migrate").select { |path| !File.directory? path }
44
+ migration_files = Dir.entries('db/migrate').reject { |path| File.directory? path }
47
45
 
48
46
  if duplicate = migration_files.find { |file| file.include?(migration_name) }
49
47
  say_status :identical, "db/migrate/#{duplicate}", :blue
50
48
  else
51
- version = Time.now.utc.strftime("%Y%m%d%H%M%S")
49
+ version = Time.now.utc.strftime('%Y%m%d%H%M%S')
52
50
  migration_file_name = "#{version}_#{migration_name}.rb"
53
51
 
54
- template "migration.rb.erb", File.join("db/migrate", migration_file_name)
52
+ template 'migration.rb.erb', File.join('db/migrate', migration_file_name)
55
53
  end
56
54
  end
57
55
  end
@@ -1,14 +1,13 @@
1
1
  require "thor/group"
2
2
  require 'active_support/inflector'
3
-
4
3
  module Natra
5
4
  module Generators
6
5
  class ScaffoldGenerator < Thor::Group
7
6
  include Thor::Actions
8
7
 
9
- desc "Generate an ActiveRecord model with it's associated views and controllers"
10
- argument :name, type: :string, desc: "Name of the model"
11
- argument :attributes, type: :array, default: [], banner: "field:type field:type"
8
+ desc 'Generate an ActiveRecord model with it\'s associated views and controllers'
9
+ argument :name, type: :string, desc: 'Name of the model'
10
+ argument :attributes, type: :array, default: [], banner: 'field:type field:type'
12
11
 
13
12
  def create_model
14
13
  ModelGenerator.new([name, attributes]).invoke_all
data/lib/natra/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Natra
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '0.0.4'.freeze
3
3
  end
data/natra.gemspec CHANGED
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  lib = File.expand_path('lib', __dir__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'natra/version'
@@ -8,15 +6,12 @@ Gem::Specification.new do |spec|
8
6
  spec.name = 'natra'
9
7
  spec.version = Natra::VERSION
10
8
  spec.authors = ['Thiru Njuguna']
11
- spec.email = ['uriht@outlook.com']
9
+ spec.email = ['thirunjuguna@outlook.com']
12
10
 
13
11
  spec.summary = 'Natra generate a light weight sinatra application'
14
- spec.description = 'Natra generate a light weight sinatra application.It is ideal for builing micro-services'
12
+ spec.description = 'Natra generate a light weight sinatra application.It\'s ideal for building micro-services'
15
13
  spec.homepage = 'https://github.com/thirunjuguna/natra'
16
14
  spec.license = 'MIT'
17
-
18
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
19
- # to allow pushing to a single host or delete this section to allow pushing to any host.
20
15
  if spec.respond_to?(:metadata)
21
16
  spec.metadata['homepage_uri'] = spec.homepage
22
17
  spec.metadata['source_code_uri'] = 'https://github.com/thirunjuguna/natra'
@@ -25,17 +20,12 @@ Gem::Specification.new do |spec|
25
20
  raise 'RubyGems 2.0 or newer is required to protect against ' \
26
21
  'public gem pushes.'
27
22
  end
28
-
29
- # Specify which files should be added to the gem when it is released.
30
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
31
23
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
32
24
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
33
25
  end
34
26
  spec.executables = ['natra']
35
27
  spec.require_paths = ['lib']
36
28
  spec.add_development_dependency 'bundler', '~> 1.16'
37
- spec.add_development_dependency 'rake', '~> 0'
38
- spec.add_development_dependency 'rspec', '~> 3.0'
39
29
  spec.add_runtime_dependency('activesupport', '~> 5.0')
40
30
  spec.add_runtime_dependency('thor', '~> 0.18')
41
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: natra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiru Njuguna
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-28 00:00:00.000000000 Z
11
+ date: 2018-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -24,34 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.16'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.0'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: activesupport
57
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,10 +52,10 @@ dependencies:
80
52
  - - "~>"
81
53
  - !ruby/object:Gem::Version
82
54
  version: '0.18'
83
- description: Natra generate a light weight sinatra application.It is ideal for builing
55
+ description: Natra generate a light weight sinatra application.It's ideal for building
84
56
  micro-services
85
57
  email:
86
- - uriht@outlook.com
58
+ - thirunjuguna@outlook.com
87
59
  executables:
88
60
  - natra
89
61
  extensions: []
@@ -126,13 +98,10 @@ files:
126
98
  - lib/natra/generators/app/templates/config/initializers/redis.rb
127
99
  - lib/natra/generators/app/templates/config/puma.rb
128
100
  - lib/natra/generators/app/templates/config/redis.yml
101
+ - lib/natra/generators/app/templates/db/migrate/add_extensions.rb
129
102
  - lib/natra/generators/app/templates/docker-compose.yml
130
103
  - lib/natra/generators/app/templates/gitignore
131
104
  - lib/natra/generators/app/templates/public/favicon.ico
132
- - lib/natra/generators/app/templates/public/images/.gitkeep
133
- - lib/natra/generators/app/templates/public/images/corneal-small.png
134
- - lib/natra/generators/app/templates/public/javascripts/.gitkeep
135
- - lib/natra/generators/app/templates/public/stylesheets/main.css
136
105
  - lib/natra/generators/app/templates/rspec
137
106
  - lib/natra/generators/app/templates/rubocop.yml
138
107
  - lib/natra/generators/app/templates/secrets.env
@@ -1,115 +0,0 @@
1
- @media screen {
2
- /* --- Reset Styles --- */
3
- * {
4
- list-style: none;
5
- margin: 0;
6
- padding: 0;
7
- }
8
-
9
- html, body {
10
- height: 100%;
11
- width: 100%;
12
- }
13
-
14
- /* --- Welcome Page Styles --- */
15
- body {
16
- background-color: lightblue;
17
- color: #333;
18
- font-family: Sans-Serif;
19
- line-height: 18px;
20
- }
21
-
22
- .wrapper {
23
- background: #fff;
24
- -moz-box-shadow: 0 0 10px rgba(0,0,0,.3);
25
- -webkit-box-shadow: 0 0 10px rgba(0,0,0,.3);
26
- box-shadow: 0 0 10px rgba(0,0,0,.3);
27
- margin: 16px auto;
28
- max-width: 960px;
29
- padding: 2.25%; /* 18px / 800px */
30
- width: 85%;
31
- }
32
-
33
- h1 {
34
- font-size: 36px;
35
- line-height: 54px;
36
- }
37
-
38
- h2 {
39
- border-bottom: 2px solid #ccc;
40
- font-size: 24px;
41
- line-height: 36px;
42
- margin-bottom: 16px;
43
- }
44
-
45
- h3 {
46
- font-size: 18px;
47
- line-height: 36px;
48
- }
49
-
50
- p {
51
- margin-bottom: 18px;
52
- }
53
-
54
- .main {
55
- overflow: hidden;
56
- }
57
-
58
- .content {
59
- float: left;
60
- width: 60%; /* 480px / 800px */
61
- }
62
-
63
- .sidebar {
64
- background: #eee;
65
- border: 1px solid #ccc;
66
- float: right;
67
- padding: 2.08333333333%; /* 5px / 240px */
68
- width: 30%; /* 240px / 800px */
69
- }
70
-
71
- .sidebar ul {
72
- font-size: 14px;
73
- }
74
-
75
- .branding {
76
- clear: both;
77
- }
78
-
79
- footer.branding {
80
- border-top: 2px solid #ccc;
81
- margin-top: 20px;
82
- padding-top: 20px;
83
- }
84
- }
85
-
86
- @media screen and (max-width: 600px) {
87
- .wrapper {
88
- -moz-box-shadow: none;
89
- -webkit-box-shadow: none;
90
- box-shadow: none;
91
- width: auto;
92
- }
93
-
94
- .content, .sidebar {
95
- float: none;
96
- width: 100%;
97
- }
98
-
99
- .sidebar {
100
- background: transparent;
101
- border: none;
102
- border-top: 2px solid #ccc;
103
- padding: 0;
104
- }
105
-
106
- h1 {
107
- font-size: 24px;
108
- line-height: 36px;
109
- }
110
-
111
- h2 {
112
- font-size: 18px;
113
- line-height: 24px;
114
- }
115
- }