Module: Ruboto::Util::Verify

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

Instance Method Summary collapse

Instance Method Details

#project_api_levelObject



103
104
105
106
107
108
109
# File 'lib/ruboto/util/verify.rb', line 103

def project_api_level
  begin
    return $1 if project_properties =~ /^target=(.*)$/
  rescue
    # ignored
  end
end

#project_propertiesObject



96
97
98
99
100
101
# File 'lib/ruboto/util/verify.rb', line 96

def project_properties
  return @project_properties if @project_properties
  properties_file_name = 'project.properties'
  return nil unless File.exists? properties_file_name
  @project_properties = File.read(properties_file_name)
end

#save_manifestObject



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

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

#save_ruboto_configObject



87
88
89
# File 'lib/ruboto/util/verify.rb', line 87

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

#save_test_manifestObject



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

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

#verify_activityObject



41
42
43
44
# File 'lib/ruboto/util/verify.rb', line 41

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

#verify_apiObject



75
76
77
# File 'lib/ruboto/util/verify.rb', line 75

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



53
54
55
56
57
58
59
# File 'lib/ruboto/util/verify.rb', line 53

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



36
37
38
39
# File 'lib/ruboto/util/verify.rb', line 36

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

#verify_project_propertiesObject



91
92
93
94
# File 'lib/ruboto/util/verify.rb', line 91

def verify_project_properties
  return @project_properties if project_properties
  abort "cannot find your #{properties_file_name} to extract info from it. Make sure you're in the root directory of your app." unless File.exists? properties_file_name
end

#verify_ruboto_configObject



79
80
81
82
83
84
85
# File 'lib/ruboto/util/verify.rb', line 79

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

#verify_sdk_versionsObject



46
47
48
49
50
51
# File 'lib/ruboto/util/verify.rb', line 46

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



69
70
71
72
73
# File 'lib/ruboto/util/verify.rb', line 69

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



61
62
63
64
65
66
67
# File 'lib/ruboto/util/verify.rb', line 61

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



26
27
28
29
30
# File 'lib/ruboto/util/verify.rb', line 26

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