class MotionGradle::Aidl

Public Class Methods

new(package, aidl_file_path) click to toggle source
# File lib/motion_gradle/aidl.rb, line 3
def initialize(package, aidl_file_path)
  @package = package
  @aidl_file_path = File.expand_path(aidl_file_path)
end

Public Instance Methods

create_lib() click to toggle source
# File lib/motion_gradle/aidl.rb, line 8
def create_lib
  create_structure
  create_gradle_build_file
  create_manifest
end
name() click to toggle source
# File lib/motion_gradle/aidl.rb, line 14
def name
  @name ||= File.basename(@aidl_file_path, '.aidl').downcase
end
path() click to toggle source
# File lib/motion_gradle/aidl.rb, line 18
def path
  @path ||= File.join(Motion::Project::Gradle::GRADLE_ROOT, name)
end

Protected Instance Methods

create_gradle_build_file() click to toggle source
# File lib/motion_gradle/aidl.rb, line 30
def create_gradle_build_file
  template = MotionGradle::Template.new('aidl_build.gradle')
  template.destination = File.join(path, 'build.gradle')
  template.write({ last_build_tools_version: last_build_tools_version })
end
create_manifest() click to toggle source
# File lib/motion_gradle/aidl.rb, line 24
def create_manifest
  template = MotionGradle::Template.new('android_manifest.xml')
  template.destination = File.join(path, 'src', 'main', 'AndroidManifest.xml')
  template.write({ package: @package })
end
create_structure() click to toggle source
# File lib/motion_gradle/aidl.rb, line 36
def create_structure
  aidl_file_dir = File.join(path, 'src', 'main', 'aidl', *@package.split('.'))
  FileUtils.mkdir_p(aidl_file_dir)
  FileUtils.cp(@aidl_file_path, aidl_file_dir)
end
last_build_tools_version() click to toggle source
# File lib/motion_gradle/aidl.rb, line 42
def last_build_tools_version
  build_tools = File.join(ENV['RUBYMOTION_ANDROID_SDK'], 'build-tools')
  glob_pattern = File.join(build_tools, '*')
  builds_tools_directories = Dir.glob(glob_pattern).select do |file|
    File.directory?(file)
  end
  File.basename(builds_tools_directories.last)
end