confetti 0.6.4 → 0.7.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/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ .DS_Store
1
2
  pkg/*
2
3
  *.gem
3
4
  .bundle
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- confetti (0.6.4)
4
+ confetti (0.7.0)
5
5
  mustache (~> 0.11.2)
6
6
 
7
7
  GEM
data/lib/confetti.rb CHANGED
@@ -2,6 +2,7 @@ CURRENT_DIR = File.dirname(__FILE__)
2
2
 
3
3
  # stdlib
4
4
  require "rexml/document"
5
+ require 'digest/md5'
5
6
 
6
7
  # external dependencies
7
8
  begin
@@ -32,6 +33,7 @@ require 'confetti/templates/ios_info'
32
33
  require 'confetti/templates/ios_remote_plist'
33
34
  require 'confetti/templates/symbian_wrt_info'
34
35
  require 'confetti/templates/webos_appinfo'
36
+ require 'confetti/templates/windows_phone7_manifest'
35
37
 
36
38
  require 'confetti/template_helper'
37
39
 
@@ -18,7 +18,7 @@ module Confetti
18
18
 
19
19
  generate_and_write :android_manifest, :android_strings, :webos_appinfo,
20
20
  :ios_info, :symbian_wrt_info, :blackberry_widgets_config,
21
- :ios_remote_plist
21
+ :ios_remote_plist, :windows_phone7_manifest
22
22
 
23
23
  # handle bad generate/write calls
24
24
  def method_missing(method_name, *args)
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">
3
+ <App xmlns="" ProductID="{{guid}}" Title="{{ title }}"
4
+ RuntimeType="Silverlight" Version="{{version}}" Genre="apps.normal"
5
+ Author="{{ author }}"
6
+ Description="{{ description }}"
7
+ Publisher="{{ author }}">
8
+
9
+ <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
10
+ <Capabilities>
11
+ {{#capabilities}}
12
+ <Capability Name="{{name}}" />
13
+ {{/capabilities}}
14
+ <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
15
+ </Capabilities>
16
+
17
+ <Tasks>
18
+ <DefaultTask Name="_default" NavigationPage="MainPage.xaml" />
19
+ </Tasks>
20
+ <Tokens>
21
+ <PrimaryToken TokenID="Cordova_1._5._0_Starter1Token" TaskName="_default">
22
+ <TemplateType5>
23
+ <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
24
+ <Count>0</Count>
25
+ <Title>Cordova_1._5._0_Starter1</Title>
26
+ </TemplateType5>
27
+ </PrimaryToken>
28
+ </Tokens>
29
+ </App>
30
+ </Deployment>
@@ -0,0 +1,62 @@
1
+ module Confetti
2
+ module Template
3
+ class WindowsPhone7Manifest < Base
4
+ include VersionHelper
5
+
6
+ GAP_PERMISSIONS_MAP = {
7
+ 'camera' => %w{ID_CAP_ISV_CAMERA
8
+ D_HW_FRONTCAMERA},
9
+ 'contacts' => %w{ID_CAP_CONTACTS},
10
+ 'device' => %w{ID_CAP_IDENTITY_DEVICE},
11
+ 'geolocation' => %w{ID_CAP_LOCATION},
12
+ 'networking' => %w{ID_CAP_NETWORKING},
13
+ 'media' => %w{ID_CAP_MICROPHONE},
14
+ }
15
+
16
+ def title
17
+ @config.name.name
18
+ end
19
+
20
+ def author
21
+ @config.author.name
22
+ end
23
+
24
+ def guid
25
+ guid = Digest::MD5.hexdigest @config.package
26
+ res = "{#{ guid[0..7] }-#{ guid[8..11] }-"
27
+ res << "#{ guid[12..15] }-#{ guid[16..19] }-"
28
+ res << "#{ guid[20,guid.length-1]}}"
29
+ end
30
+
31
+ def description
32
+ @config.description
33
+ end
34
+
35
+ def version
36
+ version = normalize_version @config.version_string
37
+ version << ".0"
38
+ end
39
+
40
+ def capabilities
41
+ permissions = []
42
+ phonegap_api = /http\:\/\/api.phonegap.com\/1[.]0\/(\w+)/
43
+
44
+ feature_names = @config.feature_set.map { |f| f.name }
45
+ feature_names.sort
46
+
47
+ feature_names.each do |f|
48
+ feature_name = f.match(phonegap_api)[1] if f.match(phonegap_api)
49
+ associated_permissions = GAP_PERMISSIONS_MAP[feature_name]
50
+ permissions.concat(associated_permissions) if associated_permissions
51
+ end
52
+
53
+ permissions.sort!
54
+ permissions.map { |f| { :name => f } }
55
+ end
56
+
57
+ def output_filename
58
+ "WMAppManifest.xml"
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,3 +1,3 @@
1
1
  module Confetti
2
- VERSION = "0.6.4"
2
+ VERSION = "0.7.0"
3
3
  end
data/spec/config_spec.rb CHANGED
@@ -395,6 +395,8 @@ describe Confetti::Config do
395
395
  it_should_have_generate_and_write_methods_for :symbian_wrt_info
396
396
 
397
397
  it_should_have_generate_and_write_methods_for :blackberry_widgets_config
398
+
399
+ it_should_have_generate_and_write_methods_for :windows_phone7_manifest
398
400
  end
399
401
 
400
402
  describe "icon helpers" do
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">
3
+ <App xmlns="" ProductID="{6c724dc0-52a1-7928-dc98-6b05e95fb30e}" Title="Confetti Sample App"
4
+ RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal"
5
+ Author="Andrew Lunny"
6
+ Description="This is a sample config.xml for integration testing with Confetti"
7
+ Publisher="Andrew Lunny">
8
+
9
+ <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
10
+ <Capabilities>
11
+ <Capability Name="D_HW_FRONTCAMERA" />
12
+ <Capability Name="ID_CAP_ISV_CAMERA" />
13
+ <Capability Name="ID_CAP_LOCATION" />
14
+ <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
15
+ </Capabilities>
16
+
17
+ <Tasks>
18
+ <DefaultTask Name="_default" NavigationPage="MainPage.xaml" />
19
+ </Tasks>
20
+ <Tokens>
21
+ <PrimaryToken TokenID="Cordova_1._5._0_Starter1Token" TaskName="_default">
22
+ <TemplateType5>
23
+ <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
24
+ <Count>0</Count>
25
+ <Title>Cordova_1._5._0_Starter1</Title>
26
+ </TemplateType5>
27
+ </PrimaryToken>
28
+ </Tokens>
29
+ </App>
30
+ </Deployment>
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe Confetti::Template::WindowsPhone7Manifest do
4
+ include HelpfulPaths
5
+
6
+ before :all do
7
+ @template_class = Confetti::Template::WindowsPhone7Manifest
8
+ end
9
+
10
+ it "should have the base class of Confetti::Template" do
11
+ @template_class.superclass.should == Confetti::Template::Base
12
+ end
13
+
14
+ it "should have a valid WMAppManifest mustace template" do
15
+ @template_class.template_file.should == "#{ templates_dir }/windows_phone7_manifest.mustache"
16
+ end
17
+
18
+ describe "attributes" do
19
+ subject { @template = @template_class.new }
20
+
21
+ it { should respond_to :title }
22
+ it { should respond_to :author }
23
+ it { should respond_to :guid }
24
+ it { should respond_to :description }
25
+ it { should respond_to :version }
26
+ it { should respond_to :capabilities }
27
+ end
28
+
29
+ it "should provide a 128 bit guid" do
30
+ @config = Confetti::Config.new
31
+ @config.package = "com.example.www"
32
+ @template = @template_class.new @config
33
+ @template.guid.should == "{1005a3fc-23ab-99bd-bdd1-9e83f3d7b989}"
34
+ end
35
+
36
+ describe "with a config object" do
37
+
38
+ before do
39
+ @config = Confetti::Config.new "#{fixture_dir}/config.xml"
40
+ end
41
+
42
+ it "should render" do
43
+ @template = @template_class.new @config
44
+ @template.render.should == File.read(
45
+ "#{fixture_dir}/windowsphone7/WMAppManifest.xml"
46
+ )
47
+ end
48
+ end
49
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 6
8
- - 4
9
- version: 0.6.4
7
+ - 7
8
+ - 0
9
+ version: 0.7.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Andrew Lunny
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-03-20 00:00:00 -07:00
19
+ date: 2012-03-21 00:00:00 -07:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -91,6 +91,8 @@ files:
91
91
  - lib/confetti/templates/version_helper.rb
92
92
  - lib/confetti/templates/webos_appinfo.mustache
93
93
  - lib/confetti/templates/webos_appinfo.rb
94
+ - lib/confetti/templates/windows_phone7_manifest.mustache
95
+ - lib/confetti/templates/windows_phone7_manifest.rb
94
96
  - lib/confetti/version.rb
95
97
  - lib/typedset.rb
96
98
  - spec/config/config_author_spec.rb
@@ -134,6 +136,7 @@ files:
134
136
  - spec/fixtures/webos/appinfo_expected.json
135
137
  - spec/fixtures/webos/appinfo_no_tablet.json
136
138
  - spec/fixtures/webos/webos_appinfo_spec.json
139
+ - spec/fixtures/windowsphone7/WMAppManifest.xml
137
140
  - spec/helpers_spec.rb
138
141
  - spec/integration_spec.rb
139
142
  - spec/phonegap_spec.rb
@@ -148,6 +151,7 @@ files:
148
151
  - spec/templates/symbian_wrt_info_spec.rb
149
152
  - spec/templates/version_helper_spec.rb
150
153
  - spec/templates/webos_appinfo_spec.rb
154
+ - spec/templates/windows_phone7_manifest_spec.rb
151
155
  - spec/typedset_spec.rb
152
156
  has_rdoc: true
153
157
  homepage: http://rubygems.org/gems/confetti
@@ -221,6 +225,7 @@ test_files:
221
225
  - spec/fixtures/webos/appinfo_expected.json
222
226
  - spec/fixtures/webos/appinfo_no_tablet.json
223
227
  - spec/fixtures/webos/webos_appinfo_spec.json
228
+ - spec/fixtures/windowsphone7/WMAppManifest.xml
224
229
  - spec/helpers_spec.rb
225
230
  - spec/integration_spec.rb
226
231
  - spec/phonegap_spec.rb
@@ -235,4 +240,5 @@ test_files:
235
240
  - spec/templates/symbian_wrt_info_spec.rb
236
241
  - spec/templates/version_helper_spec.rb
237
242
  - spec/templates/webos_appinfo_spec.rb
243
+ - spec/templates/windows_phone7_manifest_spec.rb
238
244
  - spec/typedset_spec.rb