discourse_theme 0.7.2 → 0.7.4

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: ffe67e68e2ee480c68cb8ce8031c9a09bfdd16025a01ba873eebca2228c821fe
4
- data.tar.gz: 5094e13dc147c656a15b9b0d9ad790daf54c8f8ff2501f81f540cd0cfb2d95d2
3
+ metadata.gz: 47b628418ce66dfc84cec377019bb57e6ab82a82d681acda24d5d69c4a20f64c
4
+ data.tar.gz: 7bc2abbb64c101c59dc282f8cd24d340ca22a08ed805b4bd82d392f3a4358007
5
5
  SHA512:
6
- metadata.gz: 4afb46c9e254275d537990d9e91240aa4269def484c0c5be5db1963092643b5e2b24bef42bd5cd1ace7dd3d402b84fb36e6e98e2addc37d3eda281fbb32d9d54
7
- data.tar.gz: 5894640522c7c3491a2fb7d7bab2dc55e334f70e445bd06198ae5628d748a87d99c1033f5df0b369ac29ad694f490752ded9ccc3208853c4fd107db40f1bc790
6
+ metadata.gz: 323c310d872c6c0efad7f2044404d3e53c754da50fbcba764cc52f32349f54c31a95ff7cb1dc756603dcd20215afb5801b5ab3c7654ec40962a67b725294983c
7
+ data.tar.gz: 1be9095c46371db3ab45dcd090e49d3a8f09185d06da44b8f3421579255882acc1a2952d75a1f7078e3369fdf08e64f277a3a460018ec6aa0f86e4507c4bd8e7
@@ -16,6 +16,7 @@ jobs:
16
16
  - "2.7"
17
17
  - "3.0"
18
18
  - "3.1"
19
+ - "3.2"
19
20
 
20
21
  steps:
21
22
  - uses: actions/checkout@v3
data/Guardfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  directories %w(app lib test) \
3
- .select { |d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist") }
3
+ .select { |d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist") }
4
4
 
5
5
  guard :minitest do
6
6
  # with Minitest::Unit
@@ -36,7 +36,8 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency "minitest", "~> 5.0"
37
37
  spec.add_development_dependency "guard", "~> 2.14"
38
38
  spec.add_development_dependency "guard-minitest", "~> 2.4"
39
- spec.add_development_dependency "webmock", "~> 3.5"
39
+ spec.add_development_dependency "webmock", "~> 3.17"
40
40
  spec.add_development_dependency "rubocop"
41
41
  spec.add_development_dependency "rubocop-discourse"
42
+ spec.add_development_dependency "m"
42
43
  end
@@ -1,7 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
  module DiscourseTheme
3
3
  class Cli
4
- SETTINGS_FILE = File.expand_path("~/.discourse_theme")
4
+ @@cli_settings_filename = File.expand_path("~/.discourse_theme")
5
+
6
+ def self.settings_file
7
+ @@cli_settings_filename
8
+ end
9
+
10
+ def self.settings_file=(filename)
11
+ @@cli_settings_filename = filename
12
+ end
5
13
 
6
14
  def usage
7
15
  puts "Usage: discourse_theme COMMAND [--reset]"
@@ -23,21 +31,21 @@ module DiscourseTheme
23
31
  command = args[0].to_s.downcase
24
32
  dir = File.expand_path(args[1])
25
33
 
26
- config = DiscourseTheme::Config.new(SETTINGS_FILE)
34
+ config = DiscourseTheme::Config.new(self.class.settings_file)
27
35
  settings = config[dir]
28
36
 
29
37
  theme_id = settings.theme_id
30
38
  components = settings.components
31
39
 
32
40
  if command == "new"
33
- raise DiscourseTheme::ThemeError.new "'#{dir}' is not empty" if Dir.exists?(dir) && !Dir.empty?(dir)
41
+ raise DiscourseTheme::ThemeError.new "'#{dir}' is not empty" if Dir.exist?(dir) && !Dir.empty?(dir)
34
42
  raise DiscourseTheme::ThemeError.new "git is not installed" if !command?("git")
35
43
  raise DiscourseTheme::ThemeError.new "yarn is not installed" if !command?("yarn")
36
44
 
37
45
  DiscourseTheme::Scaffold.generate(dir)
38
46
  watch_theme?(args)
39
47
  elsif command == "watch"
40
- raise DiscourseTheme::ThemeError.new "'#{dir} does not exist" unless Dir.exists?(dir)
48
+ raise DiscourseTheme::ThemeError.new "'#{dir} does not exist" unless Dir.exist?(dir)
41
49
  client = DiscourseTheme::Client.new(dir, settings, reset: reset)
42
50
 
43
51
  theme_list = client.get_themes_list
@@ -97,7 +105,7 @@ module DiscourseTheme
97
105
  client = DiscourseTheme::Client.new(dir, settings, reset: reset)
98
106
  downloader = DiscourseTheme::Downloader.new(dir: dir, client: client)
99
107
 
100
- FileUtils.mkdir_p dir unless Dir.exists?(dir)
108
+ FileUtils.mkdir_p dir unless Dir.exist?(dir)
101
109
  raise DiscourseTheme::ThemeError.new "'#{dir} is not empty" unless Dir.empty?(dir)
102
110
 
103
111
  UI.progress "Loading theme list..."
@@ -115,7 +123,7 @@ module DiscourseTheme
115
123
 
116
124
  watch_theme?(args)
117
125
  elsif command == "upload"
118
- raise DiscourseTheme::ThemeError.new "'#{dir} does not exist" unless Dir.exists?(dir)
126
+ raise DiscourseTheme::ThemeError.new "'#{dir} does not exist" unless Dir.exist?(dir)
119
127
  raise DiscourseTheme::ThemeError.new "No theme_id is set, please sync via the 'watch' command initially" if theme_id == 0
120
128
  client = DiscourseTheme::Client.new(dir, settings, reset: reset)
121
129
 
@@ -107,7 +107,12 @@ module DiscourseTheme
107
107
  end
108
108
 
109
109
  def root
110
- URI.parse(@url)
110
+ parsed = URI.parse(@url)
111
+ # we must strip the username/password so it does not
112
+ # confuse AWS albs
113
+ parsed.user = nil
114
+ parsed.password = nil
115
+ parsed
111
116
  end
112
117
 
113
118
  def is_theme_creator
@@ -155,7 +160,7 @@ module DiscourseTheme
155
160
 
156
161
  if !url && settings.url
157
162
  url = settings.url
158
- UI.progress "Using #{url} from #{DiscourseTheme::Cli::SETTINGS_FILE}"
163
+ UI.progress "Using #{url} from #{DiscourseTheme::Cli.settings_file}"
159
164
  end
160
165
 
161
166
  if !url || @reset
@@ -169,7 +174,7 @@ module DiscourseTheme
169
174
  url = url.sub("http", "https")
170
175
  end
171
176
 
172
- if UI.yes?("Would you like this site name stored in #{DiscourseTheme::Cli::SETTINGS_FILE}?")
177
+ if UI.yes?("Would you like this site name stored in #{DiscourseTheme::Cli.settings_file}?")
173
178
  settings.url = url
174
179
  else
175
180
  settings.url = nil
@@ -187,12 +192,12 @@ module DiscourseTheme
187
192
 
188
193
  if !api_key && settings.api_key
189
194
  api_key = settings.api_key
190
- UI.progress "Using api key from #{DiscourseTheme::Cli::SETTINGS_FILE}"
195
+ UI.progress "Using api key from #{DiscourseTheme::Cli.settings_file}"
191
196
  end
192
197
 
193
198
  if !api_key || @reset
194
199
  api_key = UI.ask("What is your API key?", default: api_key).strip
195
- if UI.yes?("Would you like this API key stored in #{DiscourseTheme::Cli::SETTINGS_FILE}?")
200
+ if UI.yes?("Would you like this API key stored in #{DiscourseTheme::Cli.settings_file}?")
196
201
  settings.api_key = api_key
197
202
  else
198
203
  settings.api_key = nil
@@ -125,7 +125,7 @@ module DiscourseTheme
125
125
  FileUtils.mkdir_p(File.dirname(locale))
126
126
  File.write(locale, EN_YML.sub("#DESCRIPTION", description))
127
127
 
128
- encoded_name = name.downcase.gsub(/[^\w_-]+/, '_')
128
+ encoded_name = name.downcase.gsub(/[^a-zA-Z0-9_-]+/, '_')
129
129
  initializer = "javascripts/discourse/api-initializers/#{encoded_name}.js"
130
130
  UI.info "Creating #{initializer}"
131
131
  FileUtils.mkdir_p(File.dirname(initializer))
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module DiscourseTheme
3
- VERSION = "0.7.2"
3
+ VERSION = "0.7.4"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discourse_theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-21 00:00:00.000000000 Z
11
+ date: 2023-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitar
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '3.5'
159
+ version: '3.17'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '3.5'
166
+ version: '3.17'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rubocop
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -192,6 +192,20 @@ dependencies:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: m
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
195
209
  description: CLI helper for creating Discourse themes
196
210
  email:
197
211
  - sam.saffron@gmail.com