squash_java 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: