discourse_theme 0.3.5 → 0.4.0

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: 5277924c1a14b59cf66cc403616680f3c980743c657a3cd7613d6236f3c1073e
4
- data.tar.gz: 2fee23e13d30c6401ce95d6519f5fe98390002a1829c4bdc7b7bad1cc98493e0
3
+ metadata.gz: de1cb65ed52d9dd44bbe0039b0a40f00f55897e68106d5193cfb0717937b4ff9
4
+ data.tar.gz: 8192308474973266925422876401c974c3daf0ffb331d7423ac06d2368c3db68
5
5
  SHA512:
6
- metadata.gz: 1323a77a6cd64fb095def5d735b673ad9be3cd9f7c55d6a3a2bb3eb8842024a0055926a650f64ea1ddac46656f8de32266b3dc205cafe0904f781ce7d69eade6
7
- data.tar.gz: a24107efa821c1ab3b3c387aef80152c0ee13b675a3261aa2efc38e86ccc3e37f29e5e4f058d50a1e98dc36249082f0ed57d7bc1458c385b7701898b915d3d2e
6
+ metadata.gz: 2dcbaf4918cf88082c27270a05e1fb888d5d2e462160834c7a2b82ab79acfb3eaf62d0732ea5da840f83d1656f36d6aadda4633cdec86b77149d57c5188c0514
7
+ data.tar.gz: 3c095bcfcc224691d30405353a06eb6ccf64446331175dc28e7f8eebf1347b8b2707c37313e1c29668a35937a4a550c8ef81bc2701201674a5baf8b525d72211
@@ -91,7 +91,12 @@ module DiscourseTheme
91
91
  theme = theme_list.find { |t| t["id"] == theme_id }
92
92
  end
93
93
 
94
- if !theme || theme["component"] == false
94
+ about_json = JSON.parse(File.read(File.join(dir, 'about.json'))) rescue nil
95
+ already_uploaded = !!theme
96
+ is_component = theme&.[]("component")
97
+ component_count = about_json&.[]("components")&.length || 0
98
+
99
+ if !already_uploaded && !is_component && component_count > 0
95
100
  options = {}
96
101
  options["Yes"] = :sync
97
102
  options["No"] = :none
@@ -106,6 +111,12 @@ module DiscourseTheme
106
111
  settings.theme_id = theme_id = uploader.upload_full_theme
107
112
 
108
113
  Cli.success "Theme uploaded (id:#{theme_id})"
114
+ Cli.info "Preview: #{client.root}/?preview_theme_id=#{theme_id}"
115
+ if client.is_theme_creator
116
+ Cli.info "Manage: #{client.root}/my/themes"
117
+ else
118
+ Cli.info "Manage: #{client.root}/admin/customize/themes/#{theme_id}"
119
+ end
109
120
  watcher = DiscourseTheme::Watcher.new(dir: dir, uploader: uploader)
110
121
 
111
122
  Cli.progress "Watching for changes in #{dir}..."
@@ -103,12 +103,16 @@ module DiscourseTheme
103
103
  json["about"]["version"]
104
104
  end
105
105
 
106
- private
107
-
108
106
  def root
109
107
  @url
110
108
  end
111
109
 
110
+ def is_theme_creator
111
+ @is_theme_creator
112
+ end
113
+
114
+ private
115
+
112
116
  def request(request, never_404: false)
113
117
  uri = URI.parse(@url)
114
118
  http = Net::HTTP.new(uri.host, uri.port)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module DiscourseTheme
3
- VERSION = "0.3.5"
3
+ VERSION = "0.4.0"
4
4
  end
@@ -1,5 +1,13 @@
1
1
  module DiscourseTheme
2
2
  class Watcher
3
+ def self.return_immediately!
4
+ @return_immediately = true
5
+ end
6
+
7
+ def self.return_immediately?
8
+ !!@return_immediately
9
+ end
10
+
3
11
  def initialize(dir:, uploader:)
4
12
  @dir = dir
5
13
  @uploader = uploader
@@ -40,7 +48,7 @@ module DiscourseTheme
40
48
  end
41
49
 
42
50
  listener.start
43
- sleep
51
+ sleep unless self.class.return_immediately?
44
52
  end
45
53
 
46
54
  protected
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.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-10 00:00:00.000000000 Z
11
+ date: 2020-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler