Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
generate mobile app config files
Ruby

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
confetti.gemspec

README.md

Confetti

Write mobile app configuration files based on a W3C Widget compliant config.xml file

Installation

gem install confetti

Usage

$ confetti generate android_manifest

or, from Ruby

require "confetti"
c_whatever = Confetti::Config.new "/some/dir/config.xml"
c_whatever.write_android_manifest "/some/dir/AndroidManifest.xml"

Supported outputs right now: android_manifest, android_strings, webos_appinfo, ios_info, symbian_wrt_info, blackberry_widgets_config

Roadmap

  • extra platforms: Windows Phone 7, who knows what else
  • conversion from platform to platform (iOS to Android, or whatever)
  • support for platform-specific preferences, and features as PhoneGap APIs
  • maybe some documentation (let's not go crazy)

How to Add a New Platform

Let's say you want write a nintendo_ds_config generator:

  • create a feature file, like features/nintendo.feature
    • specify all the files to generate for your platform
    • specify the name each file will go under
      • nintendo_ds_config
    • and the default filename
      • NintendoDSConfig.xml
    • run rake features to verify that it fails
  • add a sample configuration file to spec/fixtures
    • the filename is based on the descriptive name
      • nintendo_ds_config_expected.xml
  • add some failing specs
    • copy one of the existing specs from spec/templates
      • cp android_manifest_spec.rb nintendo_ds_config_spec.rb
    • modify the new file to match your new template
      • this isn't as well automated as we'd like
    • run rake spec to verify that they fail
  • create your view class
    • as lib/confetti/templates/nintendo_ds_config.rb
    • should define Confetti::Template::NintendoDsConfig < Base
  • create your template file
    • copy your expected config into lib/confetti/templates
      • as nintendo_ds_config.mustache
    • replace the variable sections with mustache tags
  • in your view class
    • write methods that correspond to the variable sections in your template
  • run rake spec to ensure everything was set up correctly
  • add specs for generate and write methods
    • open spec/config_spec.rb
    • add the following line to the describe config generation block
      • it_should_have_generate_and_write_methods_for :nintendo_ds_config
  • run rake spec, see them fail
  • add generate and write methods
    • open lib/confetti/config.rb
    • add your platform to the generate_and_write call
      • generate_and_write ... :nintendo_ds_config
  • run rake spec again
  • build and install the gem, or whatever, so the cucumber tests work
  • run feature/nintendo.feature
    • it's all green!
    • you're the man now dog
Something went wrong with that request. Please try again.