engine_cart 2.2.1 → 2.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: 981d524e320b0f40c2e6b0ce8f99fe0d0b7452cc79024e6531f7cb4019a90a78
4
- data.tar.gz: f283a064bc04ba5dd42a999a2d406af597ef880fb9d9866ae38f3fb4c6326e53
3
+ metadata.gz: b7b6269a9d1786f65843adae04c06259b1fa7a7e9cc90ff09f080e8e41e4679e
4
+ data.tar.gz: 88aeef4a96249d2bd2e9fcda5e082e35ef4a04e5515b7b534929257638285a34
5
5
  SHA512:
6
- metadata.gz: 450ca9319e6a6cfadec4f475dad9e8db5c291d1d2d8147a4ab31d9a6cc686ae7ebe3adcb233c0ae880ddc3e414fb24c46d99f16cdf8e61a42b9e3dd5fc2701bb
7
- data.tar.gz: 63de32381b94d210837dd06a04b3d9f6f5bcaadb9ee22ae5b8638a0bca1cdaca492d96ea6a6b4e90f38f0f9397f20f0a28963040a2e8fcd350de6741b9f5f7bc
6
+ metadata.gz: e2113472ebefab8c0903fcaef60a2a8963a08d3e5cf1385757e7b317fac368d6f3aa81b5f07928a141a0de336cea6b73323293da9e9fc6a580bd08e974a8e995
7
+ data.tar.gz: ae28d1340af3fcbb475c0d29863725b2ff1fe8135b34693fdc7673f196d5a33e54deef10858356d0627db44dba01d4cf8fd9d97755719eb2fef47a892e38e577
@@ -5,4 +5,4 @@ rvm:
5
5
  - 2.5.3
6
6
 
7
7
  env:
8
- - "RAILS_VERSION=5.2.2.1"
8
+ - "RAILS_VERSION=5.2.3"
data/Rakefile CHANGED
@@ -10,14 +10,20 @@ end
10
10
 
11
11
  task :generate_test_gem => ['engine_cart:setup'] do
12
12
  system("rm -rf .internal_test_gem")
13
- gem 'rails'
13
+ gem 'rails', '5.2.3'
14
14
 
15
15
  rails_path = Gem.bin_path('railties', 'rails')
16
+ puts rails_path
16
17
 
17
- Bundler.with_clean_env do
18
- system("#{rails_path} plugin new internal_test_gem")
19
- end
20
- system("mv internal_test_gem .internal_test_gem")
18
+ require "rails/generators"
19
+ require "rails/generators/rails/plugin/plugin_generator"
20
+
21
+ pwd = Dir.pwd
22
+ Rails::Generators::PluginGenerator.start ['internal_test_gem']
23
+
24
+ Dir.chdir(pwd)
25
+
26
+ system("mv #{Dir.pwd}/internal_test_gem #{Dir.pwd}/.internal_test_gem")
21
27
 
22
28
  IO.write(".internal_test_gem/internal_test_gem.gemspec", File.open(".internal_test_gem/internal_test_gem.gemspec") {|f| f.read.gsub(/FIXME/, "DONTCARE")})
23
29
  IO.write(".internal_test_gem/internal_test_gem.gemspec", File.open(".internal_test_gem/internal_test_gem.gemspec") {|f| f.read.gsub(/TODO/, "DONTCARE")})
@@ -25,10 +25,32 @@ module EngineCart
25
25
  end
26
26
 
27
27
  def self.fingerprint_current?
28
- return false unless File.exist? stored_fingerprint_file
28
+
29
+ unless File.exist? stored_fingerprint_file
30
+ STDERR.puts "No finger print file found: #{stored_fingerprint_file}" if debug?
31
+ return false
32
+ end
29
33
  content = File.read(stored_fingerprint_file)
30
34
  data = JSON.parse(content, symbolize_names: true)
31
- data == fingerprint
35
+ calculated = fingerprint
36
+
37
+ return true if data == calculated
38
+ if debug?
39
+ STDERR.puts "Fingerprint mismatch:\n\n"
40
+
41
+ data.keys.each do |key|
42
+ case data[key]
43
+ when Array
44
+ data[key].zip(calculated[key]).each do |(stored, calc)|
45
+ STDERR.puts("#{key}:\nstored: #{stored}\ncalculate: #{calc}") if stored != calc
46
+ end
47
+ else
48
+ STDERR.puts("#{key}:\nstored: #{data[key]}\ncalculate: #{calculated[key]}") if data[key] != calculated[key]
49
+ end
50
+ end
51
+ end
52
+
53
+ false
32
54
  rescue
33
55
  false
34
56
  end
@@ -69,7 +91,7 @@ module EngineCart
69
91
  end
70
92
 
71
93
  def self.env_fingerprint
72
- { 'RUBY_DESCRIPTION' => RUBY_DESCRIPTION, 'BUNDLE_GEMFILE' => Bundler.default_gemfile.to_s }.reject { |k, v| v.nil? || v.empty? }.to_s
94
+ { RUBY_DESCRIPTION: RUBY_DESCRIPTION, BUNDLE_GEMFILE: Bundler.default_gemfile.to_s }.reject { |k, v| v.nil? || v.empty? }
73
95
  end
74
96
 
75
97
  def self.configuration(options = {})
@@ -92,4 +114,12 @@ module EngineCart
92
114
  Bundler.ui.warn EngineCart.gemfile_stanza_text
93
115
  end
94
116
  end
117
+
118
+ def self.debug=(debug)
119
+ @debug = debug
120
+ end
121
+
122
+ def self.debug?
123
+ @debug
124
+ end
95
125
  end
@@ -36,7 +36,18 @@ namespace :engine_cart do
36
36
 
37
37
  # Using the Rails generator directly, instead of shelling out, to
38
38
  # ensure we use the right version of Rails.
39
- Rails::Generators::AppGenerator.start(['internal', '--skip_spring', *EngineCart.rails_options, ("-m #{EngineCart.template}" if EngineCart.template)].compact)
39
+ Rails::Generators::AppGenerator.start([
40
+ 'internal',
41
+ '--skip-git',
42
+ '--skip-keeps',
43
+ '--skip_spring',
44
+ '--skip-bootsnap',
45
+ '--skip-listen',
46
+ '--skip-bundle',
47
+ '--skip-test',
48
+ *EngineCart.rails_options,
49
+ ("-m #{EngineCart.template}" if EngineCart.template)
50
+ ].compact)
40
51
  end
41
52
  exit 0
42
53
  end
@@ -85,6 +96,15 @@ namespace :engine_cart do
85
96
  end
86
97
  end
87
98
 
99
+ desc 'find out if the generated app needs to be rebuilt'
100
+ task :test => [:setup] do
101
+ EngineCart.debug = true
102
+ if EngineCart.fingerprint_expired?
103
+ puts "Expired!"
104
+ exit 1
105
+ end
106
+ end
107
+
88
108
  desc "Create the test rails app"
89
109
  task :generate => [:setup] do
90
110
  if EngineCart.fingerprint_expired?
@@ -1,3 +1,3 @@
1
1
  module EngineCart
2
- VERSION = '2.2.1'
2
+ VERSION = '2.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engine_cart
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-27 00:00:00.000000000 Z
11
+ date: 2019-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails