discourse_theme 0.7.3 → 0.7.5

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: 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