squash_java 1.0.0 → 1.0.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.
Files changed (2) hide show
  1. data/lib/squash/java/namespace.rb +17 -18
  2. metadata +22 -22
@@ -221,7 +221,7 @@ class Squash::Java::Namespace
221
221
 
222
222
  def method(klass, name)
223
223
  matches = name.match(METHOD_REGEX) or raise "Invalid method name #{name.inspect}"
224
- return_type = type(matches[1])
224
+ return_type = argument(matches[1])
225
225
  method_name = matches[2]
226
226
  args = matches[3].split(/,\s*/).map { |arg| argument(arg) }
227
227
  args = [] if matches[3].empty?
@@ -259,9 +259,9 @@ class Squash::Java::Namespace
259
259
  # {Squash::Java::Method Method}.
260
260
 
261
261
  def argument(type_descriptor)
262
- array = type_descriptor[-2..-1] == '[]'
263
- type_name = type_descriptor.sub(/\[\]$/, '')
264
- Squash::Java::Argument.new type(type_name), array
262
+ dimensionality = type_descriptor.scan(/\[\]/).size
263
+ type_name = type_descriptor.gsub(/\[\]/, '')
264
+ Squash::Java::Argument.new type(type_name), dimensionality
265
265
  end
266
266
 
267
267
  # Creates a new Argument for a given type descriptor, which can be fully or
@@ -276,11 +276,11 @@ class Squash::Java::Namespace
276
276
  # {Squash::Java::Method Method}, or `nil` if the type is not recognized.
277
277
 
278
278
  def obfuscated_argument(type_descriptor)
279
- array = type_descriptor[-2..-1] == '[]'
280
- type_name = type_descriptor.sub(/\[\]$/, '')
281
- type = obfuscated_type(type_name)
279
+ dimensionality = type_descriptor.scan(/\[\]/).size
280
+ type_name = type_descriptor.gsub(/\[\]/, '')
281
+ type = obfuscated_type(type_name)
282
282
  return nil unless type
283
- Squash::Java::Argument.new type, array
283
+ Squash::Java::Argument.new type, dimensionality
284
284
  end
285
285
  end
286
286
 
@@ -510,7 +510,7 @@ class Squash::Java::Method
510
510
 
511
511
  def full_name
512
512
  args = arguments.map { |type| type.to_s }.join(', ')
513
- "#{return_type.full_name} #{name}(#{args})"
513
+ "#{return_type.to_s} #{name}(#{args})"
514
514
  end
515
515
 
516
516
  # @private
@@ -524,26 +524,25 @@ class Squash::Java::Argument
524
524
  # @return [Squash::Java::Type] The argument type.
525
525
  attr_reader :type
526
526
 
527
- # @return [true, false] `true` if the argument is an array, false if it is a
528
- # scalar.
529
- attr_reader :array
530
- alias array? array
527
+ # @return [Fixnum] The number of dimensions for vector values. A type of
528
+ # `int[][]` has a dimensionality of 2. Scalars have a dimensionality of 0.
529
+ attr_reader :dimensionality
531
530
 
532
531
  # @private
533
- def initialize(type, array=false)
534
- @type = type
535
- @array = array
532
+ def initialize(type, dimensionality=0)
533
+ @type = type
534
+ @dimensionality = dimensionality
536
535
  end
537
536
 
538
537
  # @private
539
538
  def ==(other)
540
539
  other.kind_of?(Squash::Java::Argument) &&
541
540
  type == other.type &&
542
- array? == other.array?
541
+ dimensionality == other.dimensionality
543
542
  end
544
543
 
545
544
  # @return [String] The type's full name, with "[]" appended for arrays.
546
- def to_s() "#{type.full_name}#{'[]' if array?}" end
545
+ def to_s() "#{type.full_name}#{'[]'*dimensionality}" end
547
546
 
548
547
  # @private
549
548
  def inspect() "#<#{self.class} #{to_s}>" end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squash_java
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 0
10
- version: 1.0.0
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tim Morgan
@@ -15,10 +15,9 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-12-07 00:00:00 Z
18
+ date: 2013-01-03 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- prerelease: false
22
21
  requirement: &id001 !ruby/object:Gem::Requirement
23
22
  none: false
24
23
  requirements:
@@ -28,11 +27,11 @@ dependencies:
28
27
  segments:
29
28
  - 0
30
29
  version: "0"
31
- type: :runtime
32
- name: json
33
30
  version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
31
+ name: json
35
32
  prerelease: false
33
+ type: :runtime
34
+ - !ruby/object:Gem::Dependency
36
35
  requirement: &id002 !ruby/object:Gem::Requirement
37
36
  none: false
38
37
  requirements:
@@ -42,11 +41,11 @@ dependencies:
42
41
  segments:
43
42
  - 0
44
43
  version: "0"
45
- type: :runtime
46
- name: squash_uploader
47
44
  version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
45
+ name: squash_uploader
49
46
  prerelease: false
47
+ type: :runtime
48
+ - !ruby/object:Gem::Dependency
50
49
  requirement: &id003 !ruby/object:Gem::Requirement
51
50
  none: false
52
51
  requirements:
@@ -56,11 +55,11 @@ dependencies:
56
55
  segments:
57
56
  - 0
58
57
  version: "0"
59
- type: :development
60
- name: rspec
61
58
  version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
59
+ name: rspec
63
60
  prerelease: false
61
+ type: :development
62
+ - !ruby/object:Gem::Dependency
64
63
  requirement: &id004 !ruby/object:Gem::Requirement
65
64
  none: false
66
65
  requirements:
@@ -70,11 +69,11 @@ dependencies:
70
69
  segments:
71
70
  - 0
72
71
  version: "0"
73
- type: :development
74
- name: yard
75
72
  version_requirements: *id004
76
- - !ruby/object:Gem::Dependency
73
+ name: yard
77
74
  prerelease: false
75
+ type: :development
76
+ - !ruby/object:Gem::Dependency
78
77
  requirement: &id005 !ruby/object:Gem::Requirement
79
78
  none: false
80
79
  requirements:
@@ -84,11 +83,11 @@ dependencies:
84
83
  segments:
85
84
  - 0
86
85
  version: "0"
87
- type: :development
88
- name: redcarpet
89
86
  version_requirements: *id005
90
- - !ruby/object:Gem::Dependency
87
+ name: redcarpet
91
88
  prerelease: false
89
+ type: :development
90
+ - !ruby/object:Gem::Dependency
92
91
  requirement: &id006 !ruby/object:Gem::Requirement
93
92
  none: false
94
93
  requirements:
@@ -98,9 +97,10 @@ dependencies:
98
97
  segments:
99
98
  - 0
100
99
  version: "0"
101
- type: :development
102
- name: jeweler
103
100
  version_requirements: *id006
101
+ name: jeweler
102
+ prerelease: false
103
+ type: :development
104
104
  description: This gem includes a library that imports yGuard or ProGuard rename logs, and a binary that uploads the data to Squash.
105
105
  email: tim@squareup.com
106
106
  executables: