planter 0.2.0 → 0.3.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: 85e12676f9e3c992f26939f709bb8ff9785a75cfbf13a5279075e2e84ae2adc9
4
- data.tar.gz: 130e7dd566d20b09dcfb38c4d62c76d872b169b459f68eff0a2d8715c13f320a
3
+ metadata.gz: e17464950e5c9388e88fa5c7567920ec3e71543f67440d8ac2ae61ff5d058f1e
4
+ data.tar.gz: a5ceb84a52cdf6f04f34283ab1fb96dcffbd3c59bf0e84a7926ee7c80ef8a6ae
5
5
  SHA512:
6
- metadata.gz: 535f7b4909895f4f2ed6219919cbd620b3f283daecd693457ce52dfa7ec3d8281d49d7487dc530ced549a52d55719759e3f0975efa833763475fe03a1b863171
7
- data.tar.gz: 36df7d4e59476de2f1526b66e1571d70221ff77204eac23e2d16408ddf7ca6bfcdacbfb351e0a9f4323ca2439c407afb5ecbd3a88725493d62ef8c0ac594f1f4
6
+ metadata.gz: 21a073b1fdbbdad594f328ac020382d72fc48d5ceb08103727748eab37b0138ed88e4f07d0e3a40a4dc2d881e7cefce94ef8311fc16d3e87c747e23ca4a229db
7
+ data.tar.gz: 5b45a2c739c47c184b2fc9a3f1dc1b2b766122565e780b77a162a9a5767fca665b972f4f62af88182f51b02a4c031239d1019788ce93462275f80e950d13b420
data/Rakefile CHANGED
@@ -1,18 +1,65 @@
1
- require 'bundler/setup'
2
- require 'bundler/gem_tasks'
3
- require 'rake/testtask'
4
- require 'rdoc/task'
1
+ require "bundler/setup"
2
+ require "bundler/gem_tasks"
3
+ require "rake/testtask"
4
+ require "rdoc/task"
5
+ require "standard/rake"
5
6
 
6
7
  Rake::TestTask.new(:test) do |t|
7
- t.libs << 'test'
8
- t.pattern = 'test/**/*_test.rb'
8
+ t.libs << "test"
9
+ t.pattern = "test/**/*_test.rb"
9
10
  t.verbose = false
10
11
  end
11
12
 
12
13
  RDoc::Task.new do |rdoc|
13
- rdoc.main = 'README.md'
14
- rdoc.rdoc_dir = 'docs'
15
- rdoc.rdoc_files.include('README.md', 'lib/**/*.rb')
14
+ rdoc.main = "README.md"
15
+ rdoc.rdoc_dir = "docs"
16
+ rdoc.rdoc_files.include("README.md", "lib/**/*.rb")
16
17
  end
17
18
 
18
19
  task default: :test
20
+
21
+ namespace :version do
22
+ desc "Print the current version from the version.rb file"
23
+ task :current do
24
+ puts Planter::VERSION
25
+ end
26
+
27
+ namespace :increment do
28
+ desc "Increment the version's PATCH level"
29
+ task :patch do
30
+ File.join(__dir__, "lib", "planter", "version.rb").then do |version_file|
31
+ File.write(
32
+ version_file,
33
+ File.read(version_file).sub(/(PATCH\s=\s)(\d+)/) { "#{$1}#{$2.next}" }
34
+ )
35
+ end
36
+ system("bundle lock")
37
+ end
38
+ desc "Increment the version's MINOR level"
39
+ task :minor do
40
+ File.join(__dir__, "lib", "planter", "version.rb").then do |version_file|
41
+ File.write(
42
+ version_file,
43
+ File.read(version_file)
44
+ .sub(/(PATCH\s=\s)(\d+)/) { "#{$1}0" }
45
+ .sub(/(MINOR\s=\s)(\d+)/) { "#{$1}#{$2.next}" }
46
+ )
47
+ end
48
+ system("bundle lock")
49
+ end
50
+ desc "Increment the version's MAJOR level"
51
+ task :major do
52
+ File.join(__dir__, "lib", "planter", "version.rb").then do |version_file|
53
+ File.write(
54
+ version_file,
55
+ File.read(version_file)
56
+ .sub(/(PATCH\s=\s)(\d+)/) { "#{$1}0" }
57
+ .sub(/(MINOR\s=\s)(\d+)/) { "#{$1}0" }
58
+ .sub(/(MAJOR\s=\s)(\d+)/) { "#{$1}#{$2.next}" }
59
+ )
60
+ end
61
+ system("bundle lock")
62
+ end
63
+ end
64
+ end
65
+
@@ -1,10 +1,10 @@
1
1
  module Planter
2
2
  module Generators
3
3
  class InitializerGenerator < Rails::Generators::Base
4
- desc 'Genrates an initializer for Planter at config/initializers/planter.rb'
4
+ desc "Genrates an initializer for Planter at config/initializers/planter.rb"
5
5
 
6
6
  def create_initializer_file
7
- create_file 'config/initializers/planter.rb', <<~EOF
7
+ create_file "config/initializers/planter.rb", <<~EOF
8
8
  require 'planter'
9
9
 
10
10
  Planter.configure do |config|
@@ -6,7 +6,7 @@ module Planter
6
6
  desc "Creates a seeder file at #{::Planter.config.seeders_directory}"
7
7
 
8
8
  def generate_seeders
9
- seeder == 'ALL' ? tables.each { |t| generate(t) } : generate(seeder)
9
+ (seeder == "ALL") ? tables.each { |t| generate(t) } : generate(seeder)
10
10
  end
11
11
 
12
12
  private
@@ -25,7 +25,7 @@ module Planter
25
25
  end
26
26
  EOF
27
27
 
28
- inject_into_file 'config/initializers/planter.rb',
28
+ inject_into_file "config/initializers/planter.rb",
29
29
  " #{seeder}\n",
30
30
  before: /^\s*\]\s*$/
31
31
  end
@@ -55,8 +55,8 @@ module Planter
55
55
  # Create a new instance of the config.
56
56
  def initialize
57
57
  @quiet = false
58
- @seeders_directory = ::File.join('db', 'seeds')
59
- @csv_files_directory = ::File.join('db', 'seed_files')
58
+ @seeders_directory = ::File.join("db", "seeds")
59
+ @csv_files_directory = ::File.join("db", "seed_files")
60
60
  end
61
61
  end
62
62
  end
@@ -4,10 +4,10 @@ module Planter
4
4
  class Railtie < ::Rails::Railtie # :nodoc:
5
5
  rake_tasks do
6
6
  load File.join(
7
- File.expand_path(File.dirname(__FILE__)),
8
- '..',
9
- 'tasks',
10
- 'planter_tasks.rake'
7
+ __dir__,
8
+ "..",
9
+ "tasks",
10
+ "planter_tasks.rake"
11
11
  )
12
12
  end
13
13
  end
@@ -219,14 +219,14 @@ module Planter
219
219
  erb_trim_mode: nil
220
220
  )
221
221
  unless SEEDING_METHODS.include?(seed_method.intern)
222
- raise ArgumentError, "Method must be: #{SEEDING_METHODS.join(', ')}"
222
+ raise ArgumentError, "Method must be: #{SEEDING_METHODS.join(", ")}"
223
223
  end
224
224
 
225
225
  self.seed_method = seed_method
226
226
  self.number_of_records = number_of_records
227
- self.model = model || to_s.delete_suffix('Seeder').singularize
227
+ self.model = model || to_s.delete_suffix("Seeder").singularize
228
228
  self.parent = parent
229
- self.csv_name = csv_name || to_s.delete_suffix('Seeder').underscore
229
+ self.csv_name = csv_name || to_s.delete_suffix("Seeder").underscore
230
230
  self.erb_trim_mode = erb_trim_mode || Planter.config.erb_trim_mode
231
231
  self.unique_columns =
232
232
  case unique_columns
@@ -275,16 +275,16 @@ module Planter
275
275
  when :csv
276
276
  raise "Couldn't find csv for #{model}" unless full_csv_name
277
277
  when :data_array
278
- raise 'data is not defined in the seeder' if public_send(:data).nil?
278
+ raise "data is not defined in the seeder" if public_send(:data).nil?
279
279
  else
280
- raise 'seeding_method not defined in the seeder'
280
+ raise "seeding_method not defined in the seeder"
281
281
  end
282
282
  end
283
283
 
284
284
  def apply_transformations(record)
285
285
  return record if public_send(:transformations).nil?
286
286
 
287
- Hash[record.map { |field, value| map_record(field, value, record) }]
287
+ record.map { |field, value| map_record(field, value, record) }.to_h
288
288
  end
289
289
 
290
290
  def map_record(field, value, record)
@@ -338,7 +338,7 @@ module Planter
338
338
 
339
339
  def extract_data_from_csv
340
340
  contents = ::File.read(full_csv_name)
341
- if full_csv_name.include?('.erb')
341
+ if full_csv_name.include?(".erb")
342
342
  contents = ERB.new(contents, trim_mode: erb_trim_mode).result(binding)
343
343
  end
344
344
 
@@ -15,7 +15,7 @@ module Planter
15
15
  # Minor version.
16
16
  #
17
17
  # @return [Integer]
18
- MINOR = 2
18
+ MINOR = 3
19
19
 
20
20
  ##
21
21
  # Patch version.
@@ -38,7 +38,7 @@ module Planter
38
38
  #
39
39
  # @return [String]
40
40
  def to_s
41
- to_a.join('.')
41
+ to_a.join(".")
42
42
  end
43
43
 
44
44
  ##
@@ -46,7 +46,7 @@ module Planter
46
46
  #
47
47
  # @return [Hash]
48
48
  def to_h
49
- Hash[%i[major minor patch].zip(to_a)]
49
+ %i[major minor patch].zip(to_a).to_h
50
50
  end
51
51
  end
52
52
 
data/lib/planter.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'csv'
4
- require 'erb'
5
- require 'planter/version'
6
- require 'planter/railtie'
7
- require 'planter/config'
8
- require 'planter/seeder'
3
+ require "csv"
4
+ require "erb"
5
+ require "planter/version"
6
+ require "planter/railtie"
7
+ require "planter/config"
8
+ require "planter/seeder"
9
9
 
10
10
  ##
11
11
  # The main module for the plugin. It nicely wraps the +Planter::Config+ class
@@ -68,8 +68,8 @@ module Planter
68
68
  # # db/seeds.rb, assuming your +configure+ block is in an initializer.
69
69
  # Planter.seed
70
70
  def seed
71
- seeders = ENV['SEEDERS']&.split(',') || config.seeders&.map(&:to_s)
72
- raise RuntimeError, 'No seeders specified' if seeders.blank?
71
+ seeders = ENV["SEEDERS"]&.split(",") || config.seeders&.map(&:to_s)
72
+ raise "No seeders specified" if seeders.blank?
73
73
 
74
74
  seeders.each do |s|
75
75
  require Rails.root.join(config.seeders_directory, "#{s}_seeder.rb").to_s
@@ -1,12 +1,12 @@
1
- require 'planter'
1
+ require "planter"
2
2
 
3
3
  namespace :planter do
4
- desc 'Seed application. Use this to keep planter separate from db:seed'
4
+ desc "Seed application. Use this to keep planter separate from db:seed"
5
5
  task seed: :environment do
6
6
  Planter.configure do |config|
7
7
  # NOTE: the seed method already looks for ENV['SEEDERS']
8
- ENV['SEEDERS_DIRECTORY'] && config.seeders_directory = ENV['SEEDERS_DIRECTORY']
9
- ENV['CSV_FILES_DIRECTORY'] && config.csv_files_directory = ENV['CSV_FILES_DIRECTORY']
8
+ ENV["SEEDERS_DIRECTORY"] && config.seeders_directory = ENV["SEEDERS_DIRECTORY"]
9
+ ENV["CSV_FILES_DIRECTORY"] && config.csv_files_directory = ENV["CSV_FILES_DIRECTORY"]
10
10
  end
11
11
  Planter.seed
12
12
  end
metadata CHANGED
@@ -1,29 +1,62 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: planter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Gray
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-05-02 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: csv
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: rails
15
28
  requirement: !ruby/object:Gem::Requirement
16
29
  requirements:
17
- - - "~>"
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 8.1.3
33
+ - - "<"
18
34
  - !ruby/object:Gem::Version
19
- version: 7.0.2.3
35
+ version: '9.0'
20
36
  type: :runtime
21
37
  prerelease: false
22
38
  version_requirements: !ruby/object:Gem::Requirement
23
39
  requirements:
24
- - - "~>"
40
+ - - ">="
25
41
  - !ruby/object:Gem::Version
26
- version: 7.0.2.3
42
+ version: 8.1.3
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '9.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: standard
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ type: :development
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
27
60
  description: Create a seeder for each table in your database, and easily seed from
28
61
  CSV or custom methods
29
62
  email:
@@ -51,7 +84,6 @@ metadata:
51
84
  homepage_uri: https://github.com/evanthegrayt/planter
52
85
  source_code_uri: https://github.com/evanthegrayt/planter
53
86
  documentation_uri: https://evanthegrayt.github.io/planter/
54
- post_install_message:
55
87
  rdoc_options: []
56
88
  require_paths:
57
89
  - lib
@@ -59,15 +91,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
91
  requirements:
60
92
  - - ">="
61
93
  - !ruby/object:Gem::Version
62
- version: '0'
94
+ version: 3.2.0
63
95
  required_rubygems_version: !ruby/object:Gem::Requirement
64
96
  requirements:
65
97
  - - ">="
66
98
  - !ruby/object:Gem::Version
67
99
  version: '0'
68
100
  requirements: []
69
- rubygems_version: 3.2.33
70
- signing_key:
101
+ rubygems_version: 4.0.10
71
102
  specification_version: 4
72
103
  summary: Framework for seeding rails applications.
73
104
  test_files: []