tablexi_dev-generators 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 56152f0209f0fc9d78f53fc96e874842beb38b3c
4
+ data.tar.gz: 57e1da7ecb905db9a828752d0dc0c77f3addeea5
5
+ SHA512:
6
+ metadata.gz: 59f41aac68253ffba890d70abf74568f6797156ff22163c0539afd8120d0e6cc1a8a75b7419d54c91e38f0067fa7b6e6c52c34d00604a2f9a9be591622764cdd
7
+ data.tar.gz: 0a41f308c023d0630fb1b38bf88222526f6ab6568eaf32d7b0f043262178d8f2b3f48680089d0dee51be98b70b5e97b64bedcea8d2c058a1fb815c50c29d488c
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2017 Jason Hanggi
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # Table XI Dev Generators
2
+
3
+ A recommended set of generators for Table XI projects.
4
+
5
+ ## Example usage
6
+
7
+ Install everything:
8
+
9
+ ```bash
10
+ bundle exec rails g tablexi_dev:all
11
+ ```
12
+
13
+ Or install only the ones you want:
14
+
15
+ ```bash
16
+ bundle exec rails g tablexi_dev:git_hook
17
+ bundle exec rails g tablexi_dev:rubocop
18
+ bundle exec rails g tablexi_dev:unicorn
19
+ # ...
20
+ ```
21
+
22
+ ## Installing this gem
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ group :development do
28
+ gem "tablexi_dev-generators"
29
+ end
30
+ ```
31
+
32
+ And then execute:
33
+ ```bash
34
+ $ bundle
35
+ ```
36
+
37
+ ## Upgrading this gem
38
+
39
+ After upgrading this gem, it's recommended that you re-run the generators and verify that the changed files are correct.
40
+
41
+ ## All available generators
42
+
43
+ ### Generator: Git hooks
44
+
45
+ bundle exec rails g tablexi_dev:git_hook
46
+
47
+ This generator will guide you through installing git hooks. If you do not have a strong preference, we recommend installing the `pre-push` rubocop hook.
48
+
49
+ Because git hooks do not get checked into the remote repository, it's recommended that each team member run this generator upon installing any project on their local machine.
50
+
51
+ ### Generator: Rubocop
52
+
53
+ bundle exec rails g tablexi_dev:rubocop
54
+
55
+ The rubocop generator is designed to be used in the following different situations:
56
+
57
+ 1) On initial setup of rubocop in a project, to set up the tool.
58
+ 2) When updates to the rubocop cops occur (new versions of [Rubocop](https://github.com/bbatsov/rubocop/) are provided, with new rules)
59
+
60
+ For detailed instructions on the rubocop generator and its options, [check out the rubocop readme](rubocop.md)
61
+
62
+ ### Generator: Unicorn
63
+
64
+ bundle exec rails g tablexi_dev:rubocop
65
+
66
+ The unicorn generator sets up a project's unicorn configuration files.
data/Rakefile ADDED
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "bundler/setup"
5
+ rescue LoadError
6
+ puts "You must `gem install bundler` and `bundle install` to run rake tasks"
7
+ end
8
+
9
+ require "rdoc/task"
10
+
11
+ RDoc::Task.new(:rdoc) do |rdoc|
12
+ rdoc.rdoc_dir = "rdoc"
13
+ rdoc.title = "TablexiDev::Generators"
14
+ rdoc.options << "--line-numbers"
15
+ rdoc.rdoc_files.include("README.md")
16
+ rdoc.rdoc_files.include("lib/**/*.rb")
17
+ end
18
+
19
+ require "bundler/gem_tasks"
20
+
21
+ require "rake/testtask"
22
+
23
+ Rake::TestTask.new(:test) do |t|
24
+ t.libs << "test"
25
+ t.pattern = "test/**/*_test.rb"
26
+ t.verbose = false
27
+ end
28
+
29
+ task default: :test
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TablexiDev
4
+
5
+ module Generators
6
+
7
+ class AllGenerator < Rails::Generators::Base
8
+
9
+ GENERATORS = %i[
10
+ git_hook
11
+ rubocop
12
+ unicorn
13
+ ].freeze
14
+
15
+ def generate_all
16
+ GENERATORS.each { |generator| generate "tablexi_dev:#{generator}" }
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ # This is a general pre-commit hook, other hooks will be invoked from here
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ # This is a general pre-push hook, other hooks will be invoked from here
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "rubocop"
5
+
6
+ ADDED_OR_MODIFIED = /A|AM|^M/
7
+
8
+ # to prevent code injection: system is a dangerous call
9
+ def raise_single_quote_error
10
+ raise ArgumentError, "Single quotes are not allowed in filenames here."
11
+ end
12
+
13
+ def extract_file_name(file_name_with_status)
14
+ file_name_array = file_name_with_status.strip.split(" ")
15
+ file_name_array.shift
16
+ fname = file_name_array.join(" ")
17
+ fname[0] = "" if fname[0] == '"'
18
+ fname[fname.length - 1] = "" if fname[fname.length - 1] == '"'
19
+ raise_single_quote_error if fname.include?("'")
20
+ fname
21
+ end
22
+
23
+ changed_files =
24
+ `git status --porcelain`
25
+ .split(/\n/)
26
+ .select { |file_name_with_status| file_name_with_status =~ ADDED_OR_MODIFIED }
27
+ .map { |file_name_with_status| extract_file_name file_name_with_status }
28
+ .select { |file_name| File.extname(file_name) =~ /.rb/ }
29
+ .join("' '")
30
+
31
+ unless changed_files.empty?
32
+ system("bundle exec rubocop -a --force-exclusion '#{changed_files}'")
33
+ system("git add '#{changed_files}'")
34
+ end
35
+
36
+ exit $CHILD_STATUS.to_s[-1].to_i
@@ -0,0 +1,8 @@
1
+ #!/bin/sh
2
+
3
+ # We choose not to auto-correct so that the return code is non-0
4
+ # causing the pre-push to prevent the 'git push' from doing it.
5
+ # This will run Rubocop on all files tracked with git, ignoring any files in the
6
+ # repo's .gitignore or your .gitignore_global.
7
+
8
+ bundle exec rubocop --force-exclusion `git ls-tree -r HEAD --name-only`
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TablexiDev
4
+
5
+ module Generators
6
+
7
+ class GitHookGenerator < Rails::Generators::Base
8
+
9
+ source_root File.expand_path("../git_hook_generator/files/", __FILE__)
10
+
11
+ def copy_files
12
+ maybe_install_rubocop_hook_pre "push"
13
+ maybe_install_rubocop_hook_pre "commit"
14
+ end
15
+
16
+ private
17
+
18
+ def maybe_install_rubocop_hook_pre(type)
19
+ return unless yes?("Would you like to automatically run rubocop before each 'git #{type}'?")
20
+
21
+ # Define pre-hook file paths
22
+ rubocop_path = ".git/hooks/rubocop-pre-#{type}"
23
+ general_path = ".git/hooks/pre-#{type}"
24
+
25
+ # Copy files from this generator into the project
26
+ copy_and_set_executable("rubocop-pre-#{type}", rubocop_path)
27
+ copy_and_set_executable("general-pre-#{type}", general_path) unless File.exist?(general_path)
28
+
29
+ # Ensure we do not append to the general hook file more than once
30
+ unless File.readlines(general_path).grep(/rubocop-pre-#{type}/).size > 0
31
+ append_to_file(general_path, "exec #{rubocop_path}")
32
+ end
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -0,0 +1,11 @@
1
+ # Overrides can go here, but try to conform to TXI standards when possible.
2
+ #
3
+ # Example...
4
+ # Metrics/CyclomaticComplexity:
5
+ # Enabled: false # We've got nasty methods!
6
+ #
7
+ #
8
+ # Example...
9
+ # AllCops:
10
+ # TargetRubyVersion: 2.3
11
+ # TargetRailsVersion: 4.2
@@ -0,0 +1,100 @@
1
+ # This file is generated as a part of the tablexi_dev-generators project
2
+ #
3
+ # You should NOT make any changes to this file, as it will be overwritten
4
+ # the next time we update the tablexi_dev-generators gem and run
5
+ # `rails generate tablexi_dev:rubocop`
6
+ AllCops:
7
+ DisplayCopNames: true
8
+ Exclude:
9
+ - "db/schema.rb" # You can't touch this
10
+ - ".bundle/**/*" # Auto-generated
11
+ - "bin/**/*" # Auto-generated
12
+ - "vendor/**/*" # We cannot solve the world's problems
13
+ TargetRubyVersion: 2.4
14
+ TargetRailsVersion: 5.1
15
+ Rails:
16
+ Enabled: true
17
+
18
+ Lint/HandleExceptions:
19
+ Exclude:
20
+ - "config/unicorn/*"
21
+
22
+ Metrics/AbcSize:
23
+ Max: 25
24
+ Exclude:
25
+ - "db/**/*" # Sometimes migrations are complex.
26
+
27
+ Metrics/LineLength:
28
+ Max: 120
29
+
30
+ Metrics/MethodLength:
31
+ Max: 20
32
+ Exclude:
33
+ - "db/**/*" # Again, sometimes DB migrations are long.
34
+
35
+ Metrics/BlockLength:
36
+ Exclude:
37
+ # These are naturally DSL-y, and so let's be lenient.
38
+ - "spec/**/*"
39
+ - "config/routes.rb"
40
+
41
+ Style/ClassAndModuleChildren:
42
+ Exclude:
43
+ - "app/controllers/**/*" # We generally use compact style here
44
+
45
+ Style/Documentation:
46
+ Exclude:
47
+ - "db/**/*" # No need to require migrations to be documented.
48
+
49
+ Layout/EmptyLinesAroundBlockBody:
50
+ Exclude:
51
+ # These are naturally DSL-y, and so let's be lenient.
52
+ - "spec/**/*"
53
+ - "lib/tasks/*.rake"
54
+
55
+ Layout/EmptyLinesAroundClassBody:
56
+ EnforcedStyle: empty_lines
57
+ Exclude:
58
+ - "db/**/*" # Migrations are compact by default, and it's not worth the wrestle.
59
+
60
+ Layout/EmptyLinesAroundModuleBody:
61
+ EnforcedStyle: empty_lines
62
+
63
+ Layout/ExtraSpacing:
64
+ Exclude:
65
+ - "db/migrate/*" # Generated migrations often have extra spacing
66
+
67
+ Style/SignalException:
68
+ EnforcedStyle: only_raise
69
+
70
+ Layout/SpaceBeforeFirstArg:
71
+ Exclude:
72
+ # We often add extra spaces for alignment in factories.
73
+ - "spec/factories/**/*"
74
+ - "db/migrate/*" # We often add extra spaces for alignment in migrations.
75
+
76
+ Style/StringLiterals:
77
+ EnforcedStyle: double_quotes
78
+
79
+ Style/TrailingCommaInArguments:
80
+ EnforcedStyleForMultiline: comma
81
+
82
+ Style/TrailingCommaInArrayLiteral:
83
+ EnforcedStyleForMultiline: comma
84
+
85
+ Style/TrailingCommaInHashLiteral:
86
+ EnforcedStyleForMultiline: comma
87
+
88
+ Style/TrivialAccessors:
89
+ ExactNameMatch: true
90
+
91
+ Rails/UnknownEnv:
92
+ Environments:
93
+ - production
94
+ - development
95
+ - test
96
+ - stage
97
+
98
+ Rails/ApplicationRecord:
99
+ Exclude:
100
+ - "db/**/*" # Migrations should be isolated, models defined there should NOT inherit from ApplicationRecord
@@ -0,0 +1,15 @@
1
+ # This file is generated as a part of the tablexi_dev-generators project
2
+ #
3
+ # You should NOT make any changes to this file, as it will be overwritten
4
+ # the next time we update the tablexi_dev-generators gem and run
5
+ # `rails generate tablexi_dev:rubocop`
6
+ inherit_from:
7
+ - .rubocop-txi.yml
8
+ - .rubocop-project_overrides.yml
9
+ - .rubocop_todo.yml
10
+
11
+ # Allow the list of files Excluded by .rubocop-txi to be merged
12
+ # with files excluded by the .rubocop-project_overrides and .rubocop_todo files
13
+ inherit_mode:
14
+ merge:
15
+ - Exclude
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TablexiDev
4
+
5
+ module Generators
6
+
7
+ class RubocopGenerator < Rails::Generators::Base
8
+
9
+ source_root File.expand_path("../rubocop_generator/files/", __FILE__)
10
+
11
+ def copy_files
12
+ install_rubocop_config_files
13
+ end
14
+
15
+ def add_gem
16
+ # Prevent us from adding the same gem directive multiple times
17
+ # if the Gemfile already has 'rubocop' in a format other
18
+ # than the exact format we expect.
19
+ content = File.read("Gemfile")
20
+ gem "rubocop", group: %i[development test], require: false unless content.include?("rubocop")
21
+ end
22
+
23
+ private
24
+
25
+ def install_rubocop_config_files
26
+ copy_file "dot_rubocop.yml", ".rubocop.yml"
27
+ copy_file "dot_rubocop-txi.yml", ".rubocop-txi.yml"
28
+
29
+ # Create a .rubocop_todo file, which may be generated
30
+ # by the `rubocop --auto-gen-config` command
31
+ create_file ".rubocop_todo.yml" unless File.exist?(".rubocop_todo.yml")
32
+
33
+ # Create a file for where individual project-overrides
34
+ # should be stored, and not be clobbered by the txi rules
35
+ unless File.exist?(".rubocop-project_overrides.yml") # rubocop:disable Style/GuardClause
36
+ copy_file "dot_rubocop-project_overrides.yml", ".rubocop-project_overrides.yml"
37
+ end
38
+ end
39
+
40
+ def copy_and_set_executable(source_file, target_file)
41
+ copy_file source_file, target_file
42
+ chmod target_file, 0o755
43
+ end
44
+
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,36 @@
1
+ worker_processes 4
2
+ listen "/tmp/unicorn-<%= @production_domain %>.socket", backlog: 64
3
+ preload_app true
4
+
5
+ app_path = "/home/<%= @app_name %>/<%= @production_domain %>"
6
+ working_directory "#{app_path}/current"
7
+ pid "#{app_path}/shared/tmp/pids/unicorn.pid"
8
+
9
+ stderr_path "log/unicorn.stderr.log"
10
+ stdout_path "log/unicorn.stdout.log"
11
+
12
+ # zero downtime
13
+ before_fork do |server, _|
14
+ # the following is highly recomended for Rails + "preload_app true"
15
+ # as there's no need for the master process to hold a connection
16
+ ActiveRecord::Base.connection.disconnect! if defined?(ActiveRecord::Base)
17
+
18
+ # Before forking, kill the master process that belongs to the .oldbin PID.
19
+ # This enables 0 downtime deploys.
20
+ old_pid = "#{server.config[:pid]}.oldbin"
21
+ if File.exist?(old_pid) && server.pid != old_pid
22
+ begin
23
+ Process.kill("QUIT", File.read(old_pid).to_i)
24
+ rescue Errno::ENOENT, Errno::ESRCH
25
+ # someone else did our job for us
26
+ end
27
+ end
28
+ end
29
+
30
+ after_fork do |_, _|
31
+ ActiveRecord::Base.establish_connection if defined?(ActiveRecord::Base)
32
+ end
33
+
34
+ before_exec do |_|
35
+ ENV["BUNDLE_GEMFILE"] = "#{app_path}/current/Gemfile"
36
+ end
@@ -0,0 +1,36 @@
1
+ worker_processes 2
2
+ listen "/tmp/unicorn-<%= @app_name %>.stage.tablexi.com.socket", backlog: 64
3
+ preload_app true
4
+
5
+ app_path = "/home/<%= @app_name %>/<%= @app_name %>.stage.tablexi.com"
6
+ working_directory "#{app_path}/current"
7
+ pid "#{app_path}/shared/tmp/pids/unicorn.pid"
8
+
9
+ stderr_path "log/unicorn.stderr.log"
10
+ stdout_path "log/unicorn.stdout.log"
11
+
12
+ # zero downtime
13
+ before_fork do |server, _|
14
+ # the following is highly recomended for Rails + "preload_app true"
15
+ # as there's no need for the master process to hold a connection
16
+ ActiveRecord::Base.connection.disconnect! if defined?(ActiveRecord::Base)
17
+
18
+ # Before forking, kill the master process that belongs to the .oldbin PID.
19
+ # This enables 0 downtime deploys.
20
+ old_pid = "#{server.config[:pid]}.oldbin"
21
+ if File.exist?(old_pid) && server.pid != old_pid
22
+ begin
23
+ Process.kill("QUIT", File.read(old_pid).to_i)
24
+ rescue Errno::ENOENT, Errno::ESRCH
25
+ # someone else did our job for us
26
+ end
27
+ end
28
+ end
29
+
30
+ after_fork do |_, _|
31
+ ActiveRecord::Base.establish_connection if defined?(ActiveRecord::Base)
32
+ end
33
+
34
+ before_exec do |_|
35
+ ENV["BUNDLE_GEMFILE"] = "#{app_path}/current/Gemfile"
36
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TablexiDev
4
+
5
+ module Generators
6
+
7
+ class UnicornGenerator < Rails::Generators::Base
8
+
9
+ source_root File.expand_path("../unicorn_generator/templates", __FILE__)
10
+
11
+ def set_variables
12
+ @app_name = Rails.application.class.parent.to_s.underscore
13
+ user_answer = ask("What is the production domain? (leave blank if you don't know yet)")
14
+ @production_domain = user_answer.presence || "[production-domain]"
15
+ end
16
+
17
+ def add_files
18
+ template "stage.rb", "config/unicorn/stage.rb"
19
+ template "production.rb", "config/unicorn/production.rb"
20
+ end
21
+
22
+ def add_gem
23
+ gem "unicorn", require: false
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+
30
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TablexiDev
4
+
5
+ module Generators
6
+
7
+ VERSION = "0.1.0"
8
+
9
+ end
10
+
11
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TablexiDev
4
+
5
+ module Generators
6
+ # Your code goes here...
7
+ end
8
+
9
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+ # desc "Explaining what the task does"
3
+ # task :tablexi_dev_generators do
4
+ # # Task goes here
5
+ # end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tablexi_dev-generators
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Table XI
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-06-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
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: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: ''
56
+ email:
57
+ - devs@tablexi.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - MIT-LICENSE
63
+ - README.md
64
+ - Rakefile
65
+ - lib/generators/tablexi_dev/all_generator.rb
66
+ - lib/generators/tablexi_dev/git_hook_generator.rb
67
+ - lib/generators/tablexi_dev/git_hook_generator/files/general-pre-commit
68
+ - lib/generators/tablexi_dev/git_hook_generator/files/general-pre-push
69
+ - lib/generators/tablexi_dev/git_hook_generator/files/rubocop-pre-commit
70
+ - lib/generators/tablexi_dev/git_hook_generator/files/rubocop-pre-push
71
+ - lib/generators/tablexi_dev/rubocop_generator.rb
72
+ - lib/generators/tablexi_dev/rubocop_generator/files/dot_rubocop-project_overrides.yml
73
+ - lib/generators/tablexi_dev/rubocop_generator/files/dot_rubocop-txi.yml
74
+ - lib/generators/tablexi_dev/rubocop_generator/files/dot_rubocop.yml
75
+ - lib/generators/tablexi_dev/unicorn_generator.rb
76
+ - lib/generators/tablexi_dev/unicorn_generator/templates/production.rb.tt
77
+ - lib/generators/tablexi_dev/unicorn_generator/templates/stage.rb.tt
78
+ - lib/tablexi_dev/generators.rb
79
+ - lib/tablexi_dev/generators/version.rb
80
+ - lib/tasks/tablexi_dev/generators_tasks.rake
81
+ homepage: https://github.com/tablexi/tablexi_dev-generators
82
+ licenses:
83
+ - MIT
84
+ metadata: {}
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 2.5.2
102
+ signing_key:
103
+ specification_version: 4
104
+ summary: A recommended set of generators for Table XI projects..
105
+ test_files: []