brianleroux-phonegap 0.2.2 → 0.3.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.
data/Rakefile CHANGED
@@ -11,6 +11,7 @@ begin
11
11
  gem.authors = ["Brian LeRoux"]
12
12
  gem.rubyforge_project = "phonegap"
13
13
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
14
+ gem.add_dependency('rubyzip')
14
15
  end
15
16
 
16
17
  Jeweler::RubyforgeTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.3.0
data/lib/phonegap.rb CHANGED
@@ -1,4 +1,4 @@
1
- %w(devices/android devices/iphone devices/blackberry).each { |x| require x }
1
+ %w(devices/android devices/iphone devices/blackberry net/http uri zip/zip).each { |x| require x }
2
2
  #
3
3
  # Provides utilities for generating a PhoneGap application and unifies the build process for each of the supported mobile platforms.
4
4
  #
@@ -11,7 +11,7 @@ class PhoneGap
11
11
  # outputs the current version of PhoneGap
12
12
  # FIXME needs to pull from sauce repo found at install path
13
13
  def version
14
- '0.7.0'
14
+ '0.7.4'
15
15
  end
16
16
 
17
17
  # grab install path of the phonegap sauce
@@ -24,6 +24,25 @@ class PhoneGap
24
24
  File.exists?(install_path)
25
25
  end
26
26
 
27
+ # downloads the latest version and puts it in install_path/version
28
+ def install_phonegap_sauce
29
+ url = URI.parse("http://github.com/sintaxi/phonegap/zipball/#{ version }/")
30
+ found = false
31
+ until found
32
+ host, port = url.host, url.port if url.host && url.port
33
+ req = Net::HTTP::Get.new(url.path)
34
+ res = Net::HTTP.start(host, port) {|http| http.request(req) }
35
+ res.header['location'] ? url = URI.parse(res.header['location']) :
36
+ found = true
37
+ end
38
+ FileUtils.mkdir_p(install_path)
39
+ zip_path = File.join(install_path, 'phonegap.zip')
40
+ final_path = File.join(install_path, version.gsub('.','-'))
41
+ open(zip_path, 'w+') {|f| f.write(res.body) }
42
+ unzip(zip_path, install_path)
43
+ File.mv File.expand_path("~/.phonegap/sintaxi-phonegap-2cd1b85903695b55626d95da117477200be8b57a"), File.expand_path("~/.phonegap/#{version.gsub('.','-')}")
44
+ end
45
+
27
46
  # creates an app skeleton
28
47
  def generate(path)
29
48
  generate_path = File.join(Dir.pwd,path)
@@ -83,4 +102,15 @@ class PhoneGap
83
102
  def trim(str)
84
103
  str.gsub(' ','')
85
104
  end
105
+
106
+ def unzip(file, destination)
107
+ Zip::ZipFile.open(file) do |zip_file|
108
+ zip_file.each do |f|
109
+ f_path = File.join(destination, f.name)
110
+ FileUtils.mkdir_p(File.dirname(f_path))
111
+ zip_file.extract(f, f_path) unless File.exist?(f_path)
112
+ end
113
+ end
114
+ end
115
+ #
86
116
  end
data/phonegap.gemspec CHANGED
@@ -1,12 +1,15 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
1
4
  # -*- encoding: utf-8 -*-
2
5
 
3
6
  Gem::Specification.new do |s|
4
7
  s.name = %q{phonegap}
5
- s.version = "0.2.2"
8
+ s.version = "0.3.0"
6
9
 
7
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
11
  s.authors = ["Brian LeRoux"]
9
- s.date = %q{2009-07-24}
12
+ s.date = %q{2009-08-07}
10
13
  s.default_executable = %q{phonegap}
11
14
  s.email = %q{brian@westcoastlogic.com}
12
15
  s.executables = ["phonegap"]
@@ -53,8 +56,11 @@ Gem::Specification.new do |s|
53
56
  s.specification_version = 3
54
57
 
55
58
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
59
+ s.add_runtime_dependency(%q<rubyzip>, [">= 0"])
56
60
  else
61
+ s.add_dependency(%q<rubyzip>, [">= 0"])
57
62
  end
58
63
  else
64
+ s.add_dependency(%q<rubyzip>, [">= 0"])
59
65
  end
60
66
  end
@@ -1,7 +1,19 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class PhonegapDevTest < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
4
+ context "A PhoneGap instance" do
5
+ setup do
6
+ @p = PhoneGap.new
7
+ end
8
+
9
+ should "be an expected version" do
10
+ assert_equal @p.version, '0.7.4'
11
+ end
12
+
13
+ should "install phonegap sauce" do
14
+ @p.install_phonegap_sauce
15
+ assert_equal true, File.exists?(File.expand_path('~/.phonegap'))
16
+ end
17
+ end
18
+ #
7
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brianleroux-phonegap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian LeRoux
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-24 00:00:00 -07:00
12
+ date: 2009-08-07 00:00:00 -07:00
13
13
  default_executable: phonegap
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rubyzip
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
16
25
  description:
17
26
  email: brian@westcoastlogic.com
18
27
  executables:
@@ -46,6 +55,7 @@ files:
46
55
  - test/test_helper.rb
47
56
  has_rdoc: false
48
57
  homepage: http://github.com/brianleroux/phonegap-dev
58
+ licenses:
49
59
  post_install_message:
50
60
  rdoc_options:
51
61
  - --charset=UTF-8
@@ -66,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
76
  requirements: []
67
77
 
68
78
  rubyforge_project: phonegap
69
- rubygems_version: 1.2.0
79
+ rubygems_version: 1.3.5
70
80
  signing_key:
71
81
  specification_version: 3
72
82
  summary: Command line utilities for PhoneGap.