discourse_theme 0.3.2 → 0.4.1

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: 1ef711d0d73bc44d77980d883fd0ae32ce4cf14a71aa28f8e1d81ec0ec6f077b
4
- data.tar.gz: b63d4ce664f8c5243fc413d3eba9222502b52565d5f183b8154f747955ee1ded
3
+ metadata.gz: b049cb77cb8542cd1991928a60dab7567f11e8a89c8c4ddaba8e297c05938f6c
4
+ data.tar.gz: c799d67427d340e1ce920c8deaebd9ae34b0af598905bf6176421ed816c3eade
5
5
  SHA512:
6
- metadata.gz: 5c5af4afa4206257a58e3957533c47c5205454e465def3377e193fd46bb672882b5e761285e16394c0253ba873802c39072c213fabaeab4d658ad777f8b805ee
7
- data.tar.gz: 4e1872e14d330163a2bd23316d66593f5786e00e99689546ef3196513b066638d94ccec1519117e99e097e1b9f6534932da2f291837ebe105476765f738b2007
6
+ metadata.gz: 6936df70b44ba83c191cb2b37a0897fa9caaf00614e3d1caa70d9f033e796eba29b8c9276e90ec8b9523af200d1f18b053c06957cefa3a6b3ab435a91b748c87
7
+ data.tar.gz: 0d7f183e24fb26fefed3000b4b7d681bfb51326dd1c7a9e5693fcc940dd077eb5bf31a79fa6ec287a76dd4989c60e135e3b23fb08dbce26a953aefd26d5486d4
@@ -0,0 +1,50 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - master
8
+ - main
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+
14
+ strategy:
15
+ matrix:
16
+ ruby:
17
+ - 2.5
18
+ - 2.6
19
+ - 2.7
20
+ - 3.0
21
+
22
+ steps:
23
+ - uses: actions/checkout@v2
24
+
25
+ - name: Setup ruby
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.ruby }}
29
+ bundler-cache: true
30
+
31
+ - name: Lint
32
+ run: bundle exec rubocop
33
+
34
+ - name: Tests
35
+ run: bundle exec rake test
36
+
37
+ publish:
38
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
39
+ needs: build
40
+ runs-on: ubuntu-latest
41
+
42
+ steps:
43
+ - uses: actions/checkout@v2
44
+
45
+ - name: Release Gem
46
+ uses: discourse/publish-rubygems-action@v2-beta
47
+ env:
48
+ RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
49
+ GIT_EMAIL: team@discourse.org
50
+ GIT_NAME: discoursebot
data/.gitignore CHANGED
@@ -1,11 +1 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
1
  Gemfile.lock
10
-
11
- .rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml
data/.rubocop.yml CHANGED
@@ -1 +1,7 @@
1
- inherit_from: https://raw.githubusercontent.com/discourse/discourse/master/.rubocop.yml
1
+ inherit_gem:
2
+ rubocop-discourse: default.yml
3
+ inherit_mode:
4
+ merge:
5
+ - Exclude
6
+ Discourse/NoChdir:
7
+ Enabled: false
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  source "https://rubygems.org"
2
3
 
3
4
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
data/Guardfile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  directories %w(app lib test) \
2
3
  .select { |d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist") }
3
4
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Discourse Theme
2
2
 
3
- This CLI contains helpers for creating [Discourse themes](https://meta.discourse.org/c/theme).
3
+ This CLI contains helpers for creating [Discourse themes](https://meta.discourse.org/c/theme) and theme components.
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,7 +10,7 @@ To install the CLI use:
10
10
 
11
11
  ## Why this gem exists?
12
12
 
13
- This gem allows you to use your editor of choice when developing Discourse themes. As you save files the CLI will update the remote theme and changes to it will appear live!
13
+ This gem allows you to use your editor of choice when developing Discourse themes and theme components. As you save files the CLI will update the remote theme or component and changes to it will appear live!
14
14
 
15
15
  ## Usage
16
16
 
@@ -20,11 +20,17 @@ For help run:
20
20
  discourse_theme
21
21
  ```
22
22
 
23
- it contains two helpers:
23
+ ### `discourse_theme new PATH`
24
24
 
25
- You can use `discourse_theme new PATH` to crate a new blank theme, the CLI will guide you through the process.
25
+ Creates a new blank theme. The CLI will guide you through the process.
26
26
 
27
- You can use `discourse_theme watch PATH` to monitor your theme for changes, when changed the program will synchronize the theme to your Discourse of choice.
27
+ ### `discourse_theme download PATH`
28
+
29
+ Downloads a theme from the server and stores in the designated directory.
30
+
31
+ ### `discourse_theme watch PATH`
32
+
33
+ Monitors a theme or component for changes. When changed the program will synchronize the theme or component to your Discourse of choice.
28
34
 
29
35
  ## Contributing
30
36
 
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "bundler/gem_tasks"
2
3
  require "rake/testtask"
3
4
 
data/bin/discourse_theme CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require_relative '../lib/discourse_theme'
4
5
 
@@ -23,18 +23,20 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
+ spec.required_ruby_version = '>= 2.5.0'
27
+
28
+ spec.add_runtime_dependency "minitar", "~> 0.6"
29
+ spec.add_runtime_dependency "listen", "~> 3.1"
30
+ spec.add_runtime_dependency "multipart-post", "~> 2.0"
31
+ spec.add_runtime_dependency "tty-prompt", "~> 0.18"
32
+ spec.add_runtime_dependency "rubyzip", "~> 1.2"
33
+
26
34
  spec.add_development_dependency "bundler", "~> 2.0"
27
- spec.add_development_dependency "rake", "~> 10.0"
35
+ spec.add_development_dependency "rake", "~> 13.0"
28
36
  spec.add_development_dependency "minitest", "~> 5.0"
29
37
  spec.add_development_dependency "guard", "~> 2.14"
30
38
  spec.add_development_dependency "guard-minitest", "~> 2.4"
31
39
  spec.add_development_dependency "webmock", "~> 3.5"
32
-
33
- spec.add_dependency "minitar", "~> 0.6"
34
- spec.add_dependency "listen", "~> 3.1"
35
- spec.add_dependency "multipart-post", "~> 2.0"
36
- spec.add_dependency "tty-prompt", "~> 0.18"
37
- spec.add_dependency "rubyzip", "~> 1.2"
38
-
39
- spec.required_ruby_version = '>= 2.2.0'
40
+ spec.add_development_dependency "rubocop"
41
+ spec.add_development_dependency "rubocop-discourse"
40
42
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'fileutils'
2
3
  require 'pathname'
3
4
  require 'tempfile'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DiscourseTheme
2
3
  class Cli
3
4
 
@@ -37,9 +38,9 @@ module DiscourseTheme
37
38
  def usage
38
39
  puts "Usage: discourse_theme COMMAND [--reset]"
39
40
  puts
40
- puts "discourse_theme new DIR : Creates a new theme in the designated directory"
41
- puts "discourse_theme download DIR : Download a theme from the server, and store in the designated directory"
42
- puts "discourse_theme watch DIR : Watches the theme directory and synchronizes with Discourse"
41
+ puts "discourse_theme new DIR - Creates a new theme in the designated directory"
42
+ puts "discourse_theme download DIR - Downloads a theme from the server and stores in the designated directory"
43
+ puts "discourse_theme watch DIR - Watches the theme directory and synchronizes with Discourse"
43
44
  puts
44
45
  puts "Use --reset to change the configuration for a directory"
45
46
  exit 1
@@ -57,6 +58,7 @@ module DiscourseTheme
57
58
  settings = config[dir]
58
59
 
59
60
  theme_id = settings.theme_id
61
+ components = settings.components
60
62
 
61
63
  if command == "new"
62
64
  raise DiscourseTheme::ThemeError.new "'#{dir} is not empty" if Dir.exists?(dir) && !Dir.empty?(dir)
@@ -87,14 +89,35 @@ module DiscourseTheme
87
89
  themes = render_theme_list(theme_list)
88
90
  choice = Cli.select('Which theme would you like to sync with?', themes)
89
91
  theme_id = extract_theme_id(choice)
92
+ theme = theme_list.find { |t| t["id"] == theme_id }
90
93
  end
91
94
 
92
- uploader = DiscourseTheme::Uploader.new(dir: dir, client: client, theme_id: theme_id)
95
+ about_json = JSON.parse(File.read(File.join(dir, 'about.json'))) rescue nil
96
+ already_uploaded = !!theme
97
+ is_component = theme&.[]("component")
98
+ component_count = about_json&.[]("components")&.length || 0
99
+
100
+ if !already_uploaded && !is_component && component_count > 0
101
+ options = {}
102
+ options["Yes"] = :sync
103
+ options["No"] = :none
104
+ options = options.sort_by { |_, b| b == components.to_sym ? 0 : 1 }.to_h if components
105
+ choice = Cli.select('Would you like to update child theme components?', options.keys)
106
+ settings.components = components = options[choice].to_s
107
+ end
108
+
109
+ uploader = DiscourseTheme::Uploader.new(dir: dir, client: client, theme_id: theme_id, components: components)
93
110
 
94
111
  Cli.progress "Uploading theme from #{dir}"
95
112
  settings.theme_id = theme_id = uploader.upload_full_theme
96
113
 
97
114
  Cli.success "Theme uploaded (id:#{theme_id})"
115
+ Cli.info "Preview: #{client.root}/?preview_theme_id=#{theme_id}"
116
+ if client.is_theme_creator
117
+ Cli.info "Manage: #{client.root}/my/themes"
118
+ else
119
+ Cli.info "Manage: #{client.root}/admin/customize/themes/#{theme_id}"
120
+ end
98
121
  watcher = DiscourseTheme::Watcher.new(dir: dir, uploader: uploader)
99
122
 
100
123
  Cli.progress "Watching for changes in #{dir}..."
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DiscourseTheme
2
3
  class Client
3
4
  THEME_CREATOR_REGEX = /^https:\/\/theme-creator.discourse.org$/i
@@ -79,7 +80,7 @@ module DiscourseTheme
79
80
  request(put)
80
81
  end
81
82
 
82
- def upload_full_theme(tgz, theme_id:)
83
+ def upload_full_theme(tgz, theme_id:, components:)
83
84
  endpoint = root +
84
85
  if @is_theme_creator
85
86
  "/user_themes/import.json"
@@ -90,6 +91,7 @@ module DiscourseTheme
90
91
  post = Net::HTTP::Post::Multipart.new(
91
92
  endpoint,
92
93
  "theme_id" => theme_id,
94
+ "components" => components,
93
95
  "bundle" => UploadIO.new(tgz, "application/tar+gzip", "bundle.tar.gz")
94
96
  )
95
97
  request(post)
@@ -102,12 +104,16 @@ module DiscourseTheme
102
104
  json["about"]["version"]
103
105
  end
104
106
 
105
- private
106
-
107
107
  def root
108
108
  @url
109
109
  end
110
110
 
111
+ def is_theme_creator
112
+ @is_theme_creator
113
+ end
114
+
115
+ private
116
+
111
117
  def request(request, never_404: false)
112
118
  uri = URI.parse(@url)
113
119
  http = Net::HTTP.new(uri.host, uri.port)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class DiscourseTheme::Config
2
3
 
3
4
  class PathSetting
@@ -30,6 +31,14 @@ class DiscourseTheme::Config
30
31
  set("theme_id", theme_id.to_i)
31
32
  end
32
33
 
34
+ def components
35
+ safe_config["components"]
36
+ end
37
+
38
+ def components=(val)
39
+ set("components", val)
40
+ end
41
+
33
42
  protected
34
43
 
35
44
  def set(name, val)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'zip'
2
3
 
3
4
  class DiscourseTheme::Downloader
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DiscourseTheme
2
3
  class Scaffold
3
4
 
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
1
2
  module DiscourseTheme
2
3
  class Uploader
3
4
 
4
5
  THEME_CREATOR_REGEX = /^https:\/\/theme-creator.discourse.org$/i
5
6
 
6
- def initialize(dir:, client:, theme_id: nil)
7
+ def initialize(dir:, client:, theme_id: nil, components: nil)
7
8
  @dir = dir
8
9
  @client = client
9
10
  @theme_id = theme_id
11
+ @components = components
10
12
  end
11
13
 
12
14
  def compress_dir(gzip, dir)
@@ -66,7 +68,7 @@ module DiscourseTheme
66
68
  compress_dir(filename, @dir)
67
69
 
68
70
  File.open(filename) do |tgz|
69
- response = @client.upload_full_theme(tgz, theme_id: @theme_id)
71
+ response = @client.upload_full_theme(tgz, theme_id: @theme_id, components: @components)
70
72
 
71
73
  json = JSON.parse(response.body)
72
74
  @theme_id = json["theme"]["id"]
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DiscourseTheme
2
- VERSION = "0.3.2"
3
+ VERSION = "0.4.1"
3
4
  end
@@ -1,5 +1,14 @@
1
+ # frozen_string_literal: true
1
2
  module DiscourseTheme
2
3
  class Watcher
4
+ def self.return_immediately!
5
+ @return_immediately = true
6
+ end
7
+
8
+ def self.return_immediately?
9
+ !!@return_immediately
10
+ end
11
+
3
12
  def initialize(dir:, uploader:)
4
13
  @dir = dir
5
14
  @uploader = uploader
@@ -40,7 +49,7 @@ module DiscourseTheme
40
49
  end
41
50
 
42
51
  listener.start
43
- sleep
52
+ sleep unless self.class.return_immediately?
44
53
  end
45
54
 
46
55
  protected
metadata CHANGED
@@ -1,169 +1,197 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discourse_theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-14 00:00:00.000000000 Z
11
+ date: 2021-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: minitar
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
20
- type: :development
19
+ version: '0.6'
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: '0.6'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: listen
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
33
+ version: '3.1'
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '3.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: minitest
42
+ name: multipart-post
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '5.0'
48
- type: :development
47
+ version: '2.0'
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '5.0'
54
+ version: '2.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: guard
56
+ name: tty-prompt
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.14'
62
- type: :development
61
+ version: '0.18'
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.14'
68
+ version: '0.18'
69
69
  - !ruby/object:Gem::Dependency
70
- name: guard-minitest
70
+ name: rubyzip
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.4'
76
- type: :development
75
+ version: '1.2'
76
+ type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.4'
82
+ version: '1.2'
83
83
  - !ruby/object:Gem::Dependency
84
- name: webmock
84
+ name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.5'
89
+ version: '2.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.5'
96
+ version: '2.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: minitar
98
+ name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0.6'
104
- type: :runtime
103
+ version: '13.0'
104
+ type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0.6'
110
+ version: '13.0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: listen
112
+ name: minitest
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '3.1'
118
- type: :runtime
117
+ version: '5.0'
118
+ type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '3.1'
124
+ version: '5.0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: multipart-post
126
+ name: guard
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '2.0'
132
- type: :runtime
131
+ version: '2.14'
132
+ type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '2.0'
138
+ version: '2.14'
139
139
  - !ruby/object:Gem::Dependency
140
- name: tty-prompt
140
+ name: guard-minitest
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0.18'
146
- type: :runtime
145
+ version: '2.4'
146
+ type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0.18'
152
+ version: '2.4'
153
153
  - !ruby/object:Gem::Dependency
154
- name: rubyzip
154
+ name: webmock
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '1.2'
160
- type: :runtime
159
+ version: '3.5'
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: '1.2'
166
+ version: '3.5'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop-discourse
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
167
195
  description: CLI helper for creating Discourse themes
168
196
  email:
169
197
  - sam.saffron@gmail.com
@@ -172,9 +200,9 @@ executables:
172
200
  extensions: []
173
201
  extra_rdoc_files: []
174
202
  files:
203
+ - ".github/workflows/ci.yml"
175
204
  - ".gitignore"
176
205
  - ".rubocop.yml"
177
- - ".travis.yml"
178
206
  - CODE_OF_CONDUCT.md
179
207
  - Gemfile
180
208
  - Guardfile
@@ -204,14 +232,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
232
  requirements:
205
233
  - - ">="
206
234
  - !ruby/object:Gem::Version
207
- version: 2.2.0
235
+ version: 2.5.0
208
236
  required_rubygems_version: !ruby/object:Gem::Requirement
209
237
  requirements:
210
238
  - - ">="
211
239
  - !ruby/object:Gem::Version
212
240
  version: '0'
213
241
  requirements: []
214
- rubygems_version: 3.0.3
242
+ rubygems_version: 3.1.4
215
243
  signing_key:
216
244
  specification_version: 4
217
245
  summary: CLI helper for creating Discourse themes
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.2
5
- before_install: gem install bundler -v 1.16.1