motion-gradle 1.3.0 → 1.4.0

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: 16f9c7f8925294bb5446a31de105082f9d799808
4
- data.tar.gz: cc88f7303a763464318e9be93755a5152de2051f
3
+ metadata.gz: 2bfa047d9cd237d1a2b521e4b87ecedaf35641b3
4
+ data.tar.gz: 17377bd105d6a6866313db0586e85d73648dc15d
5
5
  SHA512:
6
- metadata.gz: 145450ef3276d010b5d79ced75ae2cea1e08dc038a9d0699014f56c1d365f02eb394d4f3a94a9c7264e9a9aada1c64a4c1d37161b0c05d836f36fe383b95f949
7
- data.tar.gz: 491bdec52b3ee2b5fa8ebb291caa2a399781dd45f39dc01957db1ec6ac072117d5d56d9bf68d6fa7d0f3e845cc79c5527bb13217416805978adc18e51324c051
6
+ metadata.gz: 323045101d3e05a096e71ff0d6f5fbcccc4ae70ee42a54e496de34c14ff15a12faea2722300312efbd3c08888e5404e7b223c23e3c9abf4a0af792c0da0d80b6
7
+ data.tar.gz: 08a1e6033cff5945ac5b3cad685b898fbbba1398e5513b59576a96a64b30df3452125613e3a2dc7cc9ce5d22879b4cbb4fa15500b67a4e5867b54ea8404a5904
data/README.md CHANGED
@@ -1,18 +1,18 @@
1
1
  # motion-gradle
2
2
 
