factory_bot_generator 0.2.2 → 0.3.1

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
- SHA1:
3
- metadata.gz: d35f7904d39b93f2137dffb4f59e0f1e5d8e5eb3
4
- data.tar.gz: 890f4829b8464617c2a74e679129073ccc091711
2
+ SHA256:
3
+ metadata.gz: 51170c014f870f284d7f85dacdced3c3956441ce33dd6029ca3662d077222412
4
+ data.tar.gz: d81bf14ad26b054044375eedc9b6497e6bb284640b16cf9f749d0262cdf93fca
5
5
  SHA512:
6
- metadata.gz: 97715ca6ba4975687d7c98c11bf60db9844a2efe42716967efa2d45f98409a937ccf17c548da5a8546ff16690e6e6dacb76a0d55dc90d53c109eb207b3d72bee
7
- data.tar.gz: f5b3f3cad2838de38879c3662264ec52aa4b48a35bcfb5a7ed96e25ae954635325be6d70bd8cb71f635692a736929387d9b16b6c40af858602158766cfd72de5
6
+ metadata.gz: 260db77154a82128896b35ae4f2d14f5bfb45fae7335da574046052579ed15d31377bed2d0ad3f48d81f1b35e5e3f1b42af0796d9fecc83dd691e672002b9483
7
+ data.tar.gz: 3eb7b803237403d6e61e04bf12337679c105d5ed1c19d84d59e30afeea04129a5e7011d75b3496d3a9e9832cfacef010ac9c30e36b88dcf1da3d974029aca120
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- factory_bot_generator (0.2.2)
4
+ factory_bot_generator (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -29,15 +29,12 @@ puts FactoryBotGenerator::Base.render(user, { exclude: [:password, :last_name, :
29
29
 
30
30
  ```
31
31
 
32
- ## Development
33
-
34
- 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.
35
-
36
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
37
-
38
- ## Contributing
32
+ ## Deploy
33
+ ```
34
+ gem build factory_bot_generator
35
+ gem push factory_bot_generator-0.3.0.gem
36
+ ```
39
37
 
40
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/factory_bot_generator.
41
38
 
42
39
  ## License
43
40
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FactoryBotGenerator
4
- VERSION = '0.2.2'
4
+ VERSION = '0.3.1'
5
5
  end
@@ -1,8 +1,8 @@
1
1
  FactoryBot.define do
2
2
  factory :<%= name %>, class: <%= record.class %> do
3
- <% columns.each do |column| %>
4
- <% quote = FactoryBotGenerator::Base::QUOTE_AROUND_VALUE_TYPES.include?(record.class.columns_hash[column].type) %>
5
- <%= "%-#{indent}s" % column %> <%== "'" if quote %><%== record.public_send(column) %><%== "'" if quote %>
6
- <% end %>
3
+ <%- columns.each do |column| -%>
4
+ <%- quote = FactoryBotGenerator::Base::QUOTE_AROUND_VALUE_TYPES.include?(record.class.columns_hash[column].type) -%>
5
+ <%= "#{ "%-#{indent}s" % column } { #{ "'" if quote }#{ record.public_send(column) }#{ "'" if quote } }" %>
6
+ <%- end -%>
7
7
  end
8
8
  end
@@ -6,28 +6,31 @@ module FactoryBotGenerator
6
6
  class Base
7
7
  QUOTE_AROUND_VALUE_TYPES = %i[string date datetime text].freeze
8
8
  EXCLUDE_COLUMNS = %w[created_at updated_at].freeze
9
+ TEMPLATE_PATH = File.join(File.dirname(__FILE__), 'factory_bot_generator.erb')
10
+ TEMPLATE = File.read(TEMPLATE_PATH)
9
11
 
10
12
  def self.render(record, options = {})
11
13
  new(record, options).render
12
14
  end
13
15
 
14
- attr_reader :record, :options
15
-
16
16
  def initialize(record, options)
17
17
  @record = record
18
18
  @options = options
19
19
  end
20
20
 
21
+ attr_reader :record, :options
22
+
21
23
  def render
22
- ActionView::Base.new(File.dirname(__FILE__)).render(
23
- file: 'factory_bot_generator.erb',
24
- locals: {
25
- name: name,
26
- columns: columns,
27
- record: record,
28
- indent: indent
29
- }
30
- )
24
+ render_long + "\n" + render_short
25
+ end
26
+
27
+ def render_long
28
+ ERB.new(TEMPLATE, trim_mode: '-').result(binding)
29
+ end
30
+
31
+ def render_short
32
+ columns.reject! { record.public_send(_1).blank? }
33
+ ERB.new(TEMPLATE, trim_mode: '-').result(binding)
31
34
  end
32
35
 
33
36
  private
@@ -41,11 +44,11 @@ module FactoryBotGenerator
41
44
  end
42
45
 
43
46
  def indent
44
- @indent ||= columns.max_by(&:size).size
47
+ @indent ||= columns.max_by(&:size).size + 1
45
48
  end
46
49
 
47
50
  def record_class
48
- record.class
51
+ @record_class ||= record.class
49
52
  end
50
53
 
51
54
  def exclude_columns
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_bot_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serge Kislak
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-10 00:00:00.000000000 Z
11
+ date: 2024-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundle-audit
@@ -121,7 +121,7 @@ homepage: ''
121
121
  licenses:
122
122
  - MIT
123
123
  metadata: {}
124
- post_install_message:
124
+ post_install_message:
125
125
  rdoc_options: []
126
126
  require_paths:
127
127
  - lib
@@ -136,9 +136,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  requirements: []
139
- rubyforge_project:
140
- rubygems_version: 2.6.8
141
- signing_key:
139
+ rubygems_version: 3.3.26
140
+ signing_key:
142
141
  specification_version: 4
143
142
  summary: Render FactoryBot factory existing object.
144
143
  test_files: []