drg 0.13.0 → 0.13.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 +4 -4
- data/drg.gemspec +1 -2
- data/lib/drg/ruby/const.rb +24 -0
- data/lib/drg/ruby.rb +50 -0
- data/lib/drg/tasks/active_pinner.rb +3 -3
- data/lib/drg/version.rb +1 -1
- data/lib/drg.rb +8 -8
- data/lib/tasks/drg.rake +3 -3
- metadata +24 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85174e3e29ba49bc66bfe16c2bbb52f899d40116
|
4
|
+
data.tar.gz: 5785cf7041e4c15d485573440c4f751866fb0180
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 08141b4e861f2cf2ba363411d5d560a27ad80b03d9bbe0262fcd5034a2216248171b0de5ac3040b3f6e6b12f9708f5923ebf6f650765b76aa4b1b86a3d908859
|
7
|
+
data.tar.gz: 7f2cc1e22edc346890f195623248e0afbed948cfe79647951f810dad05e5afe8028133000b9cf6b82685339d866d5f68c3adfb3ddec7e11d0ee62097d46a5ad8
|
data/drg.gemspec
CHANGED
@@ -15,8 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.executables = []
|
16
16
|
spec.require_paths = ["lib"]
|
17
17
|
|
18
|
-
|
19
|
-
# spec.add_dependency 'ruby2ruby', '>= 2.2.0', '< 3.0.0'
|
18
|
+
spec.add_dependency 'ruby_parser', '>= 3.7.0', '< 4.0.0'
|
20
19
|
spec.add_dependency 'bundler', '~> 1.10'
|
21
20
|
spec.add_dependency 'duck_puncher', '>= 2.0.0', '<= 3.0.0'
|
22
21
|
spec.add_dependency 'highline', '~> 1.7'
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'ruby_parser'
|
2
|
+
|
3
|
+
module DRG
|
4
|
+
class Ruby
|
5
|
+
class Const
|
6
|
+
CONSTANT_DEFS = [:class, :module, :cdecl]
|
7
|
+
|
8
|
+
def initialize(file)
|
9
|
+
@parser = RubyParser.new.parse File.read(file)
|
10
|
+
end
|
11
|
+
|
12
|
+
def name(sexp = @parser, list = [])
|
13
|
+
sexp = Array(sexp)
|
14
|
+
if sexp[1].is_a?(Sexp) && sexp[1][0] == :colon2
|
15
|
+
parts = sexp[1].to_a.flatten
|
16
|
+
list.concat parts.drop(parts.size / 2)
|
17
|
+
elsif CONSTANT_DEFS.include?(sexp[0])
|
18
|
+
name(sexp.compact[2], list << sexp[1].to_s)
|
19
|
+
end
|
20
|
+
list.join('::')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/drg/ruby.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'ruby_parser'
|
2
|
+
|
3
|
+
module DRG
|
4
|
+
class Ruby
|
5
|
+
attr_reader :parser
|
6
|
+
|
7
|
+
def initialize(file)
|
8
|
+
@parser = RubyParser.new.parse File.read(file)
|
9
|
+
end
|
10
|
+
|
11
|
+
def modules
|
12
|
+
end
|
13
|
+
|
14
|
+
class Klass < Struct.new(:sexp)
|
15
|
+
|
16
|
+
def includes
|
17
|
+
end
|
18
|
+
|
19
|
+
def extends
|
20
|
+
end
|
21
|
+
|
22
|
+
def funcs
|
23
|
+
sexp.find_nodes(:defn) + sexp.find_nodes(:defs)
|
24
|
+
end
|
25
|
+
|
26
|
+
def instance_vars
|
27
|
+
end
|
28
|
+
|
29
|
+
def class_vars
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class Func
|
34
|
+
def name
|
35
|
+
end
|
36
|
+
|
37
|
+
def args
|
38
|
+
end
|
39
|
+
|
40
|
+
def private?
|
41
|
+
end
|
42
|
+
|
43
|
+
def conditions
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class Condition
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module DRG
|
2
2
|
module Tasks
|
3
|
-
class
|
3
|
+
class ActivePinner
|
4
4
|
include Log
|
5
5
|
|
6
6
|
attr_reader :gemfile, :type
|
@@ -66,8 +66,8 @@ module DRG
|
|
66
66
|
new_versions(name, current_version).select { |version|
|
67
67
|
segments = version.scan(/\d+/)
|
68
68
|
major = segments[0].to_i
|
69
|
-
patch = segments[-1].to_i
|
70
69
|
minor = segments[1].to_i
|
70
|
+
patch = segments[-1].to_i
|
71
71
|
patch > current_version.segments[-1] && minor == current_version.segments[1] && major == current_version.segments[0]
|
72
72
|
}.first
|
73
73
|
end
|
@@ -101,7 +101,7 @@ module DRG
|
|
101
101
|
# @param [Array] list of a gem version's segments
|
102
102
|
# @param [Array] other_list of another gem version's segments
|
103
103
|
def higher?(list, other_list)
|
104
|
-
|
104
|
+
(0..2).to_a.any? { |i| list[i].to_i > other_list[i].to_i }
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
data/lib/drg/version.rb
CHANGED
data/lib/drg.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
require 'ostruct'
|
2
2
|
require 'set'
|
3
3
|
require 'bundler'
|
4
|
-
require 'drg/version'
|
5
4
|
require 'duck_puncher'
|
6
5
|
require 'highline/import'
|
7
6
|
|
8
|
-
# defines #clone!
|
7
|
+
# defines Object#clone!
|
9
8
|
DuckPuncher.punch! :Object
|
10
9
|
|
11
|
-
|
12
|
-
# autoload :FileReader, 'drg/file_reader'
|
13
|
-
# autoload :Scanner, 'drg/scanner'
|
14
|
-
# autoload :Judge, 'drg/judge'
|
15
|
-
# autoload :FileContext, 'drg/file_context'
|
10
|
+
require 'drg/version'
|
16
11
|
|
12
|
+
module DRG
|
17
13
|
module Tasks
|
18
14
|
autoload :Updater, 'drg/tasks/updater'
|
19
15
|
autoload :Pinner, 'drg/tasks/pinner'
|
20
|
-
autoload :
|
16
|
+
autoload :ActivePinner, 'drg/tasks/active_pinner'
|
21
17
|
autoload :Gemfile, 'drg/tasks/gemfile'
|
22
18
|
autoload :GemfileLine, 'drg/tasks/gemfile_line'
|
23
19
|
autoload :Log, 'drg/tasks/log'
|
24
20
|
end
|
21
|
+
|
22
|
+
class Ruby
|
23
|
+
autoload :Const, 'drg/ruby/const'
|
24
|
+
end
|
25
25
|
end
|
26
26
|
|
27
27
|
load 'tasks/drg.rake'
|
data/lib/tasks/drg.rake
CHANGED
@@ -29,17 +29,17 @@ namespace :drg do
|
|
29
29
|
|
30
30
|
desc 'Pins all gems [or the requested gem] to the latest version'
|
31
31
|
task :latest, [:gem_name] do |_, options|
|
32
|
-
DRG::Tasks::
|
32
|
+
DRG::Tasks::ActivePinner.new(:available).perform(options[:gem_name])
|
33
33
|
end
|
34
34
|
|
35
35
|
desc 'Pins all gems [or the requested gem] to the latest available patch version'
|
36
36
|
task :minor_latest, [:gem_name] do |_, options|
|
37
|
-
DRG::Tasks::
|
37
|
+
DRG::Tasks::ActivePinner.new(:minor).perform(options[:gem_name])
|
38
38
|
end
|
39
39
|
|
40
40
|
desc 'Pins all gems [or the requested gem] to the latest available minor version'
|
41
41
|
task :patch_latest, [:gem_name] do |_, options|
|
42
|
-
DRG::Tasks::
|
42
|
+
DRG::Tasks::ActivePinner.new(:patch).perform(options[:gem_name])
|
43
43
|
end
|
44
44
|
|
45
45
|
# aliases
|
metadata
CHANGED
@@ -1,15 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Buckley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ruby_parser
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.7.0
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 4.0.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.7.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 4.0.0
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: bundler
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,6 +135,8 @@ files:
|
|
115
135
|
- lib/drg/file_reader.rb
|
116
136
|
- lib/drg/judge.rb
|
117
137
|
- lib/drg/let.rb
|
138
|
+
- lib/drg/ruby.rb
|
139
|
+
- lib/drg/ruby/const.rb
|
118
140
|
- lib/drg/scanner.rb
|
119
141
|
- lib/drg/tasks/active_pinner.rb
|
120
142
|
- lib/drg/tasks/gemfile.rb
|