3
- motion-gradle allows RubyMotion projects to integrate with
3
+ motion-gradle allows RubyMotion projects to integrate with
4
4
  [Gradle](https://gradle.org/) to manage your dependencies.
5
5
 
6
6
 
7
7
  ## Installation
8
8
 
9
- You need to have gradle installed:
9
+ You need to have gradle installed:
10
10
 
11
11
  ```
12
12
  $ brew install gradle
13
13
  ```
14
14
 
15
- And the gem installed:
15
+ And the gem installed:
16
16
 
17
17
  ```
18
18
  $ [sudo] gem install motion-gradle
@@ -24,7 +24,7 @@ Or if you use Bundler:
24
24
  gem 'motion-gradle'
25
25
  ```
26
26
 
27
- You also need to install `Extras/Android Support Repository` with the Android SDK Manager gui.
27
+ You also need to install `Extras/Android Support Repository` and `Extras/Google Repository` with the Android SDK Manager gui.
28
28
 
29
29
  ![android-sdk-manager](https://raw.githubusercontent.com/jjaffeux/motion-gradle/master/images/android-sdk-manager.png)
30
30
 
@@ -99,6 +99,12 @@ task:
99
99
  $ [bundle exec] rake gradle:install
100
100
  ```
101
101
 
102
- After a `rake:clean:all` you will need to run the install task agin.
102
+ After a `rake clean:all` you will need to run the install task agin.
103
103
 
104
104
  That’s all.
105
+
106
+
107
+ ## Known issues
108
+
109
+ * Clunky .aar support, if you can provide failing cases of libs using .aar it would be great
110
+ * Issue with iconify : http://hipbyte.myjetbrains.com/youtrack/issue/RM-867
data/lib/motion-gradle.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'pathname'
2
2
  require 'shellwords'
3
+ require 'motion/project/legacy_dependency'
3
4
  require 'motion/project/gradle'
4
5
  require 'motion/project/version'
@@ -30,14 +30,10 @@ dependencies {
30
30
  compile project(':<%= library[:name] %>')
31
31
  <% end %>
32
32
  <% @dependencies.each do |dependency| %>
33
- <% if dependency.is_a?(String) %>
34
- compile '<%= dependency %>'
33
+ <% if dependency.is_a?(LegacyDependency) %>
34
+ <%= dependency.parse %>
35
35
  <% else %>
36
- <% if dependency[:extension] %>
37
- compile group: '<%= dependency[:name] %>', name: '<%= dependency[:artifact] %>', version: '<%= dependency[:version] %>', ext: '<%= dependency[:extension]%>'
38
- <% else %>
39
- compile group: '<%= dependency[:name] %>', name: '<%= dependency[:artifact] %>', version: '<%= dependency[:version] %>'
40
- <% end %>
36
+ compile '<%= dependency %>'
41
37
  <% end %>
42
38
  <% end %>
43
39
  }
@@ -46,8 +46,7 @@ module Motion::Project
46
46
  if name.include?(':')
47
47
  @dependencies << name
48
48
  else
49
- App.info('[deprecated]', "dependency('name', options) syntax is deprecated please use a gradle config string, eg: dependency('com.joanzapata.pdfview:android-pdfview:1.0.+@aar') ")
50
- @dependencies << normalized_dependency(name, options)
49
+ @dependencies << LegacyDependency.new(name, options)
51
50
  end
52
51
  end
53
52
 
@@ -97,7 +96,17 @@ module Motion::Project
97
96
  def vendor_aars
98
97
  aars_dependendies = Dir[File.join(GRADLE_ROOT, 'aar/*')]
99
98
  aars_dependendies.each do |dependency|
100
- vendor_options = {:jar => File.join(dependency, 'classes.jar')}
99
+ main_jar = File.join(dependency, 'classes.jar')
100
+ if File.exist?(main_jar)
101
+ vendor_options = {:jar => main_jar}
102
+ else
103
+ next
104
+ end
105
+
106
+ # libs/*.jar may contain dependencies, let's vendor them
107
+ Dir[File.join(dependency, 'libs/*.jar')].each do |internal_dependancy|
108
+ @config.vendor_project({:jar => internal_dependancy})
109
+ end
101
110
 
102
111
  res = File.join(dependency, 'res')
103
112
  if File.exist?(res)
@@ -140,7 +149,7 @@ module Motion::Project
140
149
  aars.each do |aar|
141
150
  filename = File.basename(aar, '.aar')
142
151
  system("unzip -o -qq #{aar} -d #{aar_dir}/#{filename}")
143
- end
152
+ end
144
153
  end
145
154
 
146
155
  def generate_gradle_settings_file
@@ -179,15 +188,6 @@ module Motion::Project
179
188
  "#{@gradle_path}"
180
189
  end
181
190
  end
182
-
183
- def normalized_dependency(name, options)
184
- {
185
- name: name,
186
- version: options.fetch(:version, '+'),
187
- artifact: options.fetch(:artifact, name),
188
- extension: options.fetch(:extension, false),
189
- }
190
- end
191
191
  end
192
192
  end
193
193
 
@@ -0,0 +1,21 @@
1
+ class LegacyDependency
2
+ def initialize(name, params)
3
+ @options = normalized_dependency(name, params)
4
+ end
5
+
6
+ def parse
7
+ options = @options.delete_if { |_, v| v.nil? }.map {|k, v| "#{k}: '#{v}'"}
8
+ "compile #{options.join(', ')}"
9
+ end
10
+
11
+ protected
12
+
13
+ def normalized_dependency(name, params)
14
+ {
15
+ group: name,
16
+ version: params.fetch(:version, '+'),
17
+ name: params.fetch(:artifact, name),
18
+ ext: params.fetch(:extension, nil),
19
+ }
20
+ end
21
+ end
@@ -1,5 +1,5 @@
1
1
  module Motion::Project
2
2
  class Gradle
3
- VERSION = '1.3.0'
3
+ VERSION = '1.4.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-gradle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joffrey Jaffeux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-22 00:00:00.000000000 Z
11
+ date: 2015-08-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: motion-gradle allows RubyMotion Android projects to have access to the
14
14
  Gradle dependency manager.
@@ -22,6 +22,7 @@ files:
22
22
  - lib/motion-gradle.rb
23
23
  - lib/motion/project/gradle.erb
24
24
  - lib/motion/project/gradle.rb
25
+ - lib/motion/project/legacy_dependency.rb
25
26
  - lib/motion/project/settings.erb
26
27
  - lib/motion/project/version.rb
27
28
  homepage: http://www.rubymotion.com
@@ -49,3 +50,4 @@ signing_key:
49
50
  specification_version: 4
50
51
  summary: Gradle integration for RubyMotion Android projects
51
52
  test_files: []
53
+ has_rdoc: