frank-cucumber 1.1.6 → 1.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -2,6 +2,26 @@ require 'bundler'
2
2
  require 'rake/testtask'
3
3
  Bundler::GemHelper.install_tasks
4
4
 
5
+ desc 'check that the static libraries shipping with the gem have the same version number as the gem itself'
6
+ task :check_lib_versions do
7
+ lib_path = File.expand_path( '../frank-skeleton/libFrank.a', __FILE__)
8
+ lib_version = `what #{lib_path}`.chomp.split("\n").last.split(" ").last
9
+ puts "LIBRARY VERSION: #{lib_version}"
10
+ puts "GEM VERSION: #{Frank::Cucumber::VERSION}"
11
+ unless lib_version == Frank::Cucumber::VERSION
12
+ raise <<-EOS
13
+
14
+ RUH ROH.
15
+ static lib version doesn't match gem version.
16
+
17
+ to fix this:
18
+ (cd .. && rake build_for_release)
19
+ EOS
20
+ end
21
+ end
22
+
23
+ task :build => :check_lib_versions
24
+
5
25
  desc 'open up version.rb'
6
26
  task :edit_version do
7
27
  exec "vim #{File.dirname(__FILE__)}/lib/frank-cucumber/version.rb"
@@ -1,5 +1,6 @@
1
1
  INSTALL_PATH = /./
2
2
 
3
- FRANK_LDFLAGS = -all_load -ObjC -framework CFNetwork -framework Security -lShelley <%= @without_http_server ? "" : "-lCocoaHTTPServer" %> -lFrank
4
- FRANK_MAC_LDFLAGS = -all_load -ObjC -framework CFNetwork -framework Security -lShelleyMac <%= @without_http_server ? "" : "-lCocoaHTTPServerMac" %> -lFrankMac
3
+ FRANK_LDFLAGS = -all_load -ObjC -framework CFNetwork -framework Security -lShelley -lFrank <%= @libs.map { |lib| "-l#{lib}" }.join(' ') %>
4
+ FRANK_MAC_LDFLAGS = -all_load -ObjC -framework CFNetwork -framework Security -lShelleyMac -lFrankMac <%= @libsMac.map { |lib| "-l#{lib}" }.join(' ') %>
5
+
5
6
  GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = FRANKIFIED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -24,11 +24,22 @@ module Frank
24
24
  end
25
25
 
26
26
  WITHOUT_SERVER = "without-cocoa-http-server"
27
+ WITHOUT_ASYNC_SOCKET = "without-cocoa-async-socket"
28
+ WITHOUT_LUMBERJACK = "without-cocoa-lumberjack"
27
29
  desc "setup", "set up your iOS app by adding a Frank subdirectory containing everything Frank needs"
28
30
  method_option WITHOUT_SERVER, :type => :boolean
31
+ method_option WITHOUT_ASYNC_SOCKET, :type => :boolean
32
+ method_option WITHOUT_LUMBERJACK, :type => :boolean
29
33
  method_option :build_configuration, :aliases=>'--conf', :type=>:string, :default => 'Debug'
30
34
  def setup
31
- @without_http_server = options[WITHOUT_SERVER]
35
+ @libs = %w(Shelley CocoaAsyncSocket CocoaLumberjack CocoaHTTPServer Frank)
36
+ @libsMac = %w(CocoaAsyncSocketMac CocoaLumberjackMac CocoaHTTPServerMac FrankMac)
37
+ @libs -= %w(CocoaHTTPServer) if options[WITHOUT_SERVER]
38
+ @libsMac -= %w(CocoaHTTPServerMac) if options[WITHOUT_SERVER]
39
+ @libs -= %w(CocoaAsyncSocket) if options[WITHOUT_ASYNC_SOCKET]
40
+ @libsMac -= %w(CocoaAsyncSocketMac) if options[WITHOUT_ASYNC_SOCKET]
41
+ @libs -= %w(CocoaLumberjack) if options[WITHOUT_LUMBERJACK]
42
+ @libsMac -= %w(CocoaLumberjackMac) if options[WITHOUT_LUMBERJACK]
32
43
  directory ".", "Frank"
33
44
 
34
45
  Frankifier.frankify!( File.expand_path('.'), :build_config => options[:build_configuration] )
@@ -37,13 +48,13 @@ module Frank
37
48
  desc "update", "updates the frank server components inside your Frank directory"
38
49
  long_desc "This updates the parts of Frank that are embedded inside your app (e.g. libFrank.a and frank_static_resources.bundle)"
39
50
  def update
40
- %w{libFrank.a libCocoaHTTPServer.a libShelley.a libFrankMac.a libCocoaHTTPServerMac.a libShelleyMac.a}.each do |f|
51
+ %w{libFrank.a libCocoaAsyncSocket.a libCocoaLumberjack.a libCocoaHTTPServer.a libShelley.a libFrankMac.a libShelleyMac libCocoaAsyncSocketMac.a libCocoaLumberjackMac.a libCocoaHTTPServerMac.a}.each do |f|
41
52
  copy_file f, File.join( 'Frank', f ), :force => true
42
53
  end
43
54
  directory( 'frank_static_resources.bundle', 'Frank/frank_static_resources.bundle', :force => true )
44
55
  end
45
56
 
46
- XCODEBUILD_OPTIONS = %w{workspace scheme target}
57
+ XCODEBUILD_OPTIONS = %w{workspace scheme target configuration}
47
58
  desc "build", "builds a Frankified version of your native app"
48
59
  XCODEBUILD_OPTIONS.each do |option|
49
60
  method_option option
@@ -79,12 +90,20 @@ module Frank
79
90
 
80
91
  extra_opts = XCODEBUILD_OPTIONS.map{ |o| "-#{o} \"#{options[o]}\"" if options[o] }.compact.join(' ')
81
92
 
93
+ # If there is a scheme specified we don't want to inject the default configuration
94
+ # If there is a configuration specified, we also do not want to inject the default configuration
95
+ if options['scheme'] || options['configuration']
96
+ separate_configuration_option = ""
97
+ else
98
+ separate_configuration_option = "-configuration Debug"
99
+ end
100
+
82
101
  if options['mac']
83
- run %Q|xcodebuild -xcconfig Frank/frankify.xcconfig #{build_steps} #{extra_opts} -configuration Debug DEPLOYMENT_LOCATION=YES DSTROOT="#{build_output_dir}" FRANK_LIBRARY_SEARCH_PATHS="\\"#{frank_lib_directory}\\""|
102
+ run %Q|xcodebuild -xcconfig Frank/frankify.xcconfig #{build_steps} #{extra_opts} #{separate_configuration_option} DEPLOYMENT_LOCATION=YES DSTROOT="#{build_output_dir}" FRANK_LIBRARY_SEARCH_PATHS="\\"#{frank_lib_directory}\\""|
84
103
  else
85
104
  extra_opts += " -arch #{options['arch']}"
86
105
 
87
- run %Q|xcodebuild -xcconfig Frank/frankify.xcconfig #{build_steps} #{extra_opts} -configuration Debug -sdk iphonesimulator DEPLOYMENT_LOCATION=YES DSTROOT="#{build_output_dir}" FRANK_LIBRARY_SEARCH_PATHS="\\"#{frank_lib_directory}\\""|
106
+ run %Q|xcodebuild -xcconfig Frank/frankify.xcconfig #{build_steps} #{extra_opts} #{separate_configuration_option} -sdk iphonesimulator DEPLOYMENT_LOCATION=YES DSTROOT="#{build_output_dir}" FRANK_LIBRARY_SEARCH_PATHS="\\"#{frank_lib_directory}\\""|
88
107
  end
89
108
 
90
109
  app = Dir.glob("#{build_output_dir}/*.app").delete_if { |x| x =~ /\/#{app_bundle_name}$/ }
@@ -118,7 +137,7 @@ module Frank
118
137
 
119
138
  desc "launch", "open the Frankified app in the simulator"
120
139
  method_option :debug, :type => :boolean, :default => false
121
- method_option :idiom, :banner => 'iphone|ipad|mac', :type => :string, :default => (ENV['FRANK_SIM_IDIOM'] || 'iphone')
140
+ method_option :idiom, :banner => 'iphone|ipad', :type => :string, :default => (ENV['FRANK_SIM_IDIOM'] || 'iphone')
122
141
  def launch
123
142
  $DEBUG = options[:debug]
124
143
  launcher = case options[:idiom].downcase
@@ -126,10 +145,8 @@ module Frank
126
145
  SimLauncher::DirectClient.for_iphone_app( frankified_app_dir )
127
146
  when 'ipad'
128
147
  SimLauncher::DirectClient.for_ipad_app( frankified_app_dir )
129
- when 'mac'
130
- Frank::MacLauncher.new( frankified_app_dir )
131
148
  else
132
- say "idiom must be either iphone, ipad, or mac. You supplied '#{options[:idiom]}'", :red
149
+ say "idiom must be either iphone or ipad. You supplied '#{options[:idiom]}'", :red
133
150
  exit 10
134
151
  end
135
152
 
@@ -140,7 +157,12 @@ module Frank
140
157
  invoke :build
141
158
  end
142
159
 
143
- say "LAUNCHING IN THE SIMULATOR..."
160
+ if built_product_is_mac_app( frankified_app_dir )
161
+ launcher = Frank::MacLauncher.new( frankified_app_dir )
162
+ say "LAUNCHING APP..."
163
+ else
164
+ say "LAUNCHING IN THE SIMULATOR..."
165
+ end
144
166
 
145
167
  launcher.relaunch
146
168
  end
@@ -194,6 +216,10 @@ module Frank
194
216
  File.join( build_output_dir, app_bundle_name )
195
217
  end
196
218
 
219
+ def built_product_is_mac_app ( app_dir )
220
+ return File.exists? File.join( app_dir, "Contents", "MacOS" )
221
+ end
222
+
197
223
  def fix_frankified_apps_bundle_identifier
198
224
  # as of iOS 6 the iOS Simulator locks up with a black screen if you try and launch an app which has the same
199
225
  # bundle identifier as a previously installed app but which is in fact a different app. This impacts us because our
@@ -85,6 +85,7 @@ module FrankHelper
85
85
  touch_successes = frankly_map( selector, 'touch' )
86
86
  raise "could not find anything matching [#{selector}] to touch" if touch_successes.empty?
87
87
  raise "some views could not be touched (probably because they are not within the current viewport)" if touch_successes.include?(false)
88
+ touch_successes
88
89
  end
89
90
 
90
91
  # Indicate whether there are any views in the current view heirarchy which match the specified selector.
@@ -4,8 +4,8 @@ module Frank module Cucumber
4
4
 
5
5
  module FrankHelper
6
6
 
7
- def press( selector )
8
- touch_successes = frankly_map( selector, 'FEX_press' )
7
+ def simulate_click( selector )
8
+ touch_successes = frankly_map( selector, 'FEX_simulateClick' )
9
9
  raise "could not find anything matching [#{selector}] to press" if touch_successes == nil or touch_successes.empty?
10
10
  raise "some objects do not support the press action" if touch_successes.include?(false)
11
11
  end
@@ -1,5 +1,5 @@
1
1
  module Frank
2
2
  module Cucumber
3
- VERSION = "1.1.6"
3
+ VERSION = "1.1.7"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frank-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 1.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-01-26 00:00:00.000000000 Z
13
+ date: 2013-02-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: cucumber
@@ -239,8 +239,12 @@ files:
239
239
  - frank-skeleton/features/step_definitions/launch_steps.rb
240
240
  - frank-skeleton/features/support/env.rb
241
241
  - frank-skeleton/frankify.xcconfig.tt
242
+ - frank-skeleton/libCocoaAsyncSocket.a
243
+ - frank-skeleton/libCocoaAsyncSocketMac.a
242
244
  - frank-skeleton/libCocoaHTTPServer.a
243
245
  - frank-skeleton/libCocoaHTTPServerMac.a
246
+ - frank-skeleton/libCocoaLumberjack.a
247
+ - frank-skeleton/libCocoaLumberjackMac.a
244
248
  - frank-skeleton/libFrank.a
245
249
  - frank-skeleton/libFrankMac.a
246
250
  - frank-skeleton/libShelley.a