rails_app_generator 0.1.9 → 0.1.10

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: 96c2c0a83f21efd278ae574b7161c8b3d4522880f3b01b37d43b783ede17d7ec
4
- data.tar.gz: 54c7745878991f2bbc49e894a205582c90dd7bda79d6b3d7de811a48622beaf5
3
+ metadata.gz: 6ec3cdb2cbf9342e0d11d2564095d01beec1cdf4578c2b935463f1d1948d05c6
4
+ data.tar.gz: 2070fd5c3e20f44048a8866de460369f151b4426c3623c28fd4aae87e3438823
5
5
  SHA512:
6
- metadata.gz: 8bc7eebffc7d3c2f8bc1c4a6d758d8ca826355d0e2421a01dfec5b57d3b00a8bbab37f3cb8b6eab59ef2f9d30f47bd81596dfb6b0b7d0b996f15c783aa52a22d
7
- data.tar.gz: 4e9dc215f0574e203240817ad2b5f5aa231e0628fb7c352b2274c59612a7d88c89dda174ed19083929b9c39eae0235bdbdc878e2947e5b055c27ff26a02831cc
6
+ metadata.gz: 2881fdb69ec894026ecd7c0fb4bfffbb70c00fa1388d74f8ae8f913d560f878d6a54b9f1d8d987c4b30a1883c16cee35ce822e0b8505759301ee2f6458a30951
7
+ data.tar.gz: c9b77351ad707f91a9d214e33f9fad4691aba37e6f1e66846c627521f7e92bb7bd27eb66b5f5772c4fa470dfb31fc8773ef3338b9cd41940a63595fd84af4fa6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [0.1.9](https://github.com/klueless-io/rails_app_generator/compare/v0.1.8...v0.1.9) (2022-08-02)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add thor task to create add-ons, plus profile rails-html-santaizer ([098700f](https://github.com/klueless-io/rails_app_generator/commit/098700facf9eb7d74ce6dfed8495e22d0904a386))
7
+ * cops ([61f106e](https://github.com/klueless-io/rails_app_generator/commit/61f106e8d5bfa918731430efd5c6fea34d25a41b))
8
+
1
9
  ## [0.1.8](https://github.com/klueless-io/rails_app_generator/compare/v0.1.7...v0.1.8) (2022-07-31)
2
10
 
3
11
 
@@ -69,8 +69,6 @@ module RailsAppGenerator
69
69
  # webmock 3.13.0 3.14.0 = 3.13.0 development, test
70
70
  # websocket-driver 0.6.5 0.7.5
71
71
 
72
- # gem "rails-html-sanitizer", "1.3.0"
73
- # gem "unicorn", "5.3.0"
74
72
  # gem "honeybadger", "4.6.0"
75
73
  # gem "pg", "0.20.0"
76
74
  # gem "redis", "3.3.3"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.1.9'
4
+ VERSION = '0.1.10'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.1.9",
9
+ "version": "0.1.10",
10
10
  "dependencies": {
11
11
  "daisyui": "^2.20.0"
12
12
  },
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
data/tasks/addon.thor CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  # https://codecrate.com/2014/01/replace-rake-with-thor.html
4
4
 
5
- require 'pry'
6
5
  require 'net/http'
7
6
  require 'json'
7
+ require_relative 'gem_info'
8
8
 
9
9
  # Thor task to create a new AddOn for Rails App Generator
10
10
  class AddOn < Thor
data/tasks/gem_info.rb ADDED
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Retrieve GemInfo from RubyGems.org
4
+ class GemInfo
5
+ attr_reader :name
6
+ attr_reader :version
7
+ attr_reader :description
8
+
9
+ def initialize(name, version, description)
10
+ @name = name
11
+ @version = version
12
+ @description = description
13
+ end
14
+
15
+ def debug
16
+ puts "name: #{name}"
17
+ puts "version: #{version}"
18
+ puts "description: #{description}"
19
+ end
20
+
21
+ class << self
22
+ def get(name)
23
+ gem_info = query_ruby_gems(name)
24
+
25
+ return gem_info if gem_info
26
+
27
+ return query_ruby_gems(name.gsub('_', '-')) if name.include?('_')
28
+ return query_ruby_gems(name.gsub('-', '_')) if name.include?('-')
29
+
30
+ abort "Cannot find GEM (#{name}) on RubyGems.org"
31
+ end
32
+
33
+ private
34
+
35
+ def query_ruby_gems(name)
36
+ link = "https://rubygems.org/api/v1/gems/#{name.downcase}.json"
37
+ info = Net::HTTP.get(URI.parse(link))
38
+ json = JSON.parse(info)
39
+
40
+ new(json['name'], json['version'], json['info'])
41
+ rescue SocketError
42
+ abort 'Internet connection cannot be established to RubyGems.org'
43
+ rescue JSON::ParserError
44
+ nil
45
+ end
46
+ end
47
+ end
data/tasks/profile.thor CHANGED
@@ -2,11 +2,38 @@
2
2
 
3
3
  # https://codecrate.com/2014/01/replace-rake-with-thor.html
4
4
 
5
+ require 'pry'
5
6
  # Thor task to create a new Profile for Rails App Generator
6
7
  class Profile < Thor
8
+ include Thor::Actions
9
+
10
+ source_root(File.expand_path('../templates/thor_task', File.dirname(__FILE__)))
11
+
12
+ attr_accessor :name
13
+
7
14
  desc 'new', 'Create a new Profile for testing Rails App Generator settings'
15
+ method_option :variant, type: :string, default: 'default', desc: 'Profile variant to create, valid values are (default, addon)'
16
+ method_option :gem, type: :string, default: nil, desc: 'Gem name is looked up to find version and description'
17
+ method_option :force, type: :boolean, default: false, desc: 'Overwrite existing files'
8
18
  def new(name)
9
- # do something here
10
- puts "new #{name}"
19
+ self.name = name
20
+
21
+ say "Creating profile #{name}"
22
+ puts "Variant: #{options[:variant]}"
23
+
24
+ gi = gem_info
25
+ gi&.debug
26
+
27
+ # template('profile/profile', "lib/rails_app_generator/profiles/#{name}.rb", force: options[:force])
28
+ end
29
+
30
+ no_commands do
31
+ def gem_info
32
+ return nil unless options[:gem]
33
+
34
+ gem_name = options[:gem] == 'gem' ? name : options[:gem]
35
+
36
+ GemInfo.create(gem_name)
37
+ end
11
38
  end
12
39
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Description goes here
4
+ require 'pry'
5
+
6
+ self.local_template_path = local_template_base(__FILE__)
7
+
8
+ gac 'base rails 7 image created'
9
+
10
+ add_controller('home', 'index')
11
+ route("root 'home#index'")
12
+
13
+ force_copy
14
+
15
+ copy_file 'index.html.erb', 'app/views/home/index.html.erb'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_app_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
@@ -355,6 +355,7 @@ files:
355
355
  - profiles/rag-tailwind.json
356
356
  - sig/rails_app_generator.rbs
357
357
  - tasks/addon.thor
358
+ - tasks/gem_info.rb
358
359
  - tasks/profile.thor
359
360
  - templates/Gemfile-original-r7
360
361
  - templates/Gemfile-original-schienenzeppelin.erb
@@ -412,6 +413,7 @@ files:
412
413
  - templates/app_x/views/shared/_navbar.html.erb.tt
413
414
  - templates/app_x/workers/application_worker.rb
414
415
  - templates/thor_task/addon/addon.tt
416
+ - templates/thor_task/profile/after_template.tt
415
417
  homepage: http://appydave.com/gems/rails_app_generator
416
418
  licenses:
417
419
  - MIT