israkel 0.4.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +29 -5
- data/lib/israkel.rb +1 -0
- data/lib/israkel/device.rb +158 -0
- data/lib/israkel/tasks.rb +45 -112
- metadata +58 -40
- data/Gemfile +0 -10
- data/Gemfile.lock +0 -25
- data/Rakefile +0 -38
- data/VERSION +0 -1
- data/israkel.gemspec +0 -58
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9925300a81c566a80654362e4b4de6ba8f1172ed
|
4
|
+
data.tar.gz: 4285f4b68e325b6b79e798f6f6562847c95eb2dd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 780f73658c5a4e82cbc5853f0231a55a31feb7962b8fe6cc07ce64a0e934e6227a8e0dda114d641e92b0f9f30d9f6c2b9cc3d8dabba77d4cb8c50886870e2571
|
7
|
+
data.tar.gz: 70822ce80a0287f86a1cad61e9b590e174451b67d432d3da2143ed10ab827aaa9a76720d3a03acf1da3984cdc53ab27f5280c4f08a851feff5b096d47a0571f3
|
data/README.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# ISRakel
|
2
2
|
|
3
|
+
[![Build Status](http://img.shields.io/travis/xing/israkel/master.svg?style=flat-square)](https://travis-ci.org/xing/israkel)
|
4
|
+
[![Code Coverage](http://img.shields.io/coveralls/xing/israkel.svg?style=flat-square)](https://coveralls.io/r/xing/israkel)
|
5
|
+
[![Dependency Status](https://www.versioneye.com/user/projects/5444b70c53acfa4b0f0000cf/badge.svg?style=flat-square)](https://www.versioneye.com/user/projects/5444b70c53acfa4b0f0000cf)
|
6
|
+
[![Code climate](http://img.shields.io/codeclimate/github/xing/israkel.svg?style=flat-square)](https://codeclimate.com/github/xing/israkel)
|
7
|
+
[![Gem Version](http://img.shields.io/gem/v/israkel.svg?style=flat-square)](https://rubygems.org/gems/israkel)
|
8
|
+
|
9
|
+
|
3
10
|
This gem is a collection of rake tasks for maintaining common tasks
|
4
11
|
for the iPhone Simulator on Mac OS like ...
|
5
12
|
|
@@ -62,17 +69,34 @@ tasks to change some settings:
|
|
62
69
|
There's a second method called `edit_global_preferences` which works
|
63
70
|
the same, just edits a different file.
|
64
71
|
|
65
|
-
##
|
72
|
+
## Authorize access to addressbook, gps and photos
|
66
73
|
|
67
|
-
Allowing
|
68
|
-
to use KIF to tap on the OK button
|
74
|
+
Allowing access upfront can be required because it's not possible
|
75
|
+
to use KIF to tap on the OK button of the access alert views.
|
69
76
|
|
70
77
|
i = ISRakel::Tasks.instance
|
71
|
-
|
78
|
+
|
79
|
+
desc 'Allow AddressBook access'
|
80
|
+
task :allow_addressbook_access do
|
81
|
+
i.allow_addressbook_access('com.xing.App')
|
82
|
+
end
|
83
|
+
|
84
|
+
desc 'Allow GPS access'
|
72
85
|
task :allow_gps_access do
|
73
|
-
i.allow_gps_access(
|
86
|
+
i.allow_gps_access('com.xing.App')
|
74
87
|
end
|
75
88
|
|
89
|
+
desc 'Allow Photo Library access'
|
90
|
+
task :allow_photos_access do
|
91
|
+
i.allow_photos_access('com.xing.App')
|
92
|
+
end
|
93
|
+
|
94
|
+
Even easier, you don't have to define the rake tasks in your Rakefile.
|
95
|
+
There are generic tasks that take the environment variable `BUNDLE_ID`
|
96
|
+
into account:
|
97
|
+
|
98
|
+
IOS_SDK_VERSION=7.1 BUNDLE_ID=com.example.apple-samplecode.PhotoPicker rake simulator:allow_photos_access
|
99
|
+
|
76
100
|
## Feedback
|
77
101
|
|
78
102
|
Please raise issues if you find problems or have a feature request.
|
data/lib/israkel.rb
CHANGED
@@ -0,0 +1,158 @@
|
|
1
|
+
require 'cfpropertylist'
|
2
|
+
require 'sqlite3'
|
3
|
+
|
4
|
+
class Device
|
5
|
+
attr_accessor :UUID, :type, :name, :state, :runtime
|
6
|
+
|
7
|
+
def initialize(uuid, type, name, state, runtime)
|
8
|
+
@UUID = uuid
|
9
|
+
@type = type
|
10
|
+
@name = name
|
11
|
+
@state = state
|
12
|
+
@runtime = runtime
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.from_hash(hash)
|
16
|
+
self.new(hash['UDID'], hash['deviceType'], hash['name'], hash['state'], hash['runtime'])
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.from_plist(plist)
|
20
|
+
self.from_hash(CFPropertyList.native_types(plist.value))
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.with_sdk_and_type(sdk_version, type)
|
24
|
+
Device.all.each do |device|
|
25
|
+
return device if device.os == sdk_version && device.type.split('.').last == type
|
26
|
+
end
|
27
|
+
nil
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.stop
|
31
|
+
system 'killall', '-m', '-TERM', 'iOS Simulator'
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.all
|
35
|
+
devices = []
|
36
|
+
dirs = Dir.entries(Device.sim_root_path).reject { |entry| File.directory? entry }
|
37
|
+
dirs.sort.each do |simulator_dir|
|
38
|
+
plist_path = "#{Device.sim_root_path}/#{simulator_dir}/device.plist"
|
39
|
+
if File.exists?(plist_path)
|
40
|
+
plist = CFPropertyList::List.new(:file => plist_path)
|
41
|
+
devices << Device.from_plist(plist)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
devices
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.edit_plist(path, &block)
|
48
|
+
if File.exists?(path)
|
49
|
+
plist = CFPropertyList::List.new(:file => path)
|
50
|
+
content = CFPropertyList.native_types(plist.value)
|
51
|
+
end
|
52
|
+
yield content || {}
|
53
|
+
if plist
|
54
|
+
plist.value = CFPropertyList.guess(content)
|
55
|
+
plist.save(path, CFPropertyList::List::FORMAT_BINARY)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def to_s
|
60
|
+
"#{name} #{pretty_runtime}"
|
61
|
+
end
|
62
|
+
|
63
|
+
def allow_addressbook_access(bundle_id)
|
64
|
+
allow_tcc_access('kTCCServiceAddressBook', bundle_id)
|
65
|
+
end
|
66
|
+
|
67
|
+
def allow_photos_access(bundle_id)
|
68
|
+
allow_tcc_access('kTCCServicePhotos', bundle_id)
|
69
|
+
end
|
70
|
+
|
71
|
+
def allow_gps_access(bundle_id)
|
72
|
+
directory = File.join(path, 'Library', 'Caches', 'locationd')
|
73
|
+
FileUtils.mkdir_p(directory) unless Dir.exists?(directory)
|
74
|
+
Device.edit_plist(File.join(directory, 'clients.plist')) do |content|
|
75
|
+
set_gps_access(content, bundle_id)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def set_language(language)
|
80
|
+
edit_global_preferences do |p|
|
81
|
+
if p['AppleLanguages']
|
82
|
+
if p['AppleLanguages'].include?(language)
|
83
|
+
p['AppleLanguages'].unshift(language).uniq!
|
84
|
+
else
|
85
|
+
fail "#{language} is not a valid language"
|
86
|
+
end
|
87
|
+
else
|
88
|
+
p['AppleLanguages'] = [language]
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def start
|
94
|
+
system "ios-sim start --devicetypeid \"#{device_type}\""
|
95
|
+
end
|
96
|
+
|
97
|
+
def reset
|
98
|
+
FileUtils.rm_rf File.join(path)
|
99
|
+
FileUtils.mkdir File.join(path)
|
100
|
+
end
|
101
|
+
|
102
|
+
def self.sim_root_path
|
103
|
+
File.join(ENV['HOME'], 'Library', 'Developer', 'CoreSimulator', 'Devices')
|
104
|
+
end
|
105
|
+
|
106
|
+
def os
|
107
|
+
runtime.gsub('com.apple.CoreSimulator.SimRuntime.iOS-', '').gsub('-', '.')
|
108
|
+
end
|
109
|
+
|
110
|
+
def edit_global_preferences(&block)
|
111
|
+
pref_path = File.join(path, 'Library', 'Preferences')
|
112
|
+
Device.edit_plist( File.join(pref_path, '.GlobalPreferences.plist'), &block )
|
113
|
+
end
|
114
|
+
|
115
|
+
def edit_preferences(&block)
|
116
|
+
pref_path = File.join(path, 'Library', 'Preferences')
|
117
|
+
Device.edit_plist( File.join(pref_path, 'com.apple.Preferences.plist'), &block )
|
118
|
+
end
|
119
|
+
|
120
|
+
def tcc_path
|
121
|
+
File.join(path, 'Library', 'TCC', 'TCC.db')
|
122
|
+
end
|
123
|
+
|
124
|
+
private
|
125
|
+
|
126
|
+
def set_gps_access(hash, bundle_id)
|
127
|
+
hash.merge!({
|
128
|
+
bundle_id => {
|
129
|
+
'Authorized' => true,
|
130
|
+
'BundleId' => bundle_id,
|
131
|
+
'Executable' => "",
|
132
|
+
'Registered' => "",
|
133
|
+
'Whitelisted' => false,
|
134
|
+
}
|
135
|
+
})
|
136
|
+
end
|
137
|
+
|
138
|
+
def allow_tcc_access(service, bundle_id)
|
139
|
+
db_path = tcc_path
|
140
|
+
db = SQLite3::Database.new(db_path)
|
141
|
+
db.prepare "insert into access (service, client, client_type, allowed, prompt_count, csreq) values (?, ?, ?, ?, ?, ?)" do |query|
|
142
|
+
query.execute service, bundle_id, 0, 1, 0, ""
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def pretty_runtime
|
147
|
+
"iOS #{os}"
|
148
|
+
end
|
149
|
+
|
150
|
+
def path
|
151
|
+
File.join(Device.sim_root_path, @UUID, 'data')
|
152
|
+
end
|
153
|
+
|
154
|
+
def device_type
|
155
|
+
[@type, os].join(', ')
|
156
|
+
end
|
157
|
+
|
158
|
+
end
|
data/lib/israkel/tasks.rb
CHANGED
@@ -1,185 +1,118 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'highline/import'
|
3
|
-
require 'json'
|
4
1
|
require 'rake'
|
5
2
|
require 'rake/tasklib'
|
6
|
-
require '
|
3
|
+
require 'highline/import'
|
7
4
|
|
8
5
|
module ISRakel
|
9
6
|
class Tasks < ::Rake::TaskLib
|
10
7
|
include ::Rake::DSL if defined?(::Rake::DSL)
|
11
8
|
include Singleton
|
12
9
|
|
13
|
-
attr_accessor :name, :
|
10
|
+
attr_accessor :name, :current_device
|
14
11
|
|
15
12
|
def initialize(name = :simulator)
|
16
13
|
@name = name
|
17
14
|
|
18
15
|
yield self if block_given?
|
19
16
|
|
17
|
+
define_allow_addressbook_access_task
|
20
18
|
define_allow_gps_access_task
|
19
|
+
define_allow_photos_access_task
|
21
20
|
define_reset_task
|
22
21
|
define_set_language_task
|
23
22
|
define_start_task
|
24
23
|
define_stop_task
|
25
24
|
end
|
26
25
|
|
27
|
-
def allow_addressbook_access(bundle_id)
|
28
|
-
db_path = File.join(simulator_support_path, 'Library', 'TCC', 'TCC.db')
|
29
|
-
db = SQLite3::Database.new(db_path)
|
30
|
-
db.prepare "insert into access (service, client, client_type, allowed, prompt_count, csreq) values (?, ?, ?, ?, ?, ?)" do |query|
|
31
|
-
query.execute "kTCCServiceAddressBook", bundle_id, 0, 1, 0, ""
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def allow_gps_access(bundle_id)
|
36
|
-
directory = File.join(simulator_support_path, 'Library', 'Caches', 'locationd')
|
37
|
-
FileUtils.mkdir_p(directory) unless Dir.exists?(directory)
|
38
|
-
edit_file( File.join(directory, 'clients.plist') ) do |content|
|
39
|
-
content.merge!({
|
40
|
-
bundle_id => {
|
41
|
-
:Authorized => true,
|
42
|
-
:BundleId => bundle_id,
|
43
|
-
:Executable => "",
|
44
|
-
:Registered => "",
|
45
|
-
:Whitelisted => false,
|
46
|
-
}
|
47
|
-
})
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
26
|
def edit_global_preferences(&block)
|
52
|
-
|
27
|
+
current_device.edit_global_preferences(&block)
|
53
28
|
end
|
54
29
|
|
55
30
|
def edit_preferences(&block)
|
56
|
-
|
31
|
+
current_device.edit_preferences(&block)
|
57
32
|
end
|
58
33
|
|
59
|
-
def
|
60
|
-
@
|
34
|
+
def current_device
|
35
|
+
@current_device || select_device
|
61
36
|
end
|
62
37
|
|
63
|
-
|
64
|
-
edit_global_preferences do |p|
|
65
|
-
unless p['AppleLanguages'].include?(language)
|
66
|
-
fail "#{language} is not a valid language"
|
67
|
-
end
|
68
|
-
p['AppleLanguages'].unshift(language).uniq!
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def simulator_path
|
73
|
-
@simulator_path ||= File.join(xcode_path, 'Platforms', 'iPhoneSimulator.platform', 'Developer', 'Applications', 'iPhone Simulator.app')
|
74
|
-
end
|
75
|
-
|
76
|
-
def simulator_preferences_path
|
77
|
-
File.join(simulator_support_path, 'Library', 'Preferences')
|
78
|
-
end
|
38
|
+
private
|
79
39
|
|
80
|
-
def
|
81
|
-
|
40
|
+
def bundle_id
|
41
|
+
bundle_id = ENV['BUNDLE_ID']
|
42
|
+
if bundle_id.nil?
|
43
|
+
raise "You must set the BUNDLE_ID environment variable"
|
44
|
+
end
|
45
|
+
bundle_id
|
82
46
|
end
|
83
47
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
48
|
+
def ios_lang
|
49
|
+
language = ENV['IOS_LANG']
|
50
|
+
if language.nil?
|
51
|
+
raise "You must set the IOS_LANG environment variable"
|
52
|
+
end
|
53
|
+
language
|
88
54
|
end
|
89
55
|
|
90
|
-
def
|
91
|
-
|
92
|
-
|
93
|
-
|
56
|
+
def define_allow_addressbook_access_task
|
57
|
+
desc "Allow AdressBook access (via BUNDLE_ID environment variable)"
|
58
|
+
task "#{name}:allow_addressbook_access" do
|
59
|
+
current_device.allow_addressbook_access(bundle_id)
|
94
60
|
end
|
95
|
-
yield content
|
96
|
-
hash_to_plist(content, file)
|
97
61
|
end
|
98
62
|
|
99
63
|
def define_allow_gps_access_task
|
100
64
|
desc "Allow GPS access (via BUNDLE_ID environment variable)"
|
101
65
|
task "#{name}:allow_gps_access" do
|
102
|
-
bundle_id
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
66
|
+
current_device.allow_gps_access(bundle_id)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def define_allow_photos_access_task
|
71
|
+
desc "Allow Photos access (via BUNDLE_ID environment variable)"
|
72
|
+
task "#{name}:allow_photos_access" do
|
73
|
+
current_device.allow_photos_access(bundle_id)
|
107
74
|
end
|
108
75
|
end
|
109
76
|
|
110
77
|
def define_reset_task
|
111
78
|
desc "Reset content and settings of the iPhone Simulator"
|
112
79
|
task "#{name}:reset" do
|
113
|
-
|
114
|
-
mkdir File.join(simulator_support_path)
|
80
|
+
current_device.reset
|
115
81
|
end
|
116
82
|
end
|
117
83
|
|
118
84
|
def define_set_language_task
|
119
85
|
desc "Set the system language (via IOS_LANG environment variable)"
|
120
86
|
task "#{name}:set_language" do
|
121
|
-
|
122
|
-
if language.nil?
|
123
|
-
fail "You must set the IOS_LANG environment variable"
|
124
|
-
end
|
125
|
-
set_language(language)
|
87
|
+
current_device.set_language(ios_lang)
|
126
88
|
end
|
127
89
|
end
|
128
90
|
|
129
91
|
def define_start_task
|
130
92
|
desc "Start the iPhone Simulator"
|
131
93
|
task "#{name}:start" do
|
132
|
-
|
133
|
-
sh 'ios-sim', 'start', '--retina', '--sdk', sdk_version[0..2]
|
94
|
+
current_device.start
|
134
95
|
end
|
135
96
|
end
|
136
97
|
|
137
98
|
def define_stop_task
|
138
99
|
desc "Stop the iPhone Simulator"
|
139
100
|
task "#{name}:stop" do
|
140
|
-
|
141
|
-
end
|
101
|
+
Device.stop
|
142
102
|
end
|
143
103
|
end
|
144
104
|
|
145
|
-
def
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
def ios_sim_path
|
152
|
-
@ios_sim_path ||= `which ios-sim`.chomp
|
153
|
-
abort "please install ios-sim" if @ios_sim_path.empty?
|
154
|
-
@ios_sim_path
|
155
|
-
end
|
156
|
-
|
157
|
-
def plist_to_hash(path)
|
158
|
-
JSON.parse( IO.popen(['plutil', '-convert', 'json', '-o', '-', path]) {|f| f.read} )
|
159
|
-
end
|
160
|
-
|
161
|
-
def simulator_versions
|
162
|
-
versions = Dir.entries(simulator_root_path).reject {|e| File.directory?(e)}
|
163
|
-
versions.select { |sim_path| sim_path != 'User' }
|
164
|
-
end
|
165
|
-
|
166
|
-
def select_sdk_version
|
167
|
-
result = ENV['IOS_SDK_VERSION']
|
168
|
-
return result unless result.nil?
|
105
|
+
def select_device
|
106
|
+
sdk_version = ENV['IOS_SDK_VERSION']
|
107
|
+
device_type = ENV['DEVICE_TYPE']
|
108
|
+
@current_device = Device.with_sdk_and_type(sdk_version, device_type)
|
109
|
+
return @current_device if @current_device
|
169
110
|
choose do |menu|
|
170
|
-
menu.prompt = "Please select
|
171
|
-
menu.choices(*
|
172
|
-
|
111
|
+
menu.prompt = "Please select a simulator"
|
112
|
+
menu.choices(*Device.all) do |device|
|
113
|
+
@current_device = device
|
173
114
|
end
|
174
115
|
end
|
175
|
-
result
|
176
|
-
end
|
177
|
-
|
178
|
-
def xcode_path
|
179
|
-
@xcode_path ||= `xcode-select --print-path`.chomp
|
180
|
-
abort "please install xcode and the command line tools" if @xcode_path.empty?
|
181
|
-
@xcode_path
|
182
116
|
end
|
183
|
-
|
184
117
|
end
|
185
118
|
end
|
metadata
CHANGED
@@ -1,138 +1,156 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: israkel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Johannes Plunien
|
9
8
|
- Stefan Munz
|
9
|
+
- Matthias Männich
|
10
|
+
- Piet Brauer
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date:
|
14
|
+
date: 2014-10-20 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: highline
|
17
18
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
19
|
requirements:
|
20
|
-
- - ~>
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.6'
|
23
|
+
- - ">="
|
21
24
|
- !ruby/object:Gem::Version
|
22
25
|
version: 1.6.15
|
23
26
|
type: :runtime
|
24
27
|
prerelease: false
|
25
28
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
29
|
requirements:
|
28
|
-
- - ~>
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.6'
|
33
|
+
- - ">="
|
29
34
|
- !ruby/object:Gem::Version
|
30
35
|
version: 1.6.15
|
31
36
|
- !ruby/object:Gem::Dependency
|
32
37
|
name: json
|
33
38
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
39
|
requirements:
|
36
|
-
- - ~>
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.8'
|
43
|
+
- - ">="
|
37
44
|
- !ruby/object:Gem::Version
|
38
45
|
version: 1.8.0
|
39
46
|
type: :runtime
|
40
47
|
prerelease: false
|
41
48
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
49
|
requirements:
|
44
|
-
- - ~>
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '1.8'
|
53
|
+
- - ">="
|
45
54
|
- !ruby/object:Gem::Version
|
46
55
|
version: 1.8.0
|
47
56
|
- !ruby/object:Gem::Dependency
|
48
57
|
name: rake
|
49
58
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
59
|
requirements:
|
52
|
-
- - ~>
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '10.3'
|
63
|
+
- - ">="
|
53
64
|
- !ruby/object:Gem::Version
|
54
|
-
version: 10.
|
65
|
+
version: 10.3.2
|
55
66
|
type: :runtime
|
56
67
|
prerelease: false
|
57
68
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
69
|
requirements:
|
60
|
-
- - ~>
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '10.3'
|
73
|
+
- - ">="
|
61
74
|
- !ruby/object:Gem::Version
|
62
|
-
version: 10.
|
75
|
+
version: 10.3.2
|
63
76
|
- !ruby/object:Gem::Dependency
|
64
77
|
name: sqlite3
|
65
78
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
79
|
requirements:
|
68
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.3'
|
83
|
+
- - ">="
|
69
84
|
- !ruby/object:Gem::Version
|
70
85
|
version: 1.3.7
|
71
86
|
type: :runtime
|
72
87
|
prerelease: false
|
73
88
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
89
|
requirements:
|
76
|
-
- - ~>
|
90
|
+
- - "~>"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '1.3'
|
93
|
+
- - ">="
|
77
94
|
- !ruby/object:Gem::Version
|
78
95
|
version: 1.3.7
|
79
96
|
- !ruby/object:Gem::Dependency
|
80
|
-
name:
|
97
|
+
name: CFPropertyList
|
81
98
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
99
|
requirements:
|
84
|
-
- - ~>
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '2.2'
|
103
|
+
- - ">="
|
85
104
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
87
|
-
type: :
|
105
|
+
version: 2.2.8
|
106
|
+
type: :runtime
|
88
107
|
prerelease: false
|
89
108
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
109
|
requirements:
|
92
|
-
- - ~>
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '2.2'
|
113
|
+
- - ">="
|
93
114
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
115
|
+
version: 2.2.8
|
95
116
|
description: Collection of common rake tasks for the iPhone Simulator like start/stop
|
96
117
|
and some more.
|
97
118
|
email:
|
98
119
|
- johannes.plunien@xing.com
|
99
120
|
- stefan.munz@xing.com
|
121
|
+
- matthias.maennich@xing.com
|
122
|
+
- piet.brauer@xing.com
|
100
123
|
executables: []
|
101
124
|
extensions: []
|
102
125
|
extra_rdoc_files:
|
103
126
|
- README.md
|
104
127
|
files:
|
105
|
-
- Gemfile
|
106
|
-
- Gemfile.lock
|
107
128
|
- README.md
|
108
|
-
- Rakefile
|
109
|
-
- VERSION
|
110
|
-
- israkel.gemspec
|
111
129
|
- lib/israkel.rb
|
130
|
+
- lib/israkel/device.rb
|
112
131
|
- lib/israkel/tasks.rb
|
113
132
|
homepage: http://github.com/xing/israkel
|
114
133
|
licenses:
|
115
134
|
- MIT
|
135
|
+
metadata: {}
|
116
136
|
post_install_message:
|
117
137
|
rdoc_options: []
|
118
138
|
require_paths:
|
119
139
|
- lib
|
120
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
141
|
requirements:
|
123
|
-
- -
|
142
|
+
- - ">="
|
124
143
|
- !ruby/object:Gem::Version
|
125
144
|
version: '0'
|
126
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
|
-
none: false
|
128
146
|
requirements:
|
129
|
-
- -
|
147
|
+
- - ">="
|
130
148
|
- !ruby/object:Gem::Version
|
131
149
|
version: '0'
|
132
150
|
requirements: []
|
133
151
|
rubyforge_project:
|
134
|
-
rubygems_version:
|
152
|
+
rubygems_version: 2.2.2
|
135
153
|
signing_key:
|
136
|
-
specification_version:
|
154
|
+
specification_version: 4
|
137
155
|
summary: Collection of common rake tasks for the iPhone Simulator.
|
138
156
|
test_files: []
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
git (1.2.5)
|
5
|
-
highline (1.6.19)
|
6
|
-
jeweler (1.8.4)
|
7
|
-
bundler (~> 1.0)
|
8
|
-
git (>= 1.2.5)
|
9
|
-
rake
|
10
|
-
rdoc
|
11
|
-
json (1.8.0)
|
12
|
-
rake (10.0.4)
|
13
|
-
rdoc (4.0.1)
|
14
|
-
json (~> 1.4)
|
15
|
-
sqlite3 (1.3.7)
|
16
|
-
|
17
|
-
PLATFORMS
|
18
|
-
ruby
|
19
|
-
|
20
|
-
DEPENDENCIES
|
21
|
-
highline (~> 1.6.15)
|
22
|
-
jeweler (~> 1.8.4)
|
23
|
-
json (~> 1.8.0)
|
24
|
-
rake (~> 10.0.0)
|
25
|
-
sqlite3 (~> 1.3.7)
|
data/Rakefile
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
$:.unshift "#{File.dirname(__FILE__)}/lib"
|
2
|
-
require 'jeweler'
|
3
|
-
require 'israkel'
|
4
|
-
|
5
|
-
Jeweler::Tasks.new do |gem|
|
6
|
-
gem.name = 'israkel'
|
7
|
-
gem.homepage = 'http://github.com/xing/israkel'
|
8
|
-
gem.license = 'MIT'
|
9
|
-
gem.summary = %Q{Collection of common rake tasks for the iPhone Simulator.}
|
10
|
-
gem.description = %Q{Collection of common rake tasks for the iPhone Simulator like start/stop and some more.}
|
11
|
-
gem.email = ['johannes.plunien@xing.com', 'stefan.munz@xing.com']
|
12
|
-
gem.authors = ['Johannes Plunien', 'Stefan Munz']
|
13
|
-
end
|
14
|
-
Jeweler::RubygemsDotOrgTasks.new
|
15
|
-
|
16
|
-
i = ISRakel::Tasks.instance
|
17
|
-
desc "Change keyboard preferences"
|
18
|
-
task :set_keyboard_preferences do
|
19
|
-
i.edit_preferences do |p|
|
20
|
-
p.merge!({
|
21
|
-
:KeyboardAutocapitalization => false,
|
22
|
-
:KeyboardAutocorrection => false,
|
23
|
-
:KeyboardCapsLock => false,
|
24
|
-
:KeyboardCheckSpelling => false,
|
25
|
-
:KeyboardPeriodShortcut => false,
|
26
|
-
})
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "Allow GPS access"
|
31
|
-
task :allow_gps_access do
|
32
|
-
i.allow_gps_access("com.plu.FooApp")
|
33
|
-
end
|
34
|
-
|
35
|
-
desc "Allow Addressbook access"
|
36
|
-
task :allow_ab_access do
|
37
|
-
i.allow_addressbook_access("com.plu.FooApp")
|
38
|
-
end
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.4.3
|
data/israkel.gemspec
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = "israkel"
|
8
|
-
s.version = "0.4.3"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Johannes Plunien", "Stefan Munz"]
|
12
|
-
s.date = "2013-11-20"
|
13
|
-
s.description = "Collection of common rake tasks for the iPhone Simulator like start/stop and some more."
|
14
|
-
s.email = ["johannes.plunien@xing.com", "stefan.munz@xing.com"]
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"README.md"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
"Gemfile",
|
20
|
-
"Gemfile.lock",
|
21
|
-
"README.md",
|
22
|
-
"Rakefile",
|
23
|
-
"VERSION",
|
24
|
-
"israkel.gemspec",
|
25
|
-
"lib/israkel.rb",
|
26
|
-
"lib/israkel/tasks.rb"
|
27
|
-
]
|
28
|
-
s.homepage = "http://github.com/xing/israkel"
|
29
|
-
s.licenses = ["MIT"]
|
30
|
-
s.require_paths = ["lib"]
|
31
|
-
s.rubygems_version = "1.8.25"
|
32
|
-
s.summary = "Collection of common rake tasks for the iPhone Simulator."
|
33
|
-
|
34
|
-
if s.respond_to? :specification_version then
|
35
|
-
s.specification_version = 3
|
36
|
-
|
37
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
38
|
-
s.add_runtime_dependency(%q<highline>, ["~> 1.6.15"])
|
39
|
-
s.add_runtime_dependency(%q<json>, ["~> 1.8.0"])
|
40
|
-
s.add_runtime_dependency(%q<rake>, ["~> 10.1.0"])
|
41
|
-
s.add_runtime_dependency(%q<sqlite3>, ["~> 1.3.7"])
|
42
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
43
|
-
else
|
44
|
-
s.add_dependency(%q<highline>, ["~> 1.6.15"])
|
45
|
-
s.add_dependency(%q<json>, ["~> 1.8.0"])
|
46
|
-
s.add_dependency(%q<rake>, ["~> 10.1.0"])
|
47
|
-
s.add_dependency(%q<sqlite3>, ["~> 1.3.7"])
|
48
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
49
|
-
end
|
50
|
-
else
|
51
|
-
s.add_dependency(%q<highline>, ["~> 1.6.15"])
|
52
|
-
s.add_dependency(%q<json>, ["~> 1.8.0"])
|
53
|
-
s.add_dependency(%q<rake>, ["~> 10.1.0"])
|
54
|
-
s.add_dependency(%q<sqlite3>, ["~> 1.3.7"])
|
55
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|