itunes_store_transporter 0.1.2beta → 0.1.2

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
  SHA1:
3
- metadata.gz: 4108c78a24a87a971a948d57ce6c38562f83ed17
4
- data.tar.gz: 15792381aef3440f4f08bba1856e9ce3cb13b70a
3
+ metadata.gz: f7127018124d73b10742187cbd8ca283b2d70fe6
4
+ data.tar.gz: 9967d8bab13f0c965e383522491227cf7bfac5e6
5
5
  SHA512:
6
- metadata.gz: 20f44051c7fc697f58a42fbe26caddcb4db41ecd0e3799b9474d5f433ce3fa87e747ff14bdef78406dff395036949a415cb98fef1b6a12090dd91af47840e203
7
- data.tar.gz: 9b0d9bab5f02325c3e7669e7a2dcdb75ef76eceb9ac0a64c5d2c42989e96ad49ed0bc02f23249011e574fd9aa1c79dead73452512ff269d7b35aa6cfe3a0b506
6
+ metadata.gz: edef7e176540218a6b572e27c8f1a23dba40f51e2fbc7cc637f00db563033293fd38ad957957d386e08acdce8c14960078493fc85e4c89a7522e811d9a4972a3
7
+ data.tar.gz: caac988d22b3d8dc46ba05d7692c86eeb97790bda4f546a7f0562eeaec897f6746341e0e6e3cbb56fff046331e6da26256045cb0ff072edd4f927f5d2a1678e3
data/Changes CHANGED
@@ -1,7 +1,16 @@
1
+ v0.1.2 2015-03-07
2
+ --------------------
3
+ Changes:
4
+ * Only parse errors from the main iTMSTransporter thread
5
+
6
+ Enhancements:
7
+ * Look for the iTMSTransporter at known locations on OS X
8
+ * Add the :streams (-numStreams) option to upload
9
+
1
10
  v0.1.1 2013-08-14
2
11
  --------------------
3
- Changes:
4
- * Added post_install_message letting Windows users know they need to modify iTMSTransporter.CMD
12
+ Changes:
13
+ * Added post_install_message letting Windows users know they need to modify iTMSTransporter.CMD
5
14
  * Transporter is now a module, new() returns an instance of ITMSTransporter
6
15
 
7
16
  Bug fixes:
@@ -22,7 +31,7 @@ Enhancements:
22
31
  * `itms` added --no-config option
23
32
  * `itms` allow boolean options to be set to false via --no-XXXX, e.g., --no-print-stderr
24
33
 
25
- Bug Fixes:
34
+ Bug Fixes:
26
35
  * `itms status` passed the wrong arguments to the underlying method
27
36
  * `itms` failed when the config file was empty
28
37
  * Verify command :verify_assets => true would disable asset verification
data/README.rdoc CHANGED
@@ -74,10 +74,20 @@ This can be fixed by modifying +iTMSTransporter.CMD+ (note that the following do
74
74
 
75
75
  === Using itms
76
76
 
77
- <code>itms COMMAND [OPTIONS]</code>
77
+ <code>itms COMMAND [OPTIONS] [PACKAGE]</code>
78
78
 
79
- * +COMMAND+ - The command (<code>iTunes::Store::Transporter</code> method) to run
80
- * +OPTIONS+ - These are quivalent to the given +COMMAND+'s options except they must be given in long option format. For example <code>:apple_id => "X123"</code> would be <code>--apple-id=X123</code>. Boolean options can be negated with the <code>--no-</code> prefix.
79
+ * +COMMAND+ - The command to run, which can be any one of {the <code>iTunes::Store::Transporter</code> methods}[http://ruby-doc.org/gems/docs/i/itunes_store_transporter-0.1.1/ITunes/Store/Transporter/ITMSTransporter.html]
80
+ * +OPTIONS+ - These are quivalent to the given +COMMAND+'s options except they must be given in a strict long option format. For example <code>:apple_id => "X123"</code> would be <code>--apple-id=X123</code>. Boolean options can be negated with the <code>--no-</code> prefix. For more info see {each command's options}[http://ruby-doc.org/gems/docs/i/itunes_store_transporter-0.1.1/ITunes/Store/Transporter/ITMSTransporter.html].
81
+ * +PACKAGE+ - The package or directory to operate on, if required by the command
82
+
83
+ <b>Note that options with a value must contain the equals character</b> (<code>"="</code>).
84
+ The format is <code>--option=value</code> and not <code>--option value</code>.
85
+
86
+ ==== Examples
87
+
88
+ itms upload --username=sshaw --password=w3cAllYoU --transport=aspera a_package.itmsp
89
+ itms version
90
+ itms status --no-print-stderr --vendor-id=X123123 --username=sshaw --password=sekr3t_ --shortname=ss
81
91
 
82
92
  ==== Username, Password, Short Name
83
93
 
@@ -95,7 +105,7 @@ For example, to lookup the metadata for package +X123+ and download low-quality
95
105
  itms lookup --vendor-id=X123 --assets
96
106
 
97
107
  To download a particular asset type just provide its name:
98
-
108
+
99
109
  itms lookup --vendor-id=X123 --assets=preview
100
110
 
101
111
  If there are multiple territories this will download the preview assets for each of them. To only download assets in a given territory or territories use:
@@ -4,18 +4,18 @@ module ITunes
4
4
  module Store
5
5
  module Transporter
6
6
  module Command # :nodoc:
7
-
7
+
8
8
  ##
9
9
  # Retrieve the status of a previously uploaded package
10
10
  #
11
11
  class Status < Mode
12
12
  def initialize(*config)
13
- super
13
+ super
14
14
  options.on *VENDOR_ID
15
15
  end
16
16
 
17
- protected
18
- def handle_success(stdout_lines, stderr_lines, options)
17
+ protected
18
+ def handle_success(stdout_lines, stderr_lines, options)
19
19
  status = {}
20
20
  while line = stdout_lines.shift
21
21
  next unless line =~ /\S+/
@@ -33,7 +33,7 @@ module ITunes
33
33
  end
34
34
  end
35
35
  status
36
- end
36
+ end
37
37
 
38
38
  def parse_line(line)
39
39
  key, value = line.split(/:\s+/, 2).map(&:strip)
@@ -41,7 +41,7 @@ module ITunes
41
41
  key.downcase!
42
42
  [key.to_sym, value]
43
43
  end
44
- end
44
+ end
45
45
  end
46
46
  end
47
47
  end
@@ -17,7 +17,8 @@ module ITunes
17
17
  options.on *SUCCESS
18
18
  options.on *FAILURE
19
19
  options.on :delete, "-delete", Optout::Boolean
20
- options.on :rate, "-k", Integer # Required if TRANSPORT is Aspera or Signiant
20
+ options.on :rate, "-k", Integer # Required if TRANSPORT is Aspera or Signiant
21
+ options.on :streams, "-numStreams", Integer # Only valid if TRANSPORT is Signiant
21
22
  options.on :log_history, "-loghistory", Optout::Dir.exists
22
23
  end
23
24
  end
@@ -1,46 +1,46 @@
1
1
  module ITunes
2
- module Store
2
+ module Store
3
3
  module Transporter
4
4
  ##
5
5
  # Upload and manage your assets in the iTunes Store using the iTunes Store's Transporter (+iTMSTransporter+).
6
6
  class ITMSTransporter
7
-
7
+
8
8
  ##
9
- # === Arguments
9
+ # === Arguments
10
10
  #
11
11
  # [options (Hash)] Transporter options
12
12
  #
13
13
  # === Options
14
- #
14
+ #
15
15
  # Options given here will be used as defaults for all subsequent method calls. Thus you can set method specific options here but, if you call a method that does not accept one of these options, an OptionError will be raised.
16
- #
17
- # See specific methods for a list of options.
16
+ #
17
+ # See specific methods for a list of options.
18
18
  #
19
19
  # [:username (String)] Your username
20
20
  # [:password (String)] Your password
21
21
  # [:shortname (String)] Your shortname. Optional, not every iTunes account has one
22
22
  # [:path (String)] The path to the +iTMSTransporter+. Optional.
23
- # [:print_stdout (Boolean)] Print +iTMSTransporter+'s stdout to your stdout. Defaults to +false+.
24
- # [:print_stderr (Boolean)] Print +iTMSTransporter+'s stderr to your stderr. Defaults to +false+.
23
+ # [:print_stdout (Boolean)] Print +iTMSTransporter+'s stdout to your stdout. Defaults to +false+.
24
+ # [:print_stderr (Boolean)] Print +iTMSTransporter+'s stderr to your stderr. Defaults to +false+.
25
25
  #
26
26
 
27
27
  def initialize(options = nil)
28
28
  @defaults = create_options(options)
29
- @config = {
29
+ @config = {
30
30
  :path => @defaults.delete(:path),
31
- :print_stdout => @defaults.delete(:print_stdout),
32
- :print_stderr => @defaults.delete(:print_stderr),
33
- }
31
+ :print_stdout => @defaults.delete(:print_stdout),
32
+ :print_stderr => @defaults.delete(:print_stderr),
33
+ }
34
34
  end
35
-
35
+
36
36
  ##
37
37
  # :method: lookup
38
- # :call-seq:
38
+ # :call-seq:
39
39
  # lookup(options = {})
40
- #
41
- # Retrieve the metadata for a previously delivered package.
42
40
  #
43
- # === Arguments
41
+ # Retrieve the metadata for a previously delivered package.
42
+ #
43
+ # === Arguments
44
44
  #
45
45
  # [options (Hash)] Transporter options
46
46
  #
@@ -55,15 +55,15 @@ module ITunes
55
55
  # === Returns
56
56
  #
57
57
  # [String] The metadata
58
-
58
+
59
59
  ##
60
60
  # :method: providers
61
- # :call-seq:
61
+ # :call-seq:
62
62
  # providers(options = {})
63
63
  #
64
64
  # List of Providers for whom your account is authorzed to deliver for.
65
65
  #
66
- # === Arguments
66
+ # === Arguments
67
67
  #
68
68
  # [options (Hash)] Transporter options
69
69
  #
@@ -74,15 +74,15 @@ module ITunes
74
74
  # === Returns
75
75
  #
76
76
  # [Array] Each element is a +Hash+ with two keys: +:shortname+ and +:longname+ representing the given provider's long and short names
77
-
77
+
78
78
  ##
79
79
  # :method: schema
80
- # :call-seq:
80
+ # :call-seq:
81
81
  # schema(options = {})
82
82
  #
83
83
  # Download a RelaxNG schema file for a particular metadata specification.
84
- #
85
- # === Arguments
84
+ #
85
+ # === Arguments
86
86
  #
87
87
  # [options (Hash)] Transporter options
88
88
  #
@@ -93,24 +93,24 @@ module ITunes
93
93
  #
94
94
  # === Errors
95
95
  #
96
- # TransporterError, OptionError, ExecutionError
96
+ # TransporterError, OptionError, ExecutionError
97
97
  #
98
98
  # === Returns
99
99
  #
100
100
  # [String] The schema
101
-
101
+
102
102
  ##
103
103
  # :method: status
104
- # :call-seq:
104
+ # :call-seq:
105
105
  # status(options = {})
106
106
  #
107
107
  # Retrieve the status of a previously uploaded package.
108
- #
109
- # === Arguments
108
+ #
109
+ # === Arguments
110
110
  #
111
111
  # [options (Hash)] Transporter options
112
112
  #
113
- # === Options
113
+ # === Options
114
114
  #
115
115
  # [:vendor_id (String)] ID of the package you want status info on
116
116
  #
@@ -121,44 +121,45 @@ module ITunes
121
121
  # === Returns
122
122
  #
123
123
  # [Hash] Descibes various facets of the package's status.
124
-
124
+
125
125
  ##
126
126
  # :method: upload
127
- # :call-seq:
127
+ # :call-seq:
128
128
  # upload(package, options = {})
129
129
  #
130
130
  # Upload a package to the iTunes Store.
131
131
  #
132
132
  # === Arguments
133
- #
133
+ #
134
134
  # [package (String)] The path to the package directory to upload. Package names must end in +.itmsp+.
135
135
  # [options (Hash)] Transporter options
136
- #
136
+ #
137
137
  # === Options
138
138
  #
139
139
  # [:transport (String)] The method/protocol used to upload your package. Optional. Can be one of: <code>"Aspera"</code>, <code>"Signiant"</code>, or <code>"DEV"</code>. By default +iTMSTransporter+ automatically selects the transport.
140
- # [:rate (Integer)] Target bitrate in Kbps. Optional, only used with +Aspera+ and +Signiant+
140
+ # [:rate (Integer)] Target bitrate in Kbps. Optional, only used with +Aspera+ and +Signiant+
141
141
  # [:success (String)] A directory to move the package to if the upload succeeds
142
142
  # [:failure (String)] A directory to move the package to if the upload fails
143
143
  # [:delete (Boolean)] Delete the package if the upload succeeds. Defaults to +false+.
144
144
  # [:log_history (String)] Write an +iTMSTransporter+ log to this directory. Off by default.
145
+ # [:streams (Integer)] Number of data streams to use. Optional, only used with +Signiant+
145
146
  #
146
147
  # === Errors
147
148
  #
148
149
  # TransporterError, OptionError, ExecutionError
149
150
  #
150
151
  # === Returns
151
- #
152
+ #
152
153
  # +true+ if the upload was successful.
153
-
154
+
154
155
  ##
155
- # :method: verify
156
- # :call-seq:
156
+ # :method: verify
157
+ # :call-seq:
157
158
  # verify(package, options = {})
158
- #
159
- # Validate the contents of a package's metadata and assets.
160
159
  #
161
- # If verification fails an ExecutionError containing the errors will be raised.
160
+ # Validate the contents of a package's metadata and assets.
161
+ #
162
+ # If verification fails an ExecutionError containing the errors will be raised.
162
163
  # Each error message is an instance of TransporterMessage.
163
164
  #
164
165
  # === Arguments
@@ -175,12 +176,12 @@ module ITunes
175
176
  # TransporterError, OptionError, ExecutionError
176
177
  #
177
178
  # === Returns
178
- #
179
+ #
179
180
  # +true+ if the package was verified.
180
-
181
+
181
182
  ##
182
183
  # :method: version
183
- # :call-seq:
184
+ # :call-seq:
184
185
  # version
185
186
  #
186
187
  # Return the underlying +iTMSTransporter+ version.
@@ -188,31 +189,30 @@ module ITunes
188
189
  # === Returns
189
190
  #
190
191
  # [String] The version number
191
-
192
+
192
193
  %w|upload verify|.each do |command|
193
- define_method(command) do |package, *options|
194
+ define_method(command) do |package, *options|
194
195
  cmd_options = create_options(options.first)
195
196
  cmd_options[:package] = package
196
197
  run_command(command, cmd_options)
197
198
  end
198
199
  end
199
-
200
+
200
201
  %w|lookup providers schema status version|.each do |command|
201
202
  define_method(command) { |*options| run_command(command, options.shift) }
202
- end
203
-
204
- private
205
- def run_command(name, options)
203
+ end
204
+
205
+ private
206
+ def run_command(name, options)
206
207
  Command.const_get(name.capitalize).new(@config, @defaults).run(create_options(options))
207
208
  end
208
-
209
+
209
210
  def create_options(options)
210
211
  options ||= {}
211
212
  raise ArgumentError, "options must be a Hash" unless Hash === options
212
213
  options.dup
213
214
  end
214
- end
215
+ end
215
216
  end
216
217
  end
217
218
  end
218
-
@@ -1,7 +1,7 @@
1
1
  module ITunes
2
2
  module Store
3
3
  module Transporter
4
- VERSION = "0.1.2beta"
4
+ VERSION = "0.1.2"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itunes_store_transporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2beta
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Skye Shaw
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-02 00:00:00.000000000 Z
11
+ date: 2015-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: childprocess
@@ -131,12 +131,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
131
  version: '0'
132
132
  required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - ">"
134
+ - - ">="
135
135
  - !ruby/object:Gem::Version
136
- version: 1.3.1
136
+ version: '0'
137
137
  requirements: []
138
138
  rubyforge_project:
139
- rubygems_version: 2.2.2
139
+ rubygems_version: 2.4.5
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: Upload and manage your assets in the iTunes Store using the iTunes Store's