discourse_theme 0.3.5 → 0.4.0

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