glitter 2.0.3 → 2.2.1

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
- SHA1:
3
- metadata.gz: a754f47c453fba3e6d232789d5a4ec5054eab365
4
- data.tar.gz: 608eb756d583f1fd388e7e0dbdcdfa846f5fee18
2
+ SHA256:
3
+ metadata.gz: ccf1fac2f80421104cc52201577fb06dc3306d34d771e5ba6c20bc8f645d2539
4
+ data.tar.gz: bc8c6d9a44d27d393d465dd40d08802fda926106567473f3d1e78a6488cb2843
5
5
  SHA512:
6
- metadata.gz: c00dc3b0fa33eb45e6c08ed73d84d9aa1eb0fd925ce9195611af71a21663704c7c908408b0f87fb5ee34a4eb3952407b6e5d4dacafeb12b8a50be22092af7d9a
7
- data.tar.gz: e94f6023cdb4f593d9ed4c81d205911f99e67eb5bdab5528f9c239766fded93ab30845c4fe994dbfb4b564608a98d1fa0874b519ee457cf56dbbe5c5e6d9985f
6
+ metadata.gz: efa24ff841f8fa88a4472e8fdedb83ce370fc8cc841ae914ca80de355d0311849643723b4b54a0c3ceaf487ca0721384dbb7af80333f302f8099b779a56b67a7
7
+ data.tar.gz: 0d05e28c9846d6a40b366a536d87b818e78ae6ee1a5d3ed659c94259de78d9db9f0dea6d1c1d2f5ac84c11cf1e374428258334a6358acadd88697fb7cc01e7e1
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.4
data/glitter.gemspec CHANGED
@@ -11,11 +11,12 @@ Gem::Specification.new do |s|
11
11
  s.homepage = "https://github.com/polleverywhere/glitter"
12
12
  s.summary = %q{Publish Mac software updates with the Sparkle framework and Amazon S3.}
13
13
  s.description = %q{Glitter makes it easy to publish software updates via the Sparkle framework by using S3 buckets.}
14
+ s.licenses = ['MIT']
14
15
 
15
- s.rubyforge_project = "glitter"
16
- s.add_dependency "s3"
17
- s.add_dependency "haml"
18
- s.add_dependency "thor"
16
+ s.required_ruby_version = ">= 2.0.0"
17
+ s.add_dependency "s3", "~> 0.3"
18
+ s.add_dependency "haml", "~> 5.0"
19
+ s.add_dependency "thor", "~> 1.0"
19
20
 
20
21
  s.files = `git ls-files`.split("\n")
21
22
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/lib/glitter/cli.rb CHANGED
@@ -3,14 +3,17 @@ require 'thor'
3
3
  module Glitter
4
4
  # Command line interface for cutting glitter builds
5
5
  class CLI < Thor
6
- desc "push", "pushes a build to a channel with release notes."
7
- method_option :version, :type => :string, :aliases => "-v", :required => true
8
- method_option :channel, :type => :string, :aliases => "-c", :required => true
9
- method_option :notes, :type => :string, :aliases => "-n"
10
- method_option :force, :type => :boolean, :aliases => "-f"
11
- method_option :bundle_version, :type => :string, :aliases => "-b"
6
+ desc "push", "Pushes a build to a channel with release notes."
7
+ method_option :version, :type => :string, :aliases => "-v", :required => true
8
+ method_option :channel, :type => :string, :aliases => "-c", :required => true
9
+ method_option :notes, :type => :string, :aliases => "-n"
10
+ method_option :bundle_version, :type => :string, :aliases => "-b"
11
+ method_option :minimum_system_version, :type => :string, :aliases => "-m"
12
+ method_option :force, :type => :boolean, :aliases => "-f"
13
+ method_option :timeout, :type => :numeric, :aliases => "-t", :default => Server::DEFAULT_S3_TIMEOUT
12
14
  def push(executable_path, *asset_paths)
13
15
  release = Release::Sparkle.new(channel, options.version)
16
+ release.minimum_system_version = options.minimum_system_version
14
17
  release.bundle_version = options.bundle_version
15
18
  release.notes = options.notes
16
19
  release.executable = File.open executable_path
@@ -44,19 +47,13 @@ module Glitter
44
47
  puts Glitter::VERSION
45
48
  end
46
49
 
47
- # desc "yank", "remove a build from a release channel"
48
- # method_option :version, :type => :string, :aliases => "-v"
49
- # method_option :channel, :type => :string, :aliases => "-c"
50
- # def yank
51
- # end
52
-
53
50
  private
54
51
  def channel
55
52
  server.channel(options.channel)
56
53
  end
57
54
 
58
55
  def server
59
- @server ||= Server.new
56
+ @server ||= Server.new(timeout: options.timeout)
60
57
  end
61
58
  end
62
- end
59
+ end
@@ -70,7 +70,7 @@ module Glitter
70
70
  # lives inside of a channel.
71
71
  class Sparkle < Base
72
72
  attr_accessor :notes, :executable, :filename
73
- attr_writer :published_at, :bundle_version
73
+ attr_writer :published_at, :bundle_version, :minimum_system_version
74
74
 
75
75
  # Yeah, lets publish this shiz NOW.
76
76
  def published_at
@@ -89,6 +89,12 @@ module Glitter
89
89
  @bundle_version || @version
90
90
  end
91
91
 
92
+ def minimum_version_attribute
93
+ unless @minimum_system_version.nil?
94
+ "<sparkle:minimumSystemVersion>#{@minimum_system_version}</sparkle:minimumSystemVersion>"
95
+ end
96
+ end
97
+
92
98
  private
93
99
  # Generates an HTML file of the release notes.
94
100
  def notes_asset
@@ -5,10 +5,15 @@ require 'uri'
5
5
  # contain multiple releases of software.
6
6
  module Glitter
7
7
  class Server
8
- attr_reader :access_key_id, :secret_access_key, :bucket_name
8
+ attr_reader :access_key_id, :secret_access_key, :bucket_name, :timeout
9
9
 
10
- def initialize(access_key_id = ENV['AWS_ACCESS_KEY_ID'], secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'], bucket_name = ENV['AWS_BUCKET_NAME'])
11
- @access_key_id, @secret_access_key, @bucket_name = access_key_id, secret_access_key, bucket_name
10
+ DEFAULT_S3_TIMEOUT = 60
11
+
12
+ def initialize(access_key_id = ENV['AWS_ACCESS_KEY_ID'], secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'], bucket_name = ENV['AWS_BUCKET_NAME'], timeout: DEFAULT_S3_TIMEOUT)
13
+ @access_key_id = access_key_id
14
+ @secret_access_key = secret_access_key
15
+ @bucket_name = bucket_name
16
+ @timeout = timeout
12
17
  end
13
18
 
14
19
  def channel(name)
@@ -35,7 +40,7 @@ module Glitter
35
40
  end
36
41
 
37
42
  def s3
38
- @s3 ||= ::S3::Service.new(:access_key_id => access_key_id, :secret_access_key => secret_access_key, :use_ssl => true)
43
+ @s3 ||= ::S3::Service.new(access_key_id: access_key_id, secret_access_key: secret_access_key, timeout: timeout, use_ssl: true)
39
44
  end
40
45
  end
41
- end
46
+ end
@@ -8,6 +8,7 @@
8
8
  <item>
9
9
  <title>Version <%= version %></title>
10
10
  <sparkle:releaseNotesLink><%= notes_asset.url %></sparkle:releaseNotesLink>
11
+ <%= minimum_version_attribute %>
11
12
  <description>
12
13
  <![CDATA[
13
14
  <%= notes %>
@@ -1,3 +1,3 @@
1
1
  module Glitter
2
- VERSION = "2.0.3"
2
+ VERSION = "2.2.1"
3
3
  end
@@ -2,16 +2,15 @@ require 'spec_helper'
2
2
  require 'rexml/document'
3
3
 
4
4
  describe Glitter do
5
- let(:server) do
6
- Glitter::Server.new
7
- end
8
5
 
9
- it "should release to channel" do
10
- Glitter::Release::Sparkle.new server.channel('test-channel'), "1.1.2-#{rand}" do |r|
11
- r.executable = File.open(__FILE__)
12
- r.notes = %[Did you know that its #{Time.now}? Wait, you can only answer yes to that question.]
13
- end.push.head
14
- end
6
+ # # Note that uncommenting and running this spec *will* upload a single file to your S3 bucket
7
+ # it "should release to channel" do
8
+ # Glitter::Release::Sparkle.new Glitter::Server.new.channel('test-channel'), "1.1.2-#{rand}" do |r|
9
+ # r.executable = File.open(__FILE__)
10
+ # r.notes = %[Did you know that its #{Time.now}? Wait, you can only answer yes to that question.]
11
+ # r.minimum_system_version = "10.10"
12
+ # end.push.head
13
+ # end
15
14
 
16
15
  it "AWS path segments are parsed correctly for an item at top level of version folder" do
17
16
  channel, version, key = Glitter::Release.object_segments("/channel/version/some-item")
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+ require 'rexml/document'
3
+
4
+ describe Glitter::Server do
5
+ describe "#new" do
6
+ context "No timeout flag is passed to the server constructor" do
7
+ let(:server) { Glitter::Server.new }
8
+
9
+ it "defaults to the default timeout" do
10
+ expect(server.timeout).to eq Glitter::Server::DEFAULT_S3_TIMEOUT
11
+ end
12
+ end
13
+
14
+ context "A timeout flag is passed to the server constructor" do
15
+ let(:server) { Glitter::Server.new(timeout: 10) }
16
+
17
+ it "will have a timeout value of the passed timeout flag" do
18
+ expect(server.timeout).to eq 10
19
+ end
20
+ end
21
+ end
22
+ end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Gessler, Thomas Hanley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-07 00:00:00.000000000 Z
11
+ date: 2022-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: s3
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.3'
20
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: '0'
26
+ version: '0.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: haml
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '5.0'
34
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: '0'
40
+ version: '5.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: thor
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '1.0'
48
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: '0'
54
+ version: '1.0'
55
55
  description: Glitter makes it easy to publish software updates via the Sparkle framework
56
56
  by using S3 buckets.
57
57
  email:
@@ -62,6 +62,7 @@ extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
64
  - ".gitignore"
65
+ - ".ruby-version"
65
66
  - Gemfile
66
67
  - Guardfile
67
68
  - README.md
@@ -78,9 +79,11 @@ files:
78
79
  - lib/glitter/templates/notes.html.erb
79
80
  - lib/glitter/version.rb
80
81
  - spec/lib/glitter_spec.rb
82
+ - spec/lib/server_spec.rb
81
83
  - spec/spec_helper.rb
82
84
  homepage: https://github.com/polleverywhere/glitter
83
- licenses: []
85
+ licenses:
86
+ - MIT
84
87
  metadata: {}
85
88
  post_install_message:
86
89
  rdoc_options: []
@@ -90,18 +93,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
93
  requirements:
91
94
  - - ">="
92
95
  - !ruby/object:Gem::Version
93
- version: '0'
96
+ version: 2.0.0
94
97
  required_rubygems_version: !ruby/object:Gem::Requirement
95
98
  requirements:
96
99
  - - ">="
97
100
  - !ruby/object:Gem::Version
98
101
  version: '0'
99
102
  requirements: []
100
- rubyforge_project: glitter
101
- rubygems_version: 2.6.8
103
+ rubygems_version: 3.1.6
102
104
  signing_key:
103
105
  specification_version: 4
104
106
  summary: Publish Mac software updates with the Sparkle framework and Amazon S3.
105
107
  test_files:
106
108
  - spec/lib/glitter_spec.rb
109
+ - spec/lib/server_spec.rb
107
110
  - spec/spec_helper.rb