Module: Ruboto::Util::Verify

Included in:
Build, XMLElement
Defined in:
lib/ruboto/util/verify.rb

Instance Method Summary collapse

Instance Method Details

#save_manifestObject



19
20
21
# File 'lib/ruboto/util/verify.rb', line 19

def save_manifest
  File.open("AndroidManifest.xml", 'w') {|f| REXML::Formatters::OrderedAttributes.new(4).write(verify_manifest.document, f)}
end

#save_ruboto_configObject



84
85
86
# File 'lib/ruboto/util/verify.rb', line 84

def save_ruboto_config
  File.open("ruboto.yml", 'w') {|f| YAML.dump verify_ruboto_config}
end

#save_test_manifestObject



29
30
31
# File 'lib/ruboto/util/verify.rb', line 29

def save_test_manifest
  File.open("test/AndroidManifest.xml", 'w') {|f| verify_test_manifest.document.write(f, 4)}
end

#verify_activityObject



38
39
40
41
# File 'lib/ruboto/util/verify.rb', line 38

def verify_activity
  verify_manifest
  @activity ||= @manifest.elements['application/activity'].attribute('android:name').value
end

#verify_apiObject



72
73
74
# File 'lib/ruboto/util/verify.rb', line 72

def verify_api
  Ruboto::API.api
end

#verify_manifestObject

Verify the presence of important components



12
13
14
15
16
17
# File 'lib/ruboto/util/verify.rb', line 12

def verify_manifest
  return @manifest if @manifest
  abort "cannot find your AndroidManifest.xml to extract info from it. Make sure you're in the root directory of your app" unless
  File.exists? 'AndroidManifest.xml'
  @manifest = REXML::Document.new(File.read('AndroidManifest.xml')).root
end

#verify_min_sdkObject



50
51
52
53
54
55
56
# File 'lib/ruboto/util/verify.rb', line 50

def verify_min_sdk
  return @min_sdk if @min_sdk
  verify_sdk_versions
  min_sdk_attr = @uses_sdk.attribute('android:minSdkVersion').value
  abort "you must specify a minimum sdk level in the manifest (e.g., <uses-sdk android:minSdkVersion='3' android:targetSdkVersion='8' />)" unless min_sdk_attr
  @min_sdk = min_sdk_attr.to_i
end

#verify_packageObject



33
34
35
36
# File 'lib/ruboto/util/verify.rb', line 33

def verify_package
  verify_manifest
  @package ||= @manifest.attribute('package').value
end

#verify_ruboto_configObject



76
77
78
79
80
81
82
# File 'lib/ruboto/util/verify.rb', line 76

def verify_ruboto_config
  if File.exists? 'ruboto.yml'
    @ruboto_config ||= YAML::load_file('ruboto.yml')
  else
    @ruboto_config = {}
  end
end

#verify_sdk_versionsObject



43
44
45
46
47
48
# File 'lib/ruboto/util/verify.rb', line 43

def verify_sdk_versions
  verify_manifest
  @uses_sdk ||= @manifest.elements["uses-sdk"]
  abort "you must specify your sdk level in the manifest (e.g., <uses-sdk android:minSdkVersion='3' android:targetSdkVersion='8' />)" unless @uses_sdk
  @uses_sdk
end

#verify_stringsObject



66
67
68
69
70
# File 'lib/ruboto/util/verify.rb', line 66

def verify_strings
  abort "cannot find your strings.xml to extract info from it. Make sure you're in the root directory of your app" unless
  File.exists? 'res/values/strings.xml'
  @strings ||= REXML::Document.new(File.read('res/values/strings.xml'))
end

#verify_target_sdkObject



58
59
60
61
62
63
64
# File 'lib/ruboto/util/verify.rb', line 58

def verify_target_sdk
  return @target_sdk if @target_sdk
  verify_sdk_versions
  target_sdk_attr = @uses_sdk.attribute('android:targetSdkVersion').value
  abort "you must specify a target sdk level in the manifest (e.g., <uses-sdk android:minSdkVersion='3' android:targetSdkVersion='8' />)" unless target_sdk_attr
  @target_sdk = target_sdk_attr.to_i
end

#verify_test_manifestObject



23
24
25
26
27
# File 'lib/ruboto/util/verify.rb', line 23

def verify_test_manifest
  abort "cannot find your test AndroidManifest.xml to extract info from it. Make sure you're in the root directory of your app" \
      unless File.exists? 'test/AndroidManifest.xml'
  @manifest ||= REXML::Document.new(File.read('test/AndroidManifest.xml')).root
end