discourse_theme 0.7.3 → 0.7.5

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: 97a862e2ac58f510af5689963a9ce8fecbf2f8d9c2394b8b7472989576bdd3a3
4
- data.tar.gz: 4c9c71524bbd6ab86c41c9b48c08636444b0ca7c861b16552767521b7dc3d009
3
+ metadata.gz: fa9710726909f2b5a1381132fb5e68748965bf8af6cf50893c013126e1c6db0d
4
+ data.tar.gz: 6446feb3d912101d7193a07776d4aa5dc476fd00ef649e7b4c94e10e1ac21b56
5
5
  SHA512:
6
- metadata.gz: 6c4fc7f7ddc8c9213f54cf3c3b184a451a4da2aa44cbcf22218589ca0fc88dc67c186bde660f39f53ce13e2ffd4c0399bd6df0975a305c90f722df195c9e0f66
7
- data.tar.gz: 26157e131f6db3fcfb48de880bbb1016bde6d102e1e916e4ef5c0b3f0acafc3f009d1611f9a2b44bcadd6bfc94643e2cff619ae6433456f76298aa90bd146412
6
+ metadata.gz: 72cead3a6060f62bc7e3fd225b82a98ee59e0852559506bcd2d5bd0f83196e4372ca1331c14654d51edc9ff20dad665a7c29777391db85789b4d6367b61a64ea
7
+ data.tar.gz: 65b6d6b3d547867b706be85beab21f7d2a47daa521e1b9a5dbd71420a80126a32740f8f3286d5c6ab5c52ee85b92ea9e71a7395def9f2ed8ec4d6bc6aa7f0959
@@ -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
@@ -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
 
@@ -112,7 +112,7 @@ module DiscourseTheme
112
112
  # confuse AWS albs
113
113
  parsed.user = nil
114
114
  parsed.password = nil
115
- parsed
115
+ parsed.to_s
116
116
  end
117
117
 
118
118
  def is_theme_creator
@@ -160,7 +160,7 @@ module DiscourseTheme
160
160
 
161
161
  if !url && settings.url
162
162
  url = settings.url
163
- UI.progress "Using #{url} from #{DiscourseTheme::Cli::SETTINGS_FILE}"
163
+ UI.progress "Using #{url} from #{DiscourseTheme::Cli.settings_file}"
164
164
  end
165
165
 
166
166
  if !url || @reset
@@ -174,7 +174,7 @@ module DiscourseTheme
174
174
  url = url.sub("http", "https")
175
175
  end
176
176
 
177
- 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}?")
178
178
  settings.url = url
179
179
  else
180
180
  settings.url = nil
@@ -192,12 +192,12 @@ module DiscourseTheme
192
192
 
193
193
  if !api_key && settings.api_key
194
194
  api_key = settings.api_key
195
- UI.progress "Using api key from #{DiscourseTheme::Cli::SETTINGS_FILE}"
195
+ UI.progress "Using api key from #{DiscourseTheme::Cli.settings_file}"
196
196
  end
197
197
 
198
198
  if !api_key || @reset
199
199
  api_key = UI.ask("What is your API key?", default: api_key).strip
200
- 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}?")
201
201
  settings.api_key = api_key
202
202
  else
203
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.3"
3
+ VERSION = "0.7.5"
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.3
4
+ version: 0.7.5
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-08-11 00:00:00.000000000 Z
11
+ date: 2023-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitar