pkgforge 0.5.4 → 0.6.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
2
  SHA1:
3
- metadata.gz: 4260709b4217a3ff5f12b01edca0e0bc3884167e
4
- data.tar.gz: 662cc785706417f2b4203e7c62b3edecf1896454
3
+ metadata.gz: 4c9a8dcac466a826b3d7926f4c5b5930e50e28f3
4
+ data.tar.gz: 32817d1917eb4985488c37a5062df172ca22cdb6
5
5
  SHA512:
6
- metadata.gz: 9604fb30f7eeda72e81f6cb2e439de04580266796219cab5952c854cba11ecdc18a02cccfa2710b705a57bdc51825603b2257cb3d9ce75400674bb9553dad84f
7
- data.tar.gz: c14597a78bff693257a339eaae9ad92110f6352e48dd40f690dbe5917ab058328265cf5836029a463a43a2a5aae18a737051e87950c14bdfc76f55b68a1c6e09
6
+ metadata.gz: 81248ac54a0149f0d8051cd6ee3bba711994cac8acfe70ac9deddbc57234aef0db65a5eed9f84437e42a55281a44702a35dc55aac2706add1a5ece0ec2d338ab
7
+ data.tar.gz: 91c8242baa70f2430a0f79c1637a1a000a64e799d2e297e8438fd216fe113b6ceb213b576e718004f5c3e09e0738c7a0272497bf44f9b7beda2c44160976a9db
@@ -1,13 +1,28 @@
1
1
  require 'fileutils'
2
+ require 'open-uri'
2
3
 
3
4
  module PkgForge
4
5
  ##
5
6
  # Add source methods to Forge
6
7
  class Forge
8
+ attr_writer :source
9
+
10
+ Contract None => HashOf[Symbol => Any]
11
+ def source
12
+ @source ||= { type: 'git' }
13
+ end
14
+
7
15
  private
8
16
 
9
17
  Contract None => nil
10
18
  def prepare_source!
19
+ type_method = "#{source[:type]}_prepare_source"
20
+ return send(type_method) if respond_to?(type_method, true)
21
+ raise("Unknown source type: #{source[:type]}")
22
+ end
23
+
24
+ Contract None => nil
25
+ def git_prepare_source
11
26
  dest = tmpdir(:build)
12
27
  dest_git = File.join(dest, '.git')
13
28
  dest_git_config = File.join(dest_git, 'config')
@@ -19,5 +34,26 @@ module PkgForge
19
34
  File.open(dest_git_config, 'w') { |fh| fh << new_config }
20
35
  nil
21
36
  end
37
+
38
+ Contract None => nil
39
+ def tar_prepare_source
40
+ dest_file = tmpfile(:source_tar)
41
+ File.open(dest_file, 'wb') do |fh|
42
+ open(source[:url], 'rb') { |request| fh.write request.read }
43
+ end
44
+ run "tar -xf #{dest_file} --strip-components=1"
45
+ end
46
+ end
47
+
48
+ module DSL
49
+ ##
50
+ # Add source methods to Forge DSL
51
+ class Forge
52
+ Contract HashOf[Symbol => Any] => nil
53
+ def source(params)
54
+ @forge.source = params
55
+ nil
56
+ end
57
+ end
22
58
  end
23
59
  end
@@ -1,5 +1,5 @@
1
1
  ##
2
2
  # Declare version number
3
3
  module PkgForge
4
- VERSION = '0.5.4'.freeze
4
+ VERSION = '0.6.1'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pkgforge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Les Aker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-02 00:00:00.000000000 Z
11
+ date: 2016-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mercenary