israkel 0.4.3 → 1.0.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 +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
|
+
[](https://travis-ci.org/xing/israkel)
|
4
|
+
[](https://coveralls.io/r/xing/israkel)
|
5
|
+
[](https://www.versioneye.com/user/projects/5444b70c53acfa4b0f0000cf)
|
6
|
+
[](https://codeclimate.com/github/xing/israkel)
|
7
|
+
[](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
|
-
|