glitter 2.0.3 → 2.2.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
- 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