traker 0.0.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd9ed9c3681e334493636335da76e596113a808dc081857dd6f0aeed36c16072
4
- data.tar.gz: bf8d8fc5b8988ee62b0a5ee600b73fd0e011e330e7892568a41ee1bbf24bf22a
3
+ metadata.gz: 735a833c35207ee136c8b17c5bbc484010fa935339bc79b6ea588ea01aa1716e
4
+ data.tar.gz: 695f64cbed4772da1e490993f32b4a428ae2c0b217198ac49fd8be36c7cf1d1d
5
5
  SHA512:
6
- metadata.gz: bd04e087d3a09b2b17ab675d5f96148e218a369447c58723eeef5545e9ad03fc633112c63b0b599b1db189c688c5cf3317ef6d76ed717bf0f23afe71b27013b3
7
- data.tar.gz: 79a8ad098394c2d87f470e884591742fb116946c45ff1b681d3621fe6cb2537759d37bab40fe59a9e4cf4561dd0a9ea5d5c2e96b25b915f78e908dce87ec498f
6
+ metadata.gz: 23741590737e76e0dcf618a9e8040b2b27520c1892f07cf32cf43981cfe9ba781ff03b78358e11c928e25516f1894ae168bc1a1cefdda0ace9d8fcb931904498
7
+ data.tar.gz: 8c5370219ca462e8679708b581358809bc046cc8e0b9eb3900c34d23653910eaf9f93c769e7c39f4d87a974c50e4ad42dd69025fb4963c64e7272386f9cd79b8
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ *.gem
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
@@ -0,0 +1,41 @@
1
+ AllCops:
2
+ NewCops: enable
3
+ TargetRubyVersion: 2.4.0
4
+
5
+ Layout/MultilineMethodCallIndentation:
6
+ Enabled: false
7
+
8
+ Lint/InheritException:
9
+ Enabled: false
10
+
11
+ Style/MultilineTernaryOperator:
12
+ Enabled: false
13
+
14
+ Style/GuardClause:
15
+ Enabled: false
16
+
17
+ Style/ClassAndModuleChildren:
18
+ Enabled: false
19
+
20
+ Style/ParallelAssignment:
21
+ Enabled: false
22
+
23
+ Style/IfUnlessModifier:
24
+ Enabled: false
25
+
26
+ Metrics:
27
+ Enabled: false
28
+
29
+ Naming/PredicateName:
30
+ Enabled: false
31
+
32
+ Layout/LineLength:
33
+ Max: 170
34
+
35
+ Layout/EmptyLineBetweenDefs:
36
+ Enabled: false
37
+
38
+ Style/Documentation:
39
+ Enabled: true
40
+ Exclude:
41
+ - lib/traker.rb
@@ -5,3 +5,9 @@ cache: bundler
5
5
  rvm:
6
6
  - 2.5.3
7
7
  before_install: gem install bundler -v 2.0.1
8
+
9
+ install: bundle install
10
+
11
+ script:
12
+ - rubocop
13
+ - bundle exec rspec
data/Gemfile CHANGED
@@ -1,4 +1,16 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in traker.gemspec
4
6
  gemspec
7
+
8
+ group :test do
9
+ gem 'climate_control'
10
+ gem 'database_cleaner'
11
+ gem 'pry'
12
+ gem 'rb-readline'
13
+ gem 'rspec'
14
+ gem 'rubocop', '~> 0.62'
15
+ gem 'sqlite3', '~> 1.3', '< 1.4'
16
+ end
@@ -0,0 +1,177 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ traker (0.0.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ actioncable (5.2.4.4)
10
+ actionpack (= 5.2.4.4)
11
+ nio4r (~> 2.0)
12
+ websocket-driver (>= 0.6.1)
13
+ actionmailer (5.2.4.4)
14
+ actionpack (= 5.2.4.4)
15
+ actionview (= 5.2.4.4)
16
+ activejob (= 5.2.4.4)
17
+ mail (~> 2.5, >= 2.5.4)
18
+ rails-dom-testing (~> 2.0)
19
+ actionpack (5.2.4.4)
20
+ actionview (= 5.2.4.4)
21
+ activesupport (= 5.2.4.4)
22
+ rack (~> 2.0, >= 2.0.8)
23
+ rack-test (>= 0.6.3)
24
+ rails-dom-testing (~> 2.0)
25
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
26
+ actionview (5.2.4.4)
27
+ activesupport (= 5.2.4.4)
28
+ builder (~> 3.1)
29
+ erubi (~> 1.4)
30
+ rails-dom-testing (~> 2.0)
31
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
32
+ activejob (5.2.4.4)
33
+ activesupport (= 5.2.4.4)
34
+ globalid (>= 0.3.6)
35
+ activemodel (5.2.4.4)
36
+ activesupport (= 5.2.4.4)
37
+ activerecord (5.2.4.4)
38
+ activemodel (= 5.2.4.4)
39
+ activesupport (= 5.2.4.4)
40
+ arel (>= 9.0)
41
+ activestorage (5.2.4.4)
42
+ actionpack (= 5.2.4.4)
43
+ activerecord (= 5.2.4.4)
44
+ marcel (~> 0.3.1)
45
+ activesupport (5.2.4.4)
46
+ concurrent-ruby (~> 1.0, >= 1.0.2)
47
+ i18n (>= 0.7, < 2)
48
+ minitest (~> 5.1)
49
+ tzinfo (~> 1.1)
50
+ arel (9.0.0)
51
+ ast (2.4.1)
52
+ builder (3.2.4)
53
+ climate_control (0.2.0)
54
+ coderay (1.1.3)
55
+ concurrent-ruby (1.1.7)
56
+ crass (1.0.6)
57
+ database_cleaner (1.8.5)
58
+ diff-lcs (1.4.4)
59
+ erubi (1.9.0)
60
+ globalid (0.4.2)
61
+ activesupport (>= 4.2.0)
62
+ i18n (1.8.5)
63
+ concurrent-ruby (~> 1.0)
64
+ loofah (2.7.0)
65
+ crass (~> 1.0.2)
66
+ nokogiri (>= 1.5.9)
67
+ mail (2.7.1)
68
+ mini_mime (>= 0.1.1)
69
+ marcel (0.3.3)
70
+ mimemagic (~> 0.3.2)
71
+ method_source (1.0.0)
72
+ mimemagic (0.3.5)
73
+ mini_mime (1.0.2)
74
+ mini_portile2 (2.4.0)
75
+ minitest (5.14.2)
76
+ nio4r (2.5.4)
77
+ nokogiri (1.10.10)
78
+ mini_portile2 (~> 2.4.0)
79
+ parallel (1.19.2)
80
+ parser (2.7.1.5)
81
+ ast (~> 2.4.1)
82
+ pry (0.13.1)
83
+ coderay (~> 1.1)
84
+ method_source (~> 1.0)
85
+ rack (2.2.3)
86
+ rack-test (1.1.0)
87
+ rack (>= 1.0, < 3)
88
+ rails (5.2.4.4)
89
+ actioncable (= 5.2.4.4)
90
+ actionmailer (= 5.2.4.4)
91
+ actionpack (= 5.2.4.4)
92
+ actionview (= 5.2.4.4)
93
+ activejob (= 5.2.4.4)
94
+ activemodel (= 5.2.4.4)
95
+ activerecord (= 5.2.4.4)
96
+ activestorage (= 5.2.4.4)
97
+ activesupport (= 5.2.4.4)
98
+ bundler (>= 1.3.0)
99
+ railties (= 5.2.4.4)
100
+ sprockets-rails (>= 2.0.0)
101
+ rails-dom-testing (2.0.3)
102
+ activesupport (>= 4.2.0)
103
+ nokogiri (>= 1.6)
104
+ rails-html-sanitizer (1.3.0)
105
+ loofah (~> 2.3)
106
+ railties (5.2.4.4)
107
+ actionpack (= 5.2.4.4)
108
+ activesupport (= 5.2.4.4)
109
+ method_source
110
+ rake (>= 0.8.7)
111
+ thor (>= 0.19.0, < 2.0)
112
+ rainbow (3.0.0)
113
+ rake (12.3.3)
114
+ rb-readline (0.5.5)
115
+ regexp_parser (1.8.1)
116
+ rexml (3.2.4)
117
+ rspec (3.9.0)
118
+ rspec-core (~> 3.9.0)
119
+ rspec-expectations (~> 3.9.0)
120
+ rspec-mocks (~> 3.9.0)
121
+ rspec-core (3.9.2)
122
+ rspec-support (~> 3.9.3)
123
+ rspec-expectations (3.9.2)
124
+ diff-lcs (>= 1.2.0, < 2.0)
125
+ rspec-support (~> 3.9.0)
126
+ rspec-mocks (3.9.1)
127
+ diff-lcs (>= 1.2.0, < 2.0)
128
+ rspec-support (~> 3.9.0)
129
+ rspec-support (3.9.3)
130
+ rubocop (0.92.0)
131
+ parallel (~> 1.10)
132
+ parser (>= 2.7.1.5)
133
+ rainbow (>= 2.2.2, < 4.0)
134
+ regexp_parser (>= 1.7)
135
+ rexml
136
+ rubocop-ast (>= 0.5.0)
137
+ ruby-progressbar (~> 1.7)
138
+ unicode-display_width (>= 1.4.0, < 2.0)
139
+ rubocop-ast (0.7.1)
140
+ parser (>= 2.7.1.5)
141
+ ruby-progressbar (1.10.1)
142
+ sprockets (4.0.2)
143
+ concurrent-ruby (~> 1.0)
144
+ rack (> 1, < 3)
145
+ sprockets-rails (3.2.2)
146
+ actionpack (>= 4.0)
147
+ activesupport (>= 4.0)
148
+ sprockets (>= 3.0.0)
149
+ sqlite3 (1.3.13)
150
+ thor (1.0.1)
151
+ thread_safe (0.3.6)
152
+ tzinfo (1.2.7)
153
+ thread_safe (~> 0.1)
154
+ unicode-display_width (1.7.0)
155
+ websocket-driver (0.7.3)
156
+ websocket-extensions (>= 0.1.0)
157
+ websocket-extensions (0.1.5)
158
+
159
+ PLATFORMS
160
+ ruby
161
+
162
+ DEPENDENCIES
163
+ activerecord (>= 4.1)
164
+ bundler (~> 2.0)
165
+ climate_control
166
+ database_cleaner
167
+ pry
168
+ rails (~> 5.0)
169
+ rake (~> 12.3.3)
170
+ rb-readline
171
+ rspec
172
+ rubocop (~> 0.62)
173
+ sqlite3 (~> 1.3, < 1.4)
174
+ traker!
175
+
176
+ BUNDLED WITH
177
+ 2.0.1
data/README.md CHANGED
@@ -52,6 +52,20 @@ Schema breakdown:
52
52
  * `environments.<key>.name` - the name of the rake task in namespace:name format
53
53
  * `environments.<key>.notes` - some information that might be important when the task is run (should be different from rake task's description)
54
54
 
55
+ ### Testing
56
+
57
+ Traker allows to keep your `.traker.yml` configuration file consistent and valid. Run a generator to install rspec related files:
58
+
59
+ ``` ruby
60
+ rails g traker:rspec test
61
+ ```
62
+
63
+ ### CLI
64
+ Traker exposes a command line interface. Commands implemented so far:
65
+
66
+ 1) `traker list` - lists pending (those that haven't been run in the current environment) tasks. Available options:
67
+ * `-a, --all` - list all tasks in the current environment
68
+
55
69
  ## Development
56
70
 
57
71
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "traker"
4
+ require 'bundler/setup'
5
+ require 'traker'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "traker"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # frozen_string_literal: true
4
+
5
+ require File.expand_path(File.join(Dir.pwd, 'config/environment'))
6
+ require 'traker'
7
+
8
+ Traker::CLI.new.run(ARGV)
@@ -4,11 +4,13 @@ require 'rails/generators/active_record'
4
4
 
5
5
  module Traker
6
6
  module Generators
7
+ # A rails generator that generates model-related files in the host
8
+ # Ruby On Rails project
7
9
  class ModelsGenerator < ActiveRecord::Generators::Base
8
10
  source_root File.expand_path('templates', __dir__)
9
11
 
10
12
  def generate_model
11
- migration_template 'migration.rb', 'db/migrate/add_traker_tasks.rb'
13
+ migration_template 'migrations/20200930011917_add_traker_tasks.rb', 'db/migrate/add_traker_tasks.rb'
12
14
  end
13
15
  end
14
16
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/active_record'
4
+
5
+ module Traker
6
+ module Generators
7
+ # A rails generator that generates rspec-related files in the host
8
+ # Ruby On Rails project
9
+ class RspecGenerator < ActiveRecord::Generators::Base
10
+ source_root File.expand_path('templates', __dir__)
11
+
12
+ def generate_spec
13
+ template 'spec/lib/traker_spec.rb', 'spec/lib/traker_spec.rb'
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # ActiveRecord migration that creates Traker::Task
4
+ # table
3
5
  class AddTrakerTasks < ActiveRecord::Migration[5.2]
4
6
  def change
5
7
  create_table :traker_tasks do |t|
@@ -12,6 +14,6 @@ class AddTrakerTasks < ActiveRecord::Migration[5.2]
12
14
  t.datetime :finished_at, null: false
13
15
  end
14
16
 
15
- add_index :traker_tasks, %i(name environment)
17
+ add_index :traker_tasks, %i[name environment]
16
18
  end
17
19
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+ require 'traker'
5
+
6
+ describe '.traker.yml' do
7
+ it 'is valid' do
8
+ Rails.application.load_tasks
9
+ expect { Traker::Config.load.validate!(Rake::Task.tasks) }.not_to raise_error
10
+ end
11
+ end
@@ -1,8 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'traker/version'
4
+ require 'traker/config'
4
5
  require 'traker/instrumenter'
5
6
  require 'traker/task'
7
+ require 'traker/service'
8
+ require 'traker/cli'
6
9
 
7
10
  module Traker
8
11
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'optparse'
4
+
5
+ module Traker
6
+ # Traker's CLI interfase
7
+ class CLI
8
+ SUBTEXT = <<HELP
9
+ Possible commands are:
10
+ list: lists rake tasks known to Traker (shows list of pending tasks by default)
11
+ See 'traker COMMAND --help' for more information on a specific command.
12
+ HELP
13
+ SUBCOMMANDS = {
14
+ list: 'list'
15
+ }.freeze
16
+
17
+ def initialize
18
+ @main = OptionParser.new do |opts|
19
+ opts.banner = 'Usage: traker [options] [subcommand] [options]'
20
+ opts.on('-v', '--version', 'Show version')
21
+ opts.separator ''
22
+ opts.separator SUBTEXT
23
+ end
24
+
25
+ @subcommands = {
26
+ SUBCOMMANDS[:list] => OptionParser.new do |opts|
27
+ opts.banner = 'Usage: list [options]'
28
+ opts.on('-a', '--all', 'list all tasks')
29
+ end
30
+ }
31
+ end
32
+
33
+ def run(argv)
34
+ options = {}
35
+ @main.order!(argv, into: options)
36
+ if options[:version]
37
+ puts Traker::VERSION
38
+ return
39
+ end
40
+
41
+ subcommand = argv.shift
42
+ subcommand_options = {}
43
+ @subcommands[subcommand]&.order!(argv, into: subcommand_options)
44
+
45
+ service = Traker::Service.new
46
+
47
+ case subcommand
48
+ when SUBCOMMANDS[:list]
49
+ if subcommand_options[:all]
50
+ print service.tasks.join("\n")
51
+ else
52
+ print service.pending_tasks.join("\n")
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+ require 'rails'
5
+
6
+ module Traker
7
+ # Represents Traker configuration.
8
+ class Config
9
+ PATH = '.traker.yml'
10
+
11
+ class InvalidTasks < StandardError
12
+ end
13
+
14
+ def self.load
15
+ Config.new(File.join(::Rails.root, PATH))
16
+ end
17
+
18
+ def initialize(file)
19
+ yml = YAML.safe_load(File.read(file))
20
+ @environments = yml['environments']
21
+ end
22
+
23
+ def env
24
+ @env ||= ENV.fetch('TRAKER_ENV', 'default')
25
+ end
26
+
27
+ def tasks
28
+ @environments[env] || []
29
+ end
30
+
31
+ def validate!(available_tasks)
32
+ available_task_names = available_tasks.map(&:name)
33
+
34
+ @environments.each do |_, tasks|
35
+ task_names = (tasks || []).map { |t| t['name'] }
36
+ invalid_tasks = task_names - available_task_names
37
+
38
+ if invalid_tasks.any?
39
+ raise InvalidTasks, "#{PATH} contains invalid tasks: #{invalid_tasks.join(',')}"
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -1,13 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'yaml'
4
-
5
3
  module Traker
4
+ # Wraps array of rake tasks, and auguments each one of them
5
+ # with Traker features
6
6
  class Instrumenter
7
- attr_accessor :tasks, :desc, :task
7
+ attr_accessor :tasks, :config
8
8
 
9
9
  def initialize(tasks)
10
10
  @tasks = tasks
11
+ @config = Traker::Config.load
11
12
  end
12
13
 
13
14
  def instrument
@@ -17,19 +18,19 @@ module Traker
17
18
  next unless tasks_to_be_run.map { |task| task['name'] }.include?(task_name)
18
19
 
19
20
  handler = proc do |&block|
20
- record = Traker::Task.find_or_initialize_by(name: task_name, environment: env)
21
+ record = Traker::Task.find_or_initialize_by(name: task_name, environment: config.env)
21
22
 
22
23
  record.started_at = DateTime.now
23
24
  record.is_success = true
24
25
 
25
26
  begin
26
27
  block.call
27
- rescue => e
28
+ record.run_count += 1
29
+ rescue StandardError => e
28
30
  record.is_success = false
29
31
  record.error = e.backtrace.first
30
32
  raise e
31
33
  ensure
32
- record.run_count += 1
33
34
  record.finished_at = DateTime.now
34
35
  record.save!
35
36
  end
@@ -41,16 +42,8 @@ module Traker
41
42
 
42
43
  private
43
44
 
44
- def config
45
- @config ||= YAML.safe_load(File.read(File.join(Rails.root, '.traker.yml')))
46
- end
47
-
48
- def env
49
- @env ||= ENV.fetch('TRAKER_ENV', 'default')
50
- end
51
-
52
45
  def tasks_to_be_run
53
- config['environments'][env] || []
46
+ config.tasks
54
47
  end
55
48
  end
56
49
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require_relative '../traker'
4
4
 
5
- Traker::Instrumenter.new(Rake::Task.tasks)
6
-
7
5
  Traker::Instrumenter.new(Rake::Task.tasks).instrument do |task_name, handle_task|
8
6
  original_task = Rake.application.instance_variable_get('@tasks').delete(task_name)
9
7
  task_prerequisites = original_task.prerequisites | ['environment']
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'traker/task'
4
+
5
+ module Traker
6
+ # Service that encapsulates main Traker API
7
+ class Service
8
+ def initialize
9
+ @config = Traker::Config.load
10
+ end
11
+
12
+ def pending_tasks
13
+ records = Traker::Task.where(name: tasks, environment: @config.env)
14
+ actual = tasks.each_with_object({}) do |name, hash|
15
+ record = records.find { |r| r.name == name }
16
+ hash[name] = record ? record.run_count : 0
17
+ end
18
+
19
+ pending = []
20
+ tasks.each do |name|
21
+ actual[name] -= 1
22
+ next if actual[name] >= 0
23
+
24
+ pending << name
25
+ end
26
+
27
+ pending
28
+ end
29
+
30
+ def tasks
31
+ @tasks ||= @config.tasks.map { |t| t['name'] }
32
+ end
33
+ end
34
+ end
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'active_record'
4
+
3
5
  module Traker
4
- class Task < ActiveRecord::Base
6
+ # Represents a rake task that have been run and logged by Traker
7
+ class Task < ::ActiveRecord::Base
5
8
  self.table_name_prefix = 'traker_'
6
9
  end
7
10
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Traker
4
- VERSION = '0.0.1'
4
+ VERSION = '0.1.0'
5
5
  end
@@ -1,18 +1,19 @@
1
+ # frozen_string_literal: true
1
2
 
2
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "traker/version"
5
+ require 'traker/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = "traker"
8
+ spec.name = 'traker'
8
9
  spec.version = Traker::VERSION
9
- spec.authors = ["pavloo"]
10
- spec.email = ["posadchiy@gmail.com"]
10
+ spec.authors = ['pavloo']
11
+ spec.email = ['posadchiy@gmail.com']
11
12
 
12
- spec.summary = %q{Rake tasks tracker, Traker}
13
- spec.description = %q{Track rake tasks in your Rails application.}
14
- spec.homepage = "https://github.com/pavloo/traker"
15
- spec.license = "MIT"
13
+ spec.summary = 'Rake tasks tracker, Traker'
14
+ spec.description = 'Track rake tasks in your Rails application.'
15
+ spec.homepage = 'https://github.com/pavloo/traker'
16
+ spec.license = 'MIT'
16
17
 
17
18
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
19
  # to allow pushing to a single host or delete this section to allow pushing to any host.
@@ -29,17 +30,18 @@ Gem::Specification.new do |spec|
29
30
 
30
31
  # Specify which files should be added to the gem when it is released.
31
32
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
32
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
33
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
33
34
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
34
35
  end
35
- spec.bindir = "exe"
36
+ spec.bindir = 'exe'
36
37
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
37
- spec.require_paths = ["lib"]
38
+ spec.require_paths = ['lib']
39
+ spec.required_ruby_version = '>=2.4'
38
40
 
39
- spec.add_development_dependency "bundler", "~> 2.0"
40
- spec.add_development_dependency "rake", "~> 10.0"
41
- spec.add_development_dependency "rspec", "~> 3.0"
41
+ spec.add_development_dependency 'bundler', '~> 2.0'
42
+ spec.add_development_dependency 'rake', '~> 12.3.3'
43
+ spec.add_development_dependency 'rspec', '~> 3.0'
42
44
 
43
- spec.add_development_dependency "activerecord", ">= 4.1"
45
+ spec.add_development_dependency 'activerecord', '>= 4.1'
44
46
  spec.add_development_dependency 'rails', '~> 5.0'
45
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pavloo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-27 00:00:00.000000000 Z
11
+ date: 2020-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 12.3.3
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -83,25 +83,34 @@ dependencies:
83
83
  description: Track rake tasks in your Rails application.
84
84
  email:
85
85
  - posadchiy@gmail.com
86
- executables: []
86
+ executables:
87
+ - traker
87
88
  extensions: []
88
89
  extra_rdoc_files: []
89
90
  files:
90
91
  - ".gitignore"
91
92
  - ".rspec"
93
+ - ".rubocop.yml"
92
94
  - ".travis.yml"
93
95
  - CODE_OF_CONDUCT.md
94
96
  - Gemfile
97
+ - Gemfile.lock
95
98
  - LICENSE.txt
96
99
  - README.md
97
100
  - Rakefile
98
101
  - bin/console
99
102
  - bin/setup
103
+ - exe/traker
100
104
  - lib/generators/traker/models_generator.rb
101
- - lib/generators/traker/templates/migration.rb
105
+ - lib/generators/traker/rspec_generator.rb
106
+ - lib/generators/traker/templates/migrations/20200930011917_add_traker_tasks.rb
107
+ - lib/generators/traker/templates/spec/lib/traker_spec.rb
102
108
  - lib/traker.rb
109
+ - lib/traker/cli.rb
110
+ - lib/traker/config.rb
103
111
  - lib/traker/instrumenter.rb
104
112
  - lib/traker/override.rake
113
+ - lib/traker/service.rb
105
114
  - lib/traker/task.rb
106
115
  - lib/traker/version.rb
107
116
  - traker.gemspec
@@ -117,7 +126,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
126
  requirements:
118
127
  - - ">="
119
128
  - !ruby/object:Gem::Version
120
- version: '0'
129
+ version: '2.4'
121
130
  required_rubygems_version: !ruby/object:Gem::Requirement
122
131
  requirements:
123
132
  - - ">="