discourse_theme 0.7.2 → 0.7.4

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