avo_upgrade 0.1.0 → 0.1.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
2
  SHA256:
3
- metadata.gz: a7c4c205f4c99041d674a65cd96474518f4694c14b63134e09f33c35b54f9308
4
- data.tar.gz: a8aeb29143b89d99422223c63fe59a9e8773663b5eea19a6966b6dd85a147306
3
+ metadata.gz: 0b377cc79f062c3f76ce66868c226c3ff5edf958d541a92cc2a1eaac5dfb712b
4
+ data.tar.gz: d40703c343bf2fae90d0c77551c2d651e921a141f191e70b46f1a18ec5b52fae
5
5
  SHA512:
6
- metadata.gz: 44266214d009dd85c00aeff57aa83b981b414a05eab37ac9d048e2b3193d62d418fc00465efbed077638a390f9c400524b6e6a7a581effdb408e3dde047f3926
7
- data.tar.gz: a554b83067e15a6992e01a88a2e9b9c5eb54426d8634da5d0865db13abd1ec92e3a3aeea6093e35732f5c7f16df8a15e13d1e88c26f28a1704b29294b6e1ad36
6
+ metadata.gz: f7a7d66ae9641d85962aa9799471e8a73b622f1967dfdb2b173ad1d49415c22d079c009c1591676376dc632654b67d6642fea4d77fa7efd9c987a1b55be121e4
7
+ data.tar.gz: 97489621617368df35a57d370672075ae9dcf71667e9af212df61ec97bc6ca1f5434b3d9f9f27317ab81cbd20854be4008f14bc56c391c1dec1e9294d536a49b
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # AvoUpgrade
2
- Short description and motivation.
2
+
3
+ Tiny upgrade helper for https://github.com/avo-hq/avo
3
4
 
4
5
  ## Usage
5
- How to use my plugin.
6
+ For now, check out [this guide](https://docs.avohq.io/3.0/upgrade.html#use-the-automatic-upgrade-tool).
6
7
 
7
8
  ## Installation
8
9
  Add this line to your application's Gemfile:
@@ -5,7 +5,19 @@ module AvoUpgrade
5
5
  replace_in_filename "_resource", "", path: resources_path
6
6
 
7
7
  # Replace all "Avo::Dashboards::" with "AvoDashboards::" in all files
8
- replace_text_on(avo_global_files, { "Avo::Dashboards::" => "AvoDashboards::" }, exact_match: false)
8
+ # replace_text_on(avo_global_files, { "Avo::Dashboards::" => "Avo::Dashboards::" }, exact_match: false)
9
+
10
+ replace_text_on(
11
+ avo_global_files,
12
+ {
13
+ "Avo::Dashboards::BaseCard" => "Avo::Cards::BaseCard",
14
+ "Avo::Dashboards::BaseDivider" => "Avo::Cards::BaseDivider",
15
+ "Avo::Dashboards::ChartkickCard" => "Avo::Cards::ChartkickCard",
16
+ "Avo::Dashboards::MetricCard" => "Avo::Cards::MetricCard",
17
+ "Avo::Dashboards::PartialCard" => "Avo::Cards::PartialCard",
18
+ },
19
+ exact_match: false
20
+ )
9
21
 
10
22
  # Create a hash with old class names as keys and new class names as values
11
23
  # Example: { "Avo::Resources::UserResource" => "Avo::Resources::User" }
@@ -41,9 +53,12 @@ module AvoUpgrade
41
53
  "|model, resource|",
42
54
  "|model, resource, view|",
43
55
  "|model, resource, view, field|",
56
+ "(model:, resource:, view:, field:)",
44
57
  "|model, &args|"
45
58
  ]
46
- remove_text_on(files_from(resources_path) + files_from(actions_path) + files_from(filters_path), remove_text)
59
+ remove_block_arg_on(files_from(resources_path) + files_from(actions_path) + files_from(filters_path), remove_text)
60
+
61
+ remove_config("config.tabs_style")
47
62
 
48
63
  print "\n\nUpgrade to Avo 3.0 completed! 🚀\n\n"
49
64
  end
@@ -60,18 +75,20 @@ module AvoUpgrade
60
75
  # Print a summary of the upgrade process
61
76
  puts "\n\nSummary of changes:\n" +
62
77
  "---------------------\n" +
63
- "Renaming Avo::Dashboards:: to AvoDashboards::\n" +
78
+ # "Renaming Avo::Dashboards:: to AvoDashboards::\n" +
64
79
  "Renaming resources naming from ClassNameResource to Avo::Resources::ClassName\n" +
65
80
  "Renaming actions naming from ClassName to Avo::Actions::ClassName\n" +
66
81
  "Renaming filters naming from ClassName to Avo::Filters::ClassName\n" +
67
82
  "Renaming resource tools naming from ClassName to Avo::ResourceTools::ClassName\n" +
68
83
  "Renaming dashboards naming from ClassName to Avo::Dashboards::ClassName\n" +
69
84
  "Renaming cards naming from ClassName to Avo::Cards::ClassName\n" +
85
+ "Changing cards namespace from Dashboards to Cards\n" +
70
86
  "Renaming 'resolve_query_scope' method in resource files to 'index_query'\n" +
71
87
  "Removing unused arguments from blocks in resource, action and filter files\n" +
72
88
  "Updating resource and action files to use 'record' instead of 'model'\n" +
73
89
  "Updating resource files to use 'query' instead of 'model_class' and 'scope'\n" +
74
90
  "Renaming resource files to remove the '_resource' suffix\n" +
91
+ "Removing the `config.tabs_style` from the avo initializer\n" +
75
92
  "\n" +
76
93
  " - There are 2 ways of renaming the resource files:\n" +
77
94
  " 1. Using `git mv` command, that automaticly stage the changes and makes the commit review process easier.\n" +
@@ -66,6 +66,17 @@ module AvoUpgrade
66
66
  replace_text_on(files, text_array.map { |text| [text, ""] }.to_h, exact_match: false)
67
67
  end
68
68
 
69
+ def remove_block_arg_on(files, text_array)
70
+ match_array = text_array.map do |text|
71
+ if proc_arg?(text)
72
+ proc_arg_match_params(text)
73
+ else
74
+ lambda_arg_match_params(text)
75
+ end
76
+ end
77
+ replace_text_on(files, match_array.to_h, exact_match: false)
78
+ end
79
+
69
80
  def replace_in_filename(old_text, new_text, path:)
70
81
  Dir.glob("#{path}/*.rb").each do |file_path|
71
82
  `#{@mv_cmd == "1" ? "git mv" : "mv"} #{file_path} #{file_path.gsub(/#{old_text}/, new_text)}`
@@ -76,5 +87,46 @@ module AvoUpgrade
76
87
  print "\nPress ENTER to continue."
77
88
  gets.chomp
78
89
  end
90
+
91
+ # Receives the code at the beginning of a line and deletes the line.
92
+ def remove_config(config)
93
+ avo_config_path = File.join Rails.root.join("config", "initializers", "avo.rb")
94
+
95
+ # Read the content of the file into an array of lines
96
+ lines = File.readlines(avo_config_path)
97
+
98
+ # Open the file for writing
99
+ File.open(avo_config_path, "w") do |file|
100
+ lines.each do |line|
101
+ # Check if the line starts with the given config code
102
+ if line.strip.start_with?(config)
103
+ # Do nothing, skip the line
104
+ else
105
+ # Write the line to the file
106
+ file.puts(line)
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ private
113
+
114
+ def proc_arg?(text)
115
+ /\|/.match?(text)
116
+ end
117
+
118
+ def lambda_arg_match_params(proc_arg_text)
119
+ [
120
+ /->\s*#{Regexp.escape(proc_arg_text)}/,
121
+ '->'
122
+ ]
123
+ end
124
+
125
+ def proc_arg_match_params(lambda_arg_text)
126
+ [
127
+ /\b#{Regexp.escape(lambda_arg_text)}\b/,
128
+ ''
129
+ ]
130
+ end
79
131
  end
80
132
  end
@@ -1,3 +1,3 @@
1
1
  module AvoUpgrade
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avo_upgrade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Marin
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-11 00:00:00.000000000 Z
11
+ date: 2023-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -61,7 +61,7 @@ metadata:
61
61
  homepage_uri: https://avohq.io
62
62
  source_code_uri: https://github.com/avo-hq/avo_upgrade
63
63
  changelog_uri: https://github.com/avo-hq/avo_upgrade
64
- post_install_message:
64
+ post_install_message:
65
65
  rdoc_options: []
66
66
  require_paths:
67
67
  - lib
@@ -76,8 +76,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  requirements: []
79
- rubygems_version: 3.4.2
80
- signing_key:
79
+ rubygems_version: 3.3.3
80
+ signing_key:
81
81
  specification_version: 4
82
82
  summary: The friendly upgrade helper for Avo.
83
83
  test_files: []