anticuado 0.3.0 → 0.3.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
  SHA1:
3
- metadata.gz: 94937328011c841e4d73a586e4d95ac5ac8aae15
4
- data.tar.gz: 2906547a86e69147f5d7e229da97054989f30de4
3
+ metadata.gz: e9003493beb4251006f238455230ffe51e943508
4
+ data.tar.gz: ad214b8164369be14c71276d4218dba521ded9ed
5
5
  SHA512:
6
- metadata.gz: 94c7e5595012ef8b6efcbee5dc629d012a7bc61954b7087d548dfd9133148f395d8b0635b6d93ada0ae35983d0f56878eb064ca5623cc136ab0c74b729c5c66d
7
- data.tar.gz: 002ab59f1d2d80e74c72789225f3e8f42a643a02ba0ea359a9236b2ce714e74200f89db8117152186f351609e32db9190e96c4ca88615d19ed554abb4070c0eb
6
+ metadata.gz: 0a52b5559d63ed03d3ea8bc1fb676651ae39706cbca35e7d27543e670763124532dbfabdf0a86055404d38fc099aef264c4594f6cf8a8f107b86bf5b4328a829
7
+ data.tar.gz: '08fb598f6543aca1f1c4bc32fbce26f7d66ee471a4319d642b8d5c111148d696b2c3ebfb7f330f6603f6bf80a46f2ceeca90d7f7e7ac60b0e91327d86c3a8f53'
data/README.md CHANGED
@@ -126,6 +126,8 @@ bundler.format outdated
126
126
  ```
127
127
 
128
128
  ## In advance
129
+ - Create a PR automatically to update libraries
130
+ - See test/anticuado/git_test.rb
129
131
 
130
132
 
131
133
  ## Contributing
@@ -20,7 +20,11 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
+ spec.add_runtime_dependency "git", "~> 1.3.0"
24
+ spec.add_runtime_dependency "octokit", "~> 4.8.0"
25
+
23
26
  spec.add_development_dependency "bundler", "~> 1.12"
24
27
  spec.add_development_dependency "rake", "~> 10.0"
25
28
  spec.add_development_dependency "minitest", "~> 5.0"
29
+ spec.add_development_dependency "pry"
26
30
  end
@@ -1,5 +1,6 @@
1
1
  require "anticuado/version"
2
2
  require "anticuado/base"
3
+ require "anticuado/github"
3
4
 
4
5
  require "anticuado/ios/carthage"
5
6
  require "anticuado/ios/cocoapods"
@@ -15,5 +15,9 @@ module Anticuado
15
15
  def format(_outdated)
16
16
  raise NotImplementedError
17
17
  end
18
+
19
+ def update_lock(target_name = nil)
20
+ raise NotImplementedError
21
+ end
18
22
  end
19
23
  end
@@ -7,10 +7,9 @@ module Anticuado
7
7
  `mix local.hex --force`
8
8
 
9
9
  if @project_dir
10
- current_dir = Anticuado.current_dir
11
- Dir.chdir Anticuado.project_dir(@project_dir)
12
- @outdated_libraries = `mix hex.outdated`
13
- Dir.chdir current_dir
10
+ Dir.chdir(@project_dir) do
11
+ @outdated_libraries = `mix hex.outdated`
12
+ end
14
13
  else
15
14
  @outdated_libraries = `mix hex.outdated`
16
15
  end
@@ -0,0 +1,86 @@
1
+ require 'git'
2
+ require 'octokit'
3
+
4
+ module Anticuado
5
+ class GitHub
6
+ attr_reader :repo_uri, :repo_name, :git, :client
7
+
8
+ def initialize(repository_name, enterprise: true)
9
+ @repo_name = repository_name
10
+
11
+ @client = if enterprise
12
+ ::Octokit::Client.new(
13
+ access_token: ENV['GHE_ACCESS_TOKEN'] || 'dummy_token',
14
+ api_endpoint: ENV['GHE_HOST'],
15
+ )
16
+ else
17
+ ::Octokit::Client.new(:access_token => ENV['GITHUB_TOKEN'])
18
+ end
19
+ @repo_uri = "git@#{URI.parse(enterprise ? @client.api_endpoint : @client.web_endpoint).host}:#{@repo_name}.git"
20
+ end
21
+
22
+ def clone_or_open_to(target_path)
23
+ @git = begin
24
+ ::Git.clone(@repo_uri, target_path)
25
+ rescue
26
+ g = ::Git.open(target_path)
27
+ g.pull
28
+ g
29
+ end
30
+ end
31
+
32
+ def create_a_new_pull_request(base_branch:, head_branch: (Time.now.strftime '%Y%m%d-%H%M%S'), update_libraries: nil)
33
+ remote_name = 'origin'
34
+
35
+ begin
36
+ create_a_branch_local head_branch
37
+ commit_all_changes
38
+
39
+ git_push_to_remote remote_name, head_branch
40
+ create_pull_request(base_branch: base_branch, head_branch: head_branch, title: github_pr_title(head_branch), body: github_pr_body(update_libraries))
41
+
42
+ delete_a_branch_local head_branch
43
+ rescue Git::GitExecuteError => e
44
+ puts "no changes: #{e}, #{e.message}"
45
+ end
46
+ end
47
+
48
+ private
49
+
50
+ def github_pr_title(message)
51
+ "update #{message}"
52
+ end
53
+
54
+ def github_pr_body(update_libraries)
55
+ return 'update libraries' if update_libraries.nil?
56
+ update_libraries.reduce("# Update libraries\n") do |acc, library|
57
+ acc << "- #{library}\n"
58
+ end
59
+ end
60
+
61
+ def commit_all_changes_message
62
+ "update libraries"
63
+ end
64
+
65
+ def commit_all_changes
66
+ @git.commit_all(commit_all_changes_message)
67
+ end
68
+
69
+ def create_a_branch_local(branch_name)
70
+ @git.branch(branch_name).checkout
71
+ end
72
+
73
+ def delete_a_branch_local(branch_name)
74
+ @git.checkout # We should change current branch first
75
+ @git.branch(branch_name).delete
76
+ end
77
+
78
+ def git_push_to_remote(remote_name, head_branch)
79
+ @git.push(remote_name, head_branch)
80
+ end
81
+
82
+ def create_pull_request(base_branch:, head_branch:, title:, body:)
83
+ @client.create_pull_request @repo_name, base_branch, head_branch, title, body
84
+ end
85
+ end
86
+ end # module Anticuado
@@ -44,6 +44,23 @@ module Anticuado
44
44
  end
45
45
  end
46
46
  end
47
+
48
+ # @param [Array] target_names: Name of library.
49
+ def update_lock(target_names = nil)
50
+ return puts "have no pod command" if `which pod`.empty?
51
+ do_update_lock target_names
52
+ end
53
+
54
+ private
55
+
56
+ def do_update_lock(target_names = nil)
57
+ if target_names.nil?
58
+ `carthage update --project-directory=#{@project_dir}`
59
+ else
60
+ raise ArgumentError, "An argument should be Array like ['Result']" unless target_names.is_a? Array
61
+ `carthage update #{target_names.join(' ')} --project-directory=#{@project_dir}`
62
+ end
63
+ end
47
64
  end # class Carthage
48
65
  end # module IOS
49
66
  end # module Anticuado
@@ -1,18 +1,6 @@
1
1
  module Anticuado
2
2
  module IOS
3
3
  class CocoaPods < Anticuado::Base
4
- # @param [String] library: Name of library.
5
- # @return [String] The result of command `pod outdated`.
6
- def update_lock(library: nil)
7
- return puts "have no pod command" if `which pod`.empty?
8
-
9
- if library
10
- `pod update #{library}`
11
- else
12
- `pod update`
13
- end
14
- end
15
-
16
4
  # @return [String] The result of command `pod outdated`.
17
5
  def outdated
18
6
  return puts "have no pod command" if `which pod`.empty?
@@ -50,6 +38,13 @@ module Anticuado
50
38
  }.compact
51
39
  end
52
40
 
41
+ # @param [Array] target_names: Name of library.
42
+ def update_lock(target_names = nil)
43
+ return puts "have no pod command" if `which pod`.empty?
44
+ do_update_lock target_names
45
+ end
46
+
47
+ # TODO: Should fix. (Not used)
53
48
  # @param [String] pod_file_in The file path to Podfile you'd like to update
54
49
  # @param [String] pod_file_out The file path to new Podfile updated. Default is nil and then `pod_file_in` is used
55
50
  # as the file path
@@ -62,6 +57,15 @@ module Anticuado
62
57
 
63
58
  private
64
59
 
60
+ def do_update_lock(target_names = nil)
61
+ if target_names.nil?
62
+ `pod update --project-directory=#{@project_dir}`
63
+ else
64
+ raise ArgumentError, "An argument should be Array like ['PromisesObjC']" unless target_names.is_a? Array
65
+ `pod update #{target_names.join(' ')} --project-directory=#{@project_dir}`
66
+ end
67
+ end
68
+
65
69
  def update_with_prefix(pod_file_in:, pod_file_out: nil, libraries:, prefix:)
66
70
  pod_file_out = pod_file_in if pod_file_out.nil?
67
71
  current_pod = File.read(pod_file_in)
@@ -14,10 +14,9 @@ module Anticuado
14
14
  return puts "have no gradle command" if !wrapper && `which gradle`.empty?
15
15
 
16
16
  if @project_dir
17
- current_dir = Anticuado.current_dir
18
- Dir.chdir Anticuado.project_dir(@project_dir)
19
- `#{gradle(wrapper)} dependencyUpdates -Drevision=#{revision} -DoutputFormatter=#{format} -DoutputDir=#{outdir}`
20
- Dir.chdir current_dir
17
+ Dir.chdir(@project_dir) do
18
+ `#{gradle(wrapper)} dependencyUpdates -Drevision=#{revision} -DoutputFormatter=#{format} -DoutputDir=#{outdir}`
19
+ end
21
20
  else
22
21
  `#{gradle(wrapper)} dependencyUpdates -Drevision=#{revision} -DoutputFormatter=#{format} -DoutputDir=#{outdir}`
23
22
  end
@@ -6,10 +6,9 @@ module Anticuado
6
6
  return puts "have no npm command" if `which npm`.empty?
7
7
 
8
8
  if @project_dir
9
- current_dir = Anticuado.current_dir
10
- Dir.chdir Anticuado.project_dir(@project_dir)
11
- @outdated_libraries = run_outdated
12
- Dir.chdir current_dir
9
+ Dir.chdir(@project_dir) do
10
+ @outdated_libraries = run_outdated
11
+ end
13
12
  else
14
13
  @outdated_libraries = run_outdated
15
14
  end
@@ -6,10 +6,9 @@ module Anticuado
6
6
  return puts "have no yarn command" if `which yarn`.empty?
7
7
 
8
8
  if @project_dir
9
- current_dir = Anticuado.current_dir
10
- Dir.chdir Anticuado.project_dir(@project_dir)
11
- @outdated_libraries = run_outdated
12
- Dir.chdir current_dir
9
+ Dir.chdir(@project_dir) do
10
+ @outdated_libraries = run_outdated
11
+ end
13
12
  else
14
13
  @outdated_libraries = run_outdated
15
14
  end
@@ -1,16 +1,15 @@
1
1
  module Anticuado
2
2
  module Ruby
3
3
  class Bundler < Anticuado::Base
4
- def outdated
4
+ def outdated(option = '')
5
5
  return puts "have no bundle command" if `which bundle`.empty?
6
6
 
7
7
  if @project_dir
8
- current_dir = Anticuado.current_dir
9
- Dir.chdir Anticuado.project_dir(@project_dir)
10
- @outdated_libraries = run_outdated
11
- Dir.chdir current_dir
8
+ Dir.chdir(@project_dir) do
9
+ @outdated_libraries = run_outdated option
10
+ end
12
11
  else
13
- @outdated_libraries = run_outdated
12
+ @outdated_libraries = run_outdated option
14
13
  end
15
14
  @outdated_libraries
16
15
  end
@@ -39,10 +38,29 @@ module Anticuado
39
38
  }.compact
40
39
  end
41
40
 
41
+ def update_lock(target_names = nil)
42
+ if @project_dir
43
+ Dir.chdir(@project_dir) do
44
+ do_update_lock target_names
45
+ end
46
+ else
47
+ do_update_lock target_names
48
+ end
49
+ end
50
+
42
51
  private
43
52
 
44
- def run_outdated
45
- `bundle install`
53
+ def do_update_lock(target_names = nil)
54
+ if target_names.nil?
55
+ `bundle update`
56
+ else
57
+ raise ArgumentError, "An argument should be Array like ['cocoapod']" unless target_names.is_a? Array
58
+ `bundle update #{target_names.join(' ')}`
59
+ end
60
+ end
61
+
62
+ def run_outdated(option)
63
+ `bundle install #{option}`
46
64
  `bundle outdated`
47
65
  end
48
66
  end # class Bundler
@@ -1,3 +1,3 @@
1
1
  module Anticuado
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anticuado
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-03 00:00:00.000000000 Z
11
+ date: 2018-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: git
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.3.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.3.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: octokit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 4.8.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 4.8.0
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: bundler
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +80,20 @@ dependencies:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
82
  version: '5.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
55
97
  description: Collect and arrange some outdated libraries for several platforms
56
98
  email:
57
99
  - fly.49.89.over@gmail.com
@@ -72,6 +114,7 @@ files:
72
114
  - lib/anticuado.rb
73
115
  - lib/anticuado/base.rb
74
116
  - lib/anticuado/elixir/hex.rb
117
+ - lib/anticuado/github.rb
75
118
  - lib/anticuado/ios/carthage.rb
76
119
  - lib/anticuado/ios/cocoapods.rb
77
120
  - lib/anticuado/java/gradle.rb