engine_cart 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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