high_five 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/Gemfile.lock +19 -9
- data/Thorfile +2 -0
- data/bin/hi5 +12 -9
- data/ext/mkrf_conf.rb +25 -0
- data/high_five.gemspec +4 -1
- data/lib/high_five/android_helper.rb +24 -0
- data/lib/high_five/cli.rb +1 -3
- data/lib/high_five/config.rb +3 -2
- data/lib/high_five/ios_helper.rb +34 -0
- data/lib/high_five/thor/runner.rb +44 -0
- data/lib/high_five/thor/task.rb +58 -0
- data/lib/high_five/thor/tasks/android_tasks.rb +54 -0
- data/lib/high_five/{deploy_task.rb → thor/tasks/deploy.rb} +6 -5
- data/lib/high_five/thor/tasks/distribution.rb +74 -0
- data/lib/high_five/{init_task.rb → thor/tasks/initialization.rb} +6 -6
- data/lib/high_five/thor/tasks/ios_tasks.rb +42 -0
- data/lib/high_five/thor/tasks.rb +10 -0
- data/lib/high_five/version.rb +2 -2
- data/spec/android_helper_spec.rb +9 -0
- data/spec/config_spec.rb +47 -0
- data/spec/deploy_spec.rb +2 -2
- data/spec/dummy/build.xml +92 -0
- data/spec/dummy/fake.mobileprovision +0 -0
- data/spec/init_spec.rb +2 -2
- data/spec/ios_helper_spec.rb +9 -0
- data/spec/spec_helper.rb +2 -1
- data/template/config/high_five.rb +10 -1
- metadata +70 -27
- data/lib/high_five/android_tasks.rb +0 -17
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ODliMzU0MzVmNjgzZGY4NWRlODYwM2RlYzM5MGY5NmIwOGRlM2NmYQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YjEzMjcwM2UwNTE5YTJkY2FmNWYzNzVkYzdmN2UwMTRmNDdkMmQzNg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZjdmMWVhYjhhOTJhODhhMWZhMTkyODNjNWEyNDRmZTE1NmMzODdiMTFjYjBm
|
10
|
+
MGMwYWVjYzlmYmZiY2VhZjdkMTE0NGUzNTdiZDMxYzE4ZmFhMmEzNjQ3YTRk
|
11
|
+
ZWEyN2QyNGFiNTQzMzFkMDRkMzk0ZTVjYzhlM2Y3MzUyZTljNjQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OGRmY2RhMWRmZTgwOTU4YjQwOGFlODU2YmE4ZjdlYWRmMWI2ZTIxYWRjODU2
|
14
|
+
NGI3M2Q5ZWEyOGU3MDFhMmY1NDE1ZGIxNDYwNDE2YTdlMzcwN2I5NmM2ZDNj
|
15
|
+
Yjc3YTEyNzU4MDQwYjZjNjM2YTY3ZWM4YjFhMjljNjZlZTkwZjQ=
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
high_five (0.
|
4
|
+
high_five (0.2.0)
|
5
|
+
coffee-script (~> 2.2.0)
|
5
6
|
compass (~> 0.12.2)
|
6
7
|
multi_json (~> 1.0)
|
8
|
+
nokogiri (>= 1.5.0)
|
9
|
+
plist (>= 3.0)
|
7
10
|
sprockets (>= 2.0)
|
8
11
|
thor (~> 0.17.0)
|
9
12
|
uglifier (~> 2.1.1)
|
@@ -16,18 +19,25 @@ GEM
|
|
16
19
|
Platform (>= 0.4.0)
|
17
20
|
open4
|
18
21
|
Platform (0.4.0)
|
19
|
-
chunky_png (1.2.
|
22
|
+
chunky_png (1.2.9)
|
23
|
+
coffee-script (2.2.0)
|
24
|
+
coffee-script-source
|
25
|
+
execjs
|
26
|
+
coffee-script-source (1.6.3)
|
20
27
|
compass (0.12.2)
|
21
28
|
chunky_png (~> 1.2)
|
22
29
|
fssm (>= 0.2.7)
|
23
30
|
sass (~> 3.1)
|
24
|
-
diff-lcs (1.2.
|
25
|
-
execjs (
|
26
|
-
multi_json (~> 1.0)
|
31
|
+
diff-lcs (1.2.5)
|
32
|
+
execjs (2.0.2)
|
27
33
|
fssm (0.2.10)
|
28
34
|
hike (1.2.3)
|
29
|
-
|
35
|
+
mini_portile (0.5.2)
|
36
|
+
multi_json (1.8.4)
|
37
|
+
nokogiri (1.6.1)
|
38
|
+
mini_portile (~> 0.5.0)
|
30
39
|
open4 (1.3.0)
|
40
|
+
plist (3.1.0)
|
31
41
|
rack (1.5.2)
|
32
42
|
rspec (2.13.0)
|
33
43
|
rspec-core (~> 2.13.0)
|
@@ -37,15 +47,15 @@ GEM
|
|
37
47
|
rspec-expectations (2.13.0)
|
38
48
|
diff-lcs (>= 1.1.3, < 2.0)
|
39
49
|
rspec-mocks (2.13.1)
|
40
|
-
sass (3.2.
|
41
|
-
sprockets (2.10.
|
50
|
+
sass (3.2.13)
|
51
|
+
sprockets (2.10.1)
|
42
52
|
hike (~> 1.2)
|
43
53
|
multi_json (~> 1.0)
|
44
54
|
rack (~> 1.0)
|
45
55
|
tilt (~> 1.1, != 1.3.0)
|
46
56
|
thor (0.17.0)
|
47
57
|
tilt (1.4.1)
|
48
|
-
uglifier (2.1.
|
58
|
+
uglifier (2.1.2)
|
49
59
|
execjs (>= 0.3.0)
|
50
60
|
multi_json (~> 1.0, >= 1.0.2)
|
51
61
|
yui-compressor (0.9.6)
|
data/Thorfile
ADDED
data/bin/hi5
CHANGED
@@ -1,17 +1,20 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# resolve bin path, ignoring symlinks
|
3
|
-
require
|
3
|
+
require 'high_five'
|
4
|
+
require 'high_five/thor/runner'
|
4
5
|
bin_file = Pathname.new(__FILE__).realpath
|
5
6
|
|
6
7
|
# add self to libpath
|
7
8
|
$:.unshift File.expand_path("../../lib", bin_file)
|
8
9
|
|
9
|
-
begin
|
10
|
-
|
11
|
-
rescue LoadError
|
12
|
-
|
13
|
-
|
14
|
-
end
|
15
|
-
require 'high_five/cli'
|
10
|
+
# begin
|
11
|
+
# require 'high_five'
|
12
|
+
# rescue LoadError
|
13
|
+
# require 'rubygems'
|
14
|
+
# require 'high_five'
|
15
|
+
# end
|
16
|
+
# require 'high_five/cli'
|
16
17
|
|
17
|
-
|
18
|
+
$thor_runner = true
|
19
|
+
$high_five_runner = true
|
20
|
+
::HighFive::Thor::Runner.start
|
data/ext/mkrf_conf.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rubygems/command.rb'
|
3
|
+
require 'rubygems/dependency_installer.rb'
|
4
|
+
require 'rbconfig'
|
5
|
+
begin
|
6
|
+
Gem::Command.build_args = ARGV
|
7
|
+
rescue NoMethodError
|
8
|
+
end
|
9
|
+
inst = Gem::DependencyInstaller.new
|
10
|
+
begin
|
11
|
+
if RbConfig::CONFIG['host_os'] =~ /mswin|windows|cygwin/i
|
12
|
+
inst.install "win32-open3", "0.0.2"
|
13
|
+
end
|
14
|
+
if RUBY_VERSION < "1.9"
|
15
|
+
inst.install "ruby-debug-base", "~> 0.10.3"
|
16
|
+
else
|
17
|
+
inst.install "ruby-debug-base19", "~> 0.11.24"
|
18
|
+
end
|
19
|
+
rescue
|
20
|
+
exit(1)
|
21
|
+
end
|
22
|
+
|
23
|
+
f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
|
24
|
+
f.write("task :default\n")
|
25
|
+
f.close
|
data/high_five.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = ["brian@tenforwardconsulting.com"]
|
11
11
|
s.homepage = "http://github.com/tenforwardconsulting/high_five"
|
12
12
|
s.summary = %q{HighFive is a set of build scripts and tools for packing HTML5 apps both for the web and for phonegap}
|
13
|
-
s.description = %q{Build, minify, and deal with different platforms and environments for your HTML5 app.
|
13
|
+
s.description = %q{Build, minify, and deal with different platforms and environments for your HTML5 app.
|
14
14
|
This is often used with PhoneGap but designed not to require it, and high_five can be used to deploy any kind of HTML/JS/CSS-based
|
15
15
|
application that requires different deployment configurations.
|
16
16
|
}
|
@@ -21,6 +21,9 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_runtime_dependency "yui-compressor", "~>0.9.6"
|
22
22
|
s.add_runtime_dependency "uglifier", "~>2.1.1"
|
23
23
|
s.add_runtime_dependency "sprockets", ">=2.0"
|
24
|
+
s.add_runtime_dependency "coffee-script", "~>2.2.0"
|
25
|
+
s.add_runtime_dependency "plist", ">=3.0"
|
26
|
+
s.add_runtime_dependency "nokogiri", ">=1.5.0"
|
24
27
|
s.add_development_dependency "rspec", "~>2.13.0"
|
25
28
|
|
26
29
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module HighFive
|
2
|
+
module AndroidHelper
|
3
|
+
def self.project_name_from_build_xml(path)
|
4
|
+
File.open(path, 'r', :encoding => 'iso-8859-1').each do |line|
|
5
|
+
if line =~ /<project name="(.*)" /
|
6
|
+
return $1
|
7
|
+
end
|
8
|
+
end
|
9
|
+
nil
|
10
|
+
end
|
11
|
+
|
12
|
+
def android_manifest_path
|
13
|
+
platform_config = base_config.build_platform_config(:android)
|
14
|
+
destination_dir = platform_config.destination
|
15
|
+
root_dir = destination_dir
|
16
|
+
while true
|
17
|
+
glob = Dir[File.join(root_dir, "AndroidManifest.xml")]
|
18
|
+
return glob.first if (glob.length > 0)
|
19
|
+
root_dir = File.expand_path("..", root_dir)
|
20
|
+
raise "Couldn't find android manifest near #{destination_dir}" if root_dir == '/'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/high_five/cli.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
require 'thor'
|
2
|
-
require 'high_five/deploy_task'
|
3
|
-
require 'high_five/init_task'
|
4
|
-
require 'high_five/android_tasks'
|
5
2
|
require 'high_five/config'
|
6
3
|
|
7
4
|
module HighFive
|
@@ -10,6 +7,7 @@ module HighFive
|
|
10
7
|
include HighFive::InitTask
|
11
8
|
include HighFive::DeployTask
|
12
9
|
include HighFive::AndroidTasks
|
10
|
+
include HighFive::DistTask
|
13
11
|
# source root path for Thor::Actions commands
|
14
12
|
|
15
13
|
class_option :version, type: :boolean, desc: "Print version and ext", aliases: "-v"
|
data/lib/high_five/config.rb
CHANGED
@@ -35,8 +35,9 @@ module HighFive
|
|
35
35
|
:compass_dir, # directory that contaings compass' config.rb
|
36
36
|
:dev_index, # copy generated index.html to here on build for use in development
|
37
37
|
:minify, # defaults to true in production mode and false otherwise, overridable
|
38
|
-
:manifest
|
39
|
-
|
38
|
+
:manifest, # generate html5 manifest
|
39
|
+
:app_name, # App Name
|
40
|
+
:app_id # App id (com.tenforwardconsulting.myapp)
|
40
41
|
|
41
42
|
def self.configure(&block)
|
42
43
|
@@instance = HighFive::Config.new
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module HighFive
|
2
|
+
module IosHelper
|
3
|
+
def IosHelper.uuid_from_mobileprovision(path)
|
4
|
+
uuid_found = false
|
5
|
+
File.open(path, 'r', :encoding => 'iso-8859-1').each do |line|
|
6
|
+
if uuid_found
|
7
|
+
line =~ /<string>(.*)<\/string>/
|
8
|
+
return $1
|
9
|
+
end
|
10
|
+
uuid_found = true if line =~ /UUID/
|
11
|
+
end
|
12
|
+
nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def info_plist_path
|
16
|
+
root_dir = File.dirname(xcodeproj_path)
|
17
|
+
info = Dir["#{root_dir}/**/*-Info.plist"].first
|
18
|
+
raise "Couldn't find infoplist" if info.nil?
|
19
|
+
return info
|
20
|
+
end
|
21
|
+
|
22
|
+
def xcodeproj_path
|
23
|
+
platform_config = base_config.build_platform_config(:ios)
|
24
|
+
destination_dir = platform_config.destination
|
25
|
+
root_dir = destination_dir
|
26
|
+
while true
|
27
|
+
glob = Dir[File.join(root_dir, "*.xcodeproj")]
|
28
|
+
return glob.first if (glob.length > 0)
|
29
|
+
root_dir = File.expand_path("..", root_dir)
|
30
|
+
raise "Couldn't find xcodeproj near #{destination_dir}" if root_dir == '/'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require "thor/runner"
|
2
|
+
require 'high_five/thor/task'
|
3
|
+
require 'high_five/thor/tasks'
|
4
|
+
|
5
|
+
module HighFive
|
6
|
+
module Thor
|
7
|
+
class Runner < ::Thor::Runner
|
8
|
+
|
9
|
+
#this works but I hate it
|
10
|
+
register(HighFive::Thor::Tasks::Distribution, "dist", "dist [PLATFORM]", "Shortcut to distribution:dist")
|
11
|
+
register(HighFive::Thor::Tasks::Deploy, "deploy", "deploy [PLATFORM]", "Shortcut to deploy:deploy")
|
12
|
+
register(HighFive::Thor::Tasks::Initialization, "init", "init", "Shortcut to Initialization:init")
|
13
|
+
|
14
|
+
# Note: because of the way task.run works, there has to be a local
|
15
|
+
# definition. Also, we want tasks to work WITH our base namespace
|
16
|
+
# if it is included, so that we can use our binary with the same
|
17
|
+
# signature we would use thor
|
18
|
+
def method_missing(meth, *args)
|
19
|
+
meth = meth.to_s
|
20
|
+
#meth.sub!(/^high_five:/, '')
|
21
|
+
if (!meth.match(/:/))
|
22
|
+
meth = "high_five:#{meth}"
|
23
|
+
end
|
24
|
+
super meth, *args
|
25
|
+
end
|
26
|
+
|
27
|
+
class_option :version, type: :boolean, desc: "Print version and ext", aliases: "-v"
|
28
|
+
def initialize(*args)
|
29
|
+
super
|
30
|
+
#override version task
|
31
|
+
if args[2][:current_task][:name] == "version"
|
32
|
+
puts "HighFive #{HighFive::VERSION}"
|
33
|
+
Process.exit(0)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
def thorfiles(*args)
|
39
|
+
Dir[File.join(File.dirname(__FILE__), 'tasks/*.rb')]
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'high_five/config'
|
2
|
+
|
3
|
+
module HighFive
|
4
|
+
module Thor
|
5
|
+
class Task < ::Thor
|
6
|
+
def self.banner(task, namespace = false, subcommand = true)
|
7
|
+
if self.namespace == "high_five"
|
8
|
+
ns = ""
|
9
|
+
else
|
10
|
+
ns = "#{self.namespace}:"
|
11
|
+
end
|
12
|
+
"hi5 #{ns}" + task.formatted_usage(self, namespace, subcommand)
|
13
|
+
end
|
14
|
+
|
15
|
+
no_tasks {
|
16
|
+
def invoke(name=nil, *args)
|
17
|
+
name.sub!(/^high_five:/, '') if name && $high_five_runner
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
class << self
|
22
|
+
def inherited(base) #:nodoc:
|
23
|
+
base.send :extend, ClassMethods
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def base_config
|
28
|
+
begin
|
29
|
+
@base_config ||= HighFive::Config.load
|
30
|
+
rescue StandardError => e
|
31
|
+
say e.message, :red
|
32
|
+
exit
|
33
|
+
end
|
34
|
+
end
|
35
|
+
}
|
36
|
+
|
37
|
+
def initialize(*args)
|
38
|
+
super
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
module ClassMethods
|
43
|
+
def namespace(name=nil)
|
44
|
+
case name
|
45
|
+
when nil
|
46
|
+
constant = self.to_s.gsub(/^Thor::Sandbox::/, "")
|
47
|
+
strip = $high_five_runner ? /^HighFive::Thor::Tasks::/ : /(?<=HighFive::)Thor::Tasks::/
|
48
|
+
constant = constant.gsub(strip, "")
|
49
|
+
constant = ::Thor::Util.snake_case(constant).squeeze(":")
|
50
|
+
@namespace ||= constant
|
51
|
+
else
|
52
|
+
super
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'high_five/android_helper'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
module HighFive
|
5
|
+
module Thor
|
6
|
+
module Tasks
|
7
|
+
class AndroidTasks < ::HighFive::Thor::Task
|
8
|
+
include ::Thor::Actions
|
9
|
+
include HighFive::AndroidHelper
|
10
|
+
namespace :android
|
11
|
+
|
12
|
+
desc "debug", "build the debug apk via ant debug"
|
13
|
+
def debug(target)
|
14
|
+
@destination_root = base_config.root
|
15
|
+
puts "Debugy #{target}"
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "build", "build the apk"
|
19
|
+
def build
|
20
|
+
run('ant -file build.xml "-Dkey.store=/Users/Shared/Jenkins/Home/jobs/modern resident/workspace/modern_resident-mobile/android/Keystore.ks" -Dkey.store.password=modernresident -Dkey.alias=android -Dkey.alias.password=modernresident clean release
|
21
|
+
Buildfile: /Users/Shared/Jenkins/Home/jobs/modern resident/workspace/modern_resident-mobile/android/build.xml')
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "set_version", "build the debug apk via ant debug"
|
25
|
+
method_option :version, :aliases => "-v", :desc => "Set main version"
|
26
|
+
method_option :build_number, :aliases => '-b', :desc => "set build number"
|
27
|
+
def set_version
|
28
|
+
# read and parse the old file
|
29
|
+
file = File.read(android_manifest_path)
|
30
|
+
xml = Nokogiri::XML(file)
|
31
|
+
|
32
|
+
# replace \n and any additional whitespace with a space
|
33
|
+
xml.xpath("//manifest").each do |node|
|
34
|
+
if (options[:version])
|
35
|
+
old = node["android:versionName"]
|
36
|
+
node["android:versionName"] = options[:version]
|
37
|
+
puts "Setting version #{old} => #{options[:version]}"
|
38
|
+
end
|
39
|
+
if (options[:build_number])
|
40
|
+
old = node["android:versionCode"]
|
41
|
+
node["android:versionCode"] = options[:build_number]
|
42
|
+
puts "Setting versionCode #{old} => #{options[:build_number]}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# save the output into a new file
|
47
|
+
File.open(android_manifest_path, "w") do |f|
|
48
|
+
f.write xml.to_xml
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -4,10 +4,11 @@ require 'uglifier'
|
|
4
4
|
require "yui/compressor"
|
5
5
|
|
6
6
|
module HighFive
|
7
|
-
module
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
module Thor
|
8
|
+
module Tasks
|
9
|
+
class Deploy < ::HighFive::Thor::Task
|
10
|
+
include ::Thor::Actions
|
11
|
+
default_task :deploy
|
11
12
|
|
12
13
|
desc "deploy", "Deploy the app for a specific platform in a specific environment"
|
13
14
|
method_option :environment, :aliases => "-e", :desc => "Environemnt [production|development]", :default => "development"
|
@@ -25,7 +26,7 @@ module HighFive
|
|
25
26
|
|
26
27
|
self.source_paths << File.join(base_config.root, @config_root)
|
27
28
|
self.source_paths << File.join(base_config.root)
|
28
|
-
self.source_paths << File.join(File.dirname(__FILE__), 'generators')
|
29
|
+
self.source_paths << File.join(File.dirname(__FILE__), '..', '..', 'generators')
|
29
30
|
@config.asset_paths.each do |asset_path|
|
30
31
|
self.source_paths << asset_path
|
31
32
|
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'high_five/ios_helper'
|
2
|
+
require 'high_five/android_helper'
|
3
|
+
module HighFive
|
4
|
+
module Thor
|
5
|
+
module Tasks
|
6
|
+
class Distribution < ::HighFive::Thor::Task
|
7
|
+
include ::Thor::Actions
|
8
|
+
include IosHelper
|
9
|
+
|
10
|
+
default_task :dist
|
11
|
+
|
12
|
+
desc "dist [PLATFORM]", "Create a distribution package for a specific platform"
|
13
|
+
method_option :output_file_name, :aliases => "-o", :desc => "Name of the final output file. Defaults to project_name.apk/ipa"
|
14
|
+
method_option :sign_identity, :aliases => "-s", :desc => "Full name of the code sign identity for use by xcode"
|
15
|
+
method_option :provisioning_profile, :aliases => "-p", :desc => "Path to the provisioning profile"
|
16
|
+
def dist(platform)
|
17
|
+
@output_file_name = options[:output_file_name]
|
18
|
+
@sign_identity = options[:sign_identity]
|
19
|
+
@provisioning_profile = options[:provisioning_profile]
|
20
|
+
@platform = platform
|
21
|
+
@config = base_config.build_platform_config(@platform).build_platform_config(@environment)
|
22
|
+
@config_root = File.join("config", "high_five")
|
23
|
+
|
24
|
+
raise "Please set config.destination" if @config.destination.nil?
|
25
|
+
self.destination_root = @config.destination
|
26
|
+
|
27
|
+
if @platform == "android" || @platform == "amazon"
|
28
|
+
path = self.destination_root
|
29
|
+
while path != base_config.root
|
30
|
+
if File.exists? File.join(path, 'AndroidManifest.xml')
|
31
|
+
android_path = path
|
32
|
+
break
|
33
|
+
else
|
34
|
+
path = File.expand_path('..', path)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
if !android_path
|
39
|
+
raise "Couldn't find the path of the android manifest."
|
40
|
+
end
|
41
|
+
|
42
|
+
system("ant -file '#{android_path}/build.xml' release")
|
43
|
+
|
44
|
+
android_name = HighFive::AndroidHelper.project_name_from_build_xml("#{android_path}/build.xml")
|
45
|
+
if @output_file_name
|
46
|
+
FileUtils.cp("#{android_path}/bin/#{android_name}-release.apk", "#{android_path}/bin/#{@output_file_name}.apk")
|
47
|
+
end
|
48
|
+
elsif @platform == "ios"
|
49
|
+
raise "Please pass in the code sign identity to build an ios app. -s [sign_identity]" if @sign_identity.nil?
|
50
|
+
raise "Please pass in the path to the provisioning profile to build an ios app. -p [provisioning_profile]" if @provisioning_profile.nil?
|
51
|
+
|
52
|
+
ios_path = File.dirname(xcodeproj_path())
|
53
|
+
|
54
|
+
if !ios_path
|
55
|
+
raise "Couldn't find the path of the xcodeproj."
|
56
|
+
end
|
57
|
+
|
58
|
+
ios_project_name = File.basename(Dir[ios_path + "/*.xcodeproj"].first, '.xcodeproj')
|
59
|
+
keychain = ios_project_name.gsub(/\s/, '').gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").downcase + '-ios.keychain'
|
60
|
+
|
61
|
+
@output_file_name ||= ios_project_name
|
62
|
+
|
63
|
+
uuid = HighFive::IosHelper.uuid_from_mobileprovision(@provisioning_profile)
|
64
|
+
ENV['uuid'] = uuid
|
65
|
+
FileUtils.cp(@provisioning_profile, "#{ENV['HOME']}/Library/MobileDevice/Provisioning Profiles/#{uuid}.mobileprovision")
|
66
|
+
system(%Q(cd "#{ios_path}";
|
67
|
+
/usr/bin/xcodebuild -target "#{ios_project_name}" -configuration Release build "CONFIGURATION_BUILD_DIR=#{ios_path}/build" "CODE_SIGN_IDENTITY=#{@sign_identity}" PROVISIONING_PROFILE=$uuid))
|
68
|
+
system(%Q(/usr/bin/xcrun -sdk iphoneos PackageApplication -v "#{ios_path}/build/#{ios_project_name}.app" -o "#{ios_path}/build/#{@output_file_name}.ipa" --embed "#{@provisioning_profile}" --sign "#{@sign_identity}"))
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
module HighFive
|
3
|
-
module
|
4
|
-
|
5
|
-
|
3
|
+
module Thor
|
4
|
+
module Tasks
|
5
|
+
class Initialization < ::HighFive::Thor::Task
|
6
|
+
include ::Thor::Actions
|
7
|
+
default_task :init
|
6
8
|
|
7
9
|
desc "init", "Initialize the high_five configuration in the current working directory"
|
8
10
|
def init
|
@@ -23,9 +25,7 @@ module HighFive
|
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
26
|
-
|
27
|
-
|
28
|
-
end #end class_eval
|
28
|
+
end
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'high_five/ios_helper'
|
2
|
+
require 'plist'
|
3
|
+
|
4
|
+
module HighFive
|
5
|
+
module Thor
|
6
|
+
module Tasks
|
7
|
+
class IosTasks < ::HighFive::Thor::Task
|
8
|
+
include ::Thor::Actions
|
9
|
+
include ::HighFive::IosHelper
|
10
|
+
namespace :ios
|
11
|
+
|
12
|
+
desc "set_version", "build the debug apk via ant debug"
|
13
|
+
method_option :version, :aliases => "-v", :desc => "Set main version"
|
14
|
+
method_option :build_number, :aliases => '-b', :desc => "set build number"
|
15
|
+
def set_version
|
16
|
+
info = info_plist_path
|
17
|
+
puts "Using #{info}"
|
18
|
+
plist = Plist::parse_xml(info)
|
19
|
+
|
20
|
+
if (options[:version])
|
21
|
+
puts "Changing version from #{plist["CFBundleShortVersionString"]} => #{options[:version]}"
|
22
|
+
plist["CFBundleShortVersionString"] = options[:version]
|
23
|
+
end
|
24
|
+
|
25
|
+
if (options[:build_number])
|
26
|
+
puts "Changind build number from #{plist["CFBundleVersion"]} => #{options[:build_number]}"
|
27
|
+
plist["CFBundleVersion"] = options[:build_number]
|
28
|
+
end
|
29
|
+
File.open(info, 'w') do |f|
|
30
|
+
f.write(Plist::Emit.dump(plist))
|
31
|
+
end
|
32
|
+
puts "Wrote Info.plist succesfully"
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "build", "build the apk"
|
36
|
+
def build
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/high_five/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module HighFive
|
2
|
-
|
3
|
-
end
|
2
|
+
VERSION = "0.2.0"
|
3
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe HighFive::AndroidHelper do
|
4
|
+
it 'should be able to extract the project name from a build.xml' do
|
5
|
+
name = HighFive::AndroidHelper.project_name_from_build_xml(File.join(File.dirname(__FILE__), "dummy", "build.xml"))
|
6
|
+
|
7
|
+
name.should eq 'Fake Name'
|
8
|
+
end
|
9
|
+
end
|
data/spec/config_spec.rb
CHANGED
@@ -27,6 +27,13 @@ describe HighFive::Config do
|
|
27
27
|
config.environment :production do |production|
|
28
28
|
production.setting base_url: "http://production.example.com/api"
|
29
29
|
end
|
30
|
+
|
31
|
+
config.platform :android do |android|
|
32
|
+
android.setting base_url: "http://android.example.com"
|
33
|
+
android.environment :production do |android_production|
|
34
|
+
android_production.setting base_url: "http://android-production.example.com"
|
35
|
+
end
|
36
|
+
end
|
30
37
|
end
|
31
38
|
@config = HighFive::Config.instance
|
32
39
|
end
|
@@ -40,6 +47,11 @@ describe HighFive::Config do
|
|
40
47
|
prod.js_settings[:base_url].should eq "http://production.example.com/api"
|
41
48
|
end
|
42
49
|
|
50
|
+
it "should handle nested settings properly" do
|
51
|
+
android_production = @config.build_platform_config(:platform).build_platform_config(:android)
|
52
|
+
android_production.js_settings[:base_url].should eq "http://android-production.example.com"
|
53
|
+
end
|
54
|
+
|
43
55
|
end
|
44
56
|
|
45
57
|
context "environment configuration" do
|
@@ -108,4 +120,39 @@ describe HighFive::Config do
|
|
108
120
|
end
|
109
121
|
end
|
110
122
|
|
123
|
+
context "nested settings" do
|
124
|
+
before do
|
125
|
+
HighFive::Config.configure do |config|
|
126
|
+
config.root = "/"
|
127
|
+
config.setting base_url: "http://example.com/api"
|
128
|
+
config.platform :ios do |ios|
|
129
|
+
|
130
|
+
end
|
131
|
+
config.platform :android do |android|
|
132
|
+
android.assets "android_asset"
|
133
|
+
android.setting android_flag: true
|
134
|
+
config.environment :production do |android_production|
|
135
|
+
android_production.setting base_url: "http://android-production.example.com/api"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
config.environment :production do |production|
|
139
|
+
production.assets "production_asset"
|
140
|
+
production.setting base_url: "http://production.example.com/api"
|
141
|
+
end
|
142
|
+
end
|
143
|
+
@config = HighFive::Config.instance
|
144
|
+
end
|
145
|
+
|
146
|
+
it "should use the environment setting if none is specified" do
|
147
|
+
platform_config = @config.build_platform_config('ios').build_platform_config('production')
|
148
|
+
platform_config.js_settings[:base_url].should eq "http://production.example.com/api"
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should allow platforms to specifically override environment settings" do
|
152
|
+
platform_config = @config.build_platform_config('android').build_platform_config('production')
|
153
|
+
platform_config.js_settings[:base_url].should eq "http://android-production.example.com/api"
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|
111
158
|
end
|
data/spec/deploy_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe HighFive::
|
3
|
+
describe HighFive::Thor::Tasks::Deploy do
|
4
4
|
def create_dummy_app!
|
5
5
|
@original_dir = Dir.pwd
|
6
6
|
@project_root = Dir.mktmpdir("hi5")
|
@@ -9,7 +9,7 @@ describe HighFive::DeployTask do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def cli(options={environment: 'development'})
|
12
|
-
cli = HighFive::
|
12
|
+
cli = HighFive::Thor::Tasks::Deploy.new([], options)
|
13
13
|
cli.instance_variable_set("@base_config", HighFive::Config.instance)
|
14
14
|
cli
|
15
15
|
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project name="Fake Name" default="help">
|
3
|
+
|
4
|
+
<!-- The local.properties file is created and updated by the 'android' tool.
|
5
|
+
It contains the path to the SDK. It should *NOT* be checked into
|
6
|
+
Version Control Systems. -->
|
7
|
+
<property file="local.properties" />
|
8
|
+
|
9
|
+
<!-- The ant.properties file can be created by you. It is only edited by the
|
10
|
+
'android' tool to add properties to it.
|
11
|
+
This is the place to change some Ant specific build properties.
|
12
|
+
Here are some properties you may want to change/update:
|
13
|
+
|
14
|
+
source.dir
|
15
|
+
The name of the source directory. Default is 'src'.
|
16
|
+
out.dir
|
17
|
+
The name of the output directory. Default is 'bin'.
|
18
|
+
|
19
|
+
For other overridable properties, look at the beginning of the rules
|
20
|
+
files in the SDK, at tools/ant/build.xml
|
21
|
+
|
22
|
+
Properties related to the SDK location or the project target should
|
23
|
+
be updated using the 'android' tool with the 'update' action.
|
24
|
+
|
25
|
+
This file is an integral part of the build system for your
|
26
|
+
application and should be checked into Version Control Systems.
|
27
|
+
|
28
|
+
-->
|
29
|
+
<property file="ant.properties" />
|
30
|
+
|
31
|
+
<!-- if sdk.dir was not set from one of the property file, then
|
32
|
+
get it from the ANDROID_HOME env var.
|
33
|
+
This must be done before we load project.properties since
|
34
|
+
the proguard config can use sdk.dir -->
|
35
|
+
<property environment="env" />
|
36
|
+
<condition property="sdk.dir" value="${env.ANDROID_HOME}">
|
37
|
+
<isset property="env.ANDROID_HOME" />
|
38
|
+
</condition>
|
39
|
+
|
40
|
+
<!-- The project.properties file is created and updated by the 'android'
|
41
|
+
tool, as well as ADT.
|
42
|
+
|
43
|
+
This contains project specific properties such as project target, and library
|
44
|
+
dependencies. Lower level build properties are stored in ant.properties
|
45
|
+
(or in .classpath for Eclipse projects).
|
46
|
+
|
47
|
+
This file is an integral part of the build system for your
|
48
|
+
application and should be checked into Version Control Systems. -->
|
49
|
+
<loadproperties srcFile="project.properties" />
|
50
|
+
|
51
|
+
<!-- quick check on sdk.dir -->
|
52
|
+
<fail
|
53
|
+
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
|
54
|
+
unless="sdk.dir"
|
55
|
+
/>
|
56
|
+
|
57
|
+
<!--
|
58
|
+
Import per project custom build rules if present at the root of the project.
|
59
|
+
This is the place to put custom intermediary targets such as:
|
60
|
+
-pre-build
|
61
|
+
-pre-compile
|
62
|
+
-post-compile (This is typically used for code obfuscation.
|
63
|
+
Compiled code location: ${out.classes.absolute.dir}
|
64
|
+
If this is not done in place, override ${out.dex.input.absolute.dir})
|
65
|
+
-post-package
|
66
|
+
-post-build
|
67
|
+
-pre-clean
|
68
|
+
-->
|
69
|
+
<import file="custom_rules.xml" optional="true" />
|
70
|
+
|
71
|
+
<!-- Import the actual build file.
|
72
|
+
|
73
|
+
To customize existing targets, there are two options:
|
74
|
+
- Customize only one target:
|
75
|
+
- copy/paste the target into this file, *before* the
|
76
|
+
<import> task.
|
77
|
+
- customize it to your needs.
|
78
|
+
- Customize the whole content of build.xml
|
79
|
+
- copy/paste the content of the rules files (minus the top node)
|
80
|
+
into this file, replacing the <import> task.
|
81
|
+
- customize to your needs.
|
82
|
+
|
83
|
+
***********************
|
84
|
+
****** IMPORTANT ******
|
85
|
+
***********************
|
86
|
+
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
|
87
|
+
in order to avoid having your file be overridden by tools such as "android update project"
|
88
|
+
-->
|
89
|
+
<!-- version-tag: 1 -->
|
90
|
+
<import file="${sdk.dir}/tools/ant/build.xml" />
|
91
|
+
|
92
|
+
</project>
|
Binary file
|
data/spec/init_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
require 'tmpdir'
|
3
3
|
require 'fileutils'
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe HighFive::Thor::Tasks::Initialization do
|
6
6
|
before :each do
|
7
7
|
@original_dir = Dir.pwd
|
8
8
|
@project_root = Dir.mktmpdir("hi5")
|
@@ -15,7 +15,7 @@ describe "InitTask" do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should create high_five.rb in the config directory" do
|
18
|
-
HighFive::
|
18
|
+
::HighFive::Thor::Tasks::Initialization.start(["init"])
|
19
19
|
Dir.exists?(File.join(@project_root, "config")).should be_true
|
20
20
|
File.exists?(File.join(@project_root, "config", "high_five.rb")).should be_true
|
21
21
|
Dir.exists?(File.join(@project_root, "config", "high_five")).should be_true
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe HighFive::IosHelper do
|
4
|
+
it 'should be able to extract a UUID from a mobileprovision file' do
|
5
|
+
uuid = HighFive::IosHelper.uuid_from_mobileprovision(File.join(File.dirname(__FILE__), "dummy", "fake.mobileprovision"))
|
6
|
+
|
7
|
+
uuid.should eq 'THIS-IS-A-FAKE-UUID'
|
8
|
+
end
|
9
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "high_five"
|
2
|
-
require 'high_five/
|
2
|
+
require 'high_five/thor/runner'
|
3
|
+
require 'high_five/thor/tasks'
|
3
4
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
4
5
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
5
6
|
# Require this file using `require "spec_helper"` to ensure that it is only
|
@@ -1,4 +1,7 @@
|
|
1
1
|
HighFive::Config.configure do |config|
|
2
|
+
config.app_name = "ExampleApp"
|
3
|
+
config.app_id = "com.example.app"
|
4
|
+
|
2
5
|
config.root = File.join(File.dirname(__FILE__), '..')
|
3
6
|
config.destination = "www"
|
4
7
|
|
@@ -35,13 +38,18 @@ HighFive::Config.configure do |config|
|
|
35
38
|
# android.assets "resources/android"
|
36
39
|
end
|
37
40
|
|
41
|
+
config.platform :Web do |web|
|
42
|
+
web.manifest = true #generate app cache manifest (production env only)
|
43
|
+
web.dev_index = "index-debug.html" #copy generated index.html to index-debug (development env only)
|
44
|
+
end
|
45
|
+
|
38
46
|
# if you need platform-specific javascripts,
|
39
47
|
# simply create app-<platform>.js
|
40
48
|
# these files are managed by sprockets, and are used to determine the javascript include order
|
41
49
|
|
42
50
|
# Environment support: production/development/etc
|
43
51
|
# Environments work just like platforms
|
44
|
-
config.
|
52
|
+
config.environment :development do |development|
|
45
53
|
# development.javascripts "lib/some-library-debug-all.js"
|
46
54
|
# development.setting base_url: "http://dev.example.com:1234/api/"
|
47
55
|
end
|
@@ -49,6 +57,7 @@ HighFive::Config.configure do |config|
|
|
49
57
|
config.environment :production do |production|
|
50
58
|
# production.javascripts "lib/some-library-minified.js"
|
51
59
|
# production.setting base_url: "http://production.example.com/api/" #these take precedence over the platform overrides
|
60
|
+
# production.minify :uglifier # or :yui
|
52
61
|
end
|
53
62
|
|
54
63
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: high_five
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brian Samson
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-01-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: multi_json
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: thor
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: compass
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: yui-compressor
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: uglifier
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: sprockets
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,15 +90,55 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '2.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: coffee-script
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.2.0
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.2.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: plist
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '3.0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '3.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: nokogiri
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.5.0
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 1.5.0
|
110
139
|
- !ruby/object:Gem::Dependency
|
111
140
|
name: rspec
|
112
141
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
142
|
requirements:
|
115
143
|
- - ~>
|
116
144
|
- !ruby/object:Gem::Version
|
@@ -118,15 +146,14 @@ dependencies:
|
|
118
146
|
type: :development
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
149
|
requirements:
|
123
150
|
- - ~>
|
124
151
|
- !ruby/object:Gem::Version
|
125
152
|
version: 2.13.0
|
126
153
|
description: ! "Build, minify, and deal with different platforms and environments
|
127
|
-
for your HTML5 app
|
128
|
-
|
129
|
-
|
154
|
+
for your HTML5 app.\n This is often used with PhoneGap but designed not to require
|
155
|
+
it, and high_five can be used to deploy any kind of HTML/JS/CSS-based\n application
|
156
|
+
that requires different deployment configurations.\n "
|
130
157
|
email:
|
131
158
|
- brian@tenforwardconsulting.com
|
132
159
|
executables:
|
@@ -142,18 +169,29 @@ files:
|
|
142
169
|
- Gemfile.lock
|
143
170
|
- README.md
|
144
171
|
- Rakefile
|
172
|
+
- Thorfile
|
145
173
|
- bin/hi5
|
174
|
+
- ext/mkrf_conf.rb
|
146
175
|
- high_five.gemspec
|
147
176
|
- lib/high_five.rb
|
148
|
-
- lib/high_five/
|
177
|
+
- lib/high_five/android_helper.rb
|
149
178
|
- lib/high_five/cli.rb
|
150
179
|
- lib/high_five/config.rb
|
151
|
-
- lib/high_five/deploy_task.rb
|
152
180
|
- lib/high_five/generators/manifest.erb
|
153
|
-
- lib/high_five/
|
181
|
+
- lib/high_five/ios_helper.rb
|
182
|
+
- lib/high_five/thor/runner.rb
|
183
|
+
- lib/high_five/thor/task.rb
|
184
|
+
- lib/high_five/thor/tasks.rb
|
185
|
+
- lib/high_five/thor/tasks/android_tasks.rb
|
186
|
+
- lib/high_five/thor/tasks/deploy.rb
|
187
|
+
- lib/high_five/thor/tasks/distribution.rb
|
188
|
+
- lib/high_five/thor/tasks/initialization.rb
|
189
|
+
- lib/high_five/thor/tasks/ios_tasks.rb
|
154
190
|
- lib/high_five/version.rb
|
191
|
+
- spec/android_helper_spec.rb
|
155
192
|
- spec/config_spec.rb
|
156
193
|
- spec/deploy_spec.rb
|
194
|
+
- spec/dummy/build.xml
|
157
195
|
- spec/dummy/config.rb
|
158
196
|
- spec/dummy/config/high_five.rb
|
159
197
|
- spec/dummy/config/high_five/app-android.js
|
@@ -162,6 +200,7 @@ files:
|
|
162
200
|
- spec/dummy/config/high_five/app-ios.js
|
163
201
|
- spec/dummy/config/high_five/app-web.js
|
164
202
|
- spec/dummy/config/high_five/index.html.erb
|
203
|
+
- spec/dummy/fake.mobileprovision
|
165
204
|
- spec/dummy/javascripts/app.js
|
166
205
|
- spec/dummy/javascripts/app/component.js
|
167
206
|
- spec/dummy/public/custom_path/custom_app.js
|
@@ -169,6 +208,7 @@ files:
|
|
169
208
|
- spec/dummy/sass/sass.scss
|
170
209
|
- spec/dummy/stylesheets/screen.css
|
171
210
|
- spec/init_spec.rb
|
211
|
+
- spec/ios_helper_spec.rb
|
172
212
|
- spec/spec_helper.rb
|
173
213
|
- template/config/high_five.rb
|
174
214
|
- template/config/high_five/app-common.js
|
@@ -176,32 +216,33 @@ files:
|
|
176
216
|
- template/config/high_five/index.html.erb
|
177
217
|
homepage: http://github.com/tenforwardconsulting/high_five
|
178
218
|
licenses: []
|
219
|
+
metadata: {}
|
179
220
|
post_install_message:
|
180
221
|
rdoc_options: []
|
181
222
|
require_paths:
|
182
223
|
- lib
|
183
224
|
required_ruby_version: !ruby/object:Gem::Requirement
|
184
|
-
none: false
|
185
225
|
requirements:
|
186
226
|
- - ! '>='
|
187
227
|
- !ruby/object:Gem::Version
|
188
228
|
version: '0'
|
189
229
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
|
-
none: false
|
191
230
|
requirements:
|
192
231
|
- - ! '>='
|
193
232
|
- !ruby/object:Gem::Version
|
194
233
|
version: '0'
|
195
234
|
requirements: []
|
196
235
|
rubyforge_project:
|
197
|
-
rubygems_version: 1.
|
236
|
+
rubygems_version: 2.1.11
|
198
237
|
signing_key:
|
199
|
-
specification_version:
|
238
|
+
specification_version: 4
|
200
239
|
summary: HighFive is a set of build scripts and tools for packing HTML5 apps both
|
201
240
|
for the web and for phonegap
|
202
241
|
test_files:
|
242
|
+
- spec/android_helper_spec.rb
|
203
243
|
- spec/config_spec.rb
|
204
244
|
- spec/deploy_spec.rb
|
245
|
+
- spec/dummy/build.xml
|
205
246
|
- spec/dummy/config.rb
|
206
247
|
- spec/dummy/config/high_five.rb
|
207
248
|
- spec/dummy/config/high_five/app-android.js
|
@@ -210,6 +251,7 @@ test_files:
|
|
210
251
|
- spec/dummy/config/high_five/app-ios.js
|
211
252
|
- spec/dummy/config/high_five/app-web.js
|
212
253
|
- spec/dummy/config/high_five/index.html.erb
|
254
|
+
- spec/dummy/fake.mobileprovision
|
213
255
|
- spec/dummy/javascripts/app.js
|
214
256
|
- spec/dummy/javascripts/app/component.js
|
215
257
|
- spec/dummy/public/custom_path/custom_app.js
|
@@ -217,4 +259,5 @@ test_files:
|
|
217
259
|
- spec/dummy/sass/sass.scss
|
218
260
|
- spec/dummy/stylesheets/screen.css
|
219
261
|
- spec/init_spec.rb
|
262
|
+
- spec/ios_helper_spec.rb
|
220
263
|
- spec/spec_helper.rb
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module HighFive
|
2
|
-
module AndroidTasks
|
3
|
-
def self.included(mod)
|
4
|
-
mod.class_eval do
|
5
|
-
|
6
|
-
namespace "android"
|
7
|
-
desc "android_debug", "build the debug apk via ant debug"
|
8
|
-
def android_debug
|
9
|
-
self.destination_root = base_config.root
|
10
|
-
puts "Debugy"
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
end #end class_eval
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|