pebblex 0.0.3

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 ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .idea
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3-p392
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: objective-c
2
+ env:
3
+ # same as specified in xcodeproj
4
+ - RVM_RUBY_VERSION=ruby-1.9.3-p392 CI=true'
5
+ before_install: source ~/.rvm/scripts/rvm && rvm install $RVM_RUBY_VERSION && rvm use $RVM_RUBY_VERSION
6
+ script: bundle exec rake spec build
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in pebblex.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Heiko Behrens
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # PebbleX [![Build Status](https://travis-ci.org/HBehrens/pebblex.png)](https://travis-ci.org/HBehrens/pebblex)
2
+
3
+ A small command line tool to add functionality the `pebble` command is missing right now.
4
+ Ideally, there will be no need for `pebblex` in the future, anymore.
5
+
6
+ ## Background
7
+
8
+ The [Pebble SDK](https://developer.getpebble.com/2/) comes with a powerful command line tool `pebble` to create, build and analyze pebble projects.
9
+ Unfortunately, there's no development environment for the created project structure.
10
+
11
+ With the help of `pebblex` you can take advantage of Xcode or [AppCode](AppCode) to develop your Pebble watch faces or apps directly from a convenient IDE.
12
+ The command line tool will create a `.xcodeproj` that contains the needed search paths, resources and .c files to start right away.
13
+
14
+ With [AppCode](AppCode) you can even build, install the `.pbw` to your watch and look at the live logs as a one-step action directly from your IDE!
15
+
16
+ ## Installation
17
+
18
+ Install the Ruby Gem:
19
+
20
+ sudo gem install pebblex
21
+
22
+ ## Usage
23
+
24
+ After creating a new pebble project, you can easily create an xcode project file
25
+
26
+ pebble new-project myproject --javascript
27
+ cd myproject
28
+ pebblex xcode
29
+ open myproject.xcodeproj
30
+
31
+ The `pebblex xcode` command will also create a target `pebble` that builds your project right from the IDE.
32
+
33
+ If you are using, [AppCode](AppCode) you can even deploy and look at the logs directly from the IDE! Make these adjustments to the run configuration to do so:
34
+
35
+ ![alt tag](https://raw.github.com/HBehrens/pebblex/master/images/AppCodeRunConfig.png)
36
+
37
+ ## Contributing
38
+
39
+ 1. Fork it ( https://github.com/HBehrens/pebblex/fork )
40
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
41
+ 3. Build and test PebbleX locally (`rake build && rake install`)
42
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
43
+ 4. Push to the branch (`git push origin my-new-feature`)
44
+ 5. Create a new Pull Request
45
+
46
+ [AppCode]: http://www.jetbrains.com/objc/
data/Rakefile ADDED
@@ -0,0 +1,5 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
data/bin/pebblex ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
3
+ require 'pebble_x.rb'
4
+
5
+ PebbleX::CLI.start(ARGV)
Binary file
data/lib/pebble_x.rb ADDED
@@ -0,0 +1,8 @@
1
+ require 'pebble_x/version'
2
+ require 'pebble_x/cli'
3
+ require 'pebble_x/xcode'
4
+ require 'pebble_x/pebble'
5
+
6
+ module PebbleX
7
+ end
8
+
@@ -0,0 +1,86 @@
1
+ require 'thor'
2
+
3
+ module PebbleX
4
+
5
+ class CLI < Thor
6
+
7
+ class_option :verbose, :type => :boolean
8
+ #class_option :version, :type => :boolean, :desc => "Prints version"
9
+ class_option :pebble_sdk, :banner => "<directory>", :desc => "Sets directory of Pebble SDK (default derived from PATH)"
10
+
11
+ def self.exit_on_failure?
12
+ true
13
+ end
14
+
15
+ desc "version", "Prints the pebblex's version information"
16
+ def version
17
+ puts PebbleX::VERSION
18
+ end
19
+ map %w(-v --version) => :version
20
+
21
+ desc "xcode", "Creates and Xcode project file"
22
+ def xcode
23
+ xcode = command_helper PebbleX::Xcode
24
+ xcode.create_project
25
+ end
26
+
27
+ desc "build", "Builds pebble project"
28
+ def build
29
+ pebble = command_helper PebbleX::Pebble
30
+ exit(pebble.build)
31
+ end
32
+
33
+ desc "debug", "Loads PBW and logs output from connected watch"
34
+ def debug
35
+ pebble = command_helper PebbleX::Pebble
36
+ exit(pebble.debug)
37
+ end
38
+
39
+ # provide recurring logic (based on command line switches) to separate commands
40
+ no_commands do
41
+
42
+ def command_helper(cls)
43
+ cls.new self
44
+ end
45
+
46
+ def verbose?
47
+ return options[:verbose]
48
+ end
49
+
50
+ def sys_call(call)
51
+ `#{call}`
52
+ end
53
+
54
+ def pebble_sdk_dir
55
+ sdk_dir = options[:pebble_sdk]
56
+ unless sdk_dir
57
+ pebble_cmd = sys_call('which pebble').strip
58
+ if pebble_cmd != ''
59
+ sdk_dir = File.expand_path('../..', pebble_cmd)
60
+ end
61
+ end
62
+
63
+ unless sdk_dir != ''
64
+ raise ArgumentError, "Make sure the 'pebble' command is on your path or you pass --pebble_sdk."
65
+ end
66
+
67
+ return sdk_dir
68
+ end
69
+
70
+ def pebble_cmd
71
+ pebble_cmd = File.expand_path('bin/pebble', self.pebble_sdk_dir)
72
+ unless File.exists?(pebble_cmd)
73
+ raise ArgumentError, "Cannot find 'pebble' command at #{pebble_cmd}."
74
+ end
75
+ return pebble_cmd
76
+ end
77
+
78
+ def pebblex_cmd
79
+ return $0
80
+ end
81
+
82
+ end
83
+
84
+ end
85
+
86
+ end
@@ -0,0 +1,43 @@
1
+ module PebbleX
2
+ class Pebble
3
+
4
+ attr_accessor :verbose
5
+
6
+ def initialize(environment)
7
+ @pebble_cmd = environment.pebble_cmd
8
+ end
9
+
10
+ def sys_call(call)
11
+ `#{call}`
12
+ $?.exitstatus
13
+ end
14
+
15
+ def kill_pebble
16
+ sys_call('pkill -f python.*pebble')
17
+ sleep(0.5) # phone's Pebble app needs some time before it accepts new connections
18
+ end
19
+
20
+ def pebble_call(args)
21
+ kill_pebble
22
+ sys_call("#{@pebble_cmd} #{args}")
23
+ end
24
+
25
+ def build
26
+ pebble_call('build')
27
+ end
28
+
29
+ def install
30
+ pebble_call('install')
31
+ end
32
+
33
+ def logs
34
+ pebble_call('logs')
35
+ end
36
+
37
+ def debug
38
+ r = install
39
+ r == 0 ? logs : r
40
+ end
41
+
42
+ end
43
+ end
@@ -0,0 +1,3 @@
1
+ module PebbleX
2
+ VERSION = "0.0.3"
3
+ end
@@ -0,0 +1,66 @@
1
+ require 'xcodeproj'
2
+
3
+ module PebbleX
4
+ class Xcode
5
+ def initialize(environment, directory=nil, project_name=nil)
6
+ @verbose = environment.verbose?
7
+ @directory = directory || Dir.getwd
8
+ @project_name = project_name || File.basename(@directory)
9
+ @pebblex_cmd = environment.pebblex_cmd
10
+ @pebble_sdk_dir = environment.pebble_sdk_dir
11
+
12
+ unless File.exists?(File.join(@directory, 'appinfo.json'))
13
+ raise ArgumentError, "The directory '#{@directory}' does not contain a Pebble project."
14
+ end
15
+ end
16
+
17
+ def create_project
18
+ if @verbose
19
+ puts "creating project in directory #{@directory}"
20
+ puts "using pebble sdk at #{@pebble_sdk_dir}"
21
+ end
22
+
23
+ Dir.chdir(@directory) # TODO: popd at the end of this method
24
+
25
+ project = Xcodeproj::Project.new(@project_name+'.xcodeproj')
26
+
27
+ # will add pebble sdk headers and build/src/resource_ids.auto.h to search path
28
+ project.build_configuration_list.set_setting('HEADER_SEARCH_PATHS', [File.join(@pebble_sdk_dir, 'Pebble/include'), 'build'])
29
+
30
+ legacy_target = project.new(Xcodeproj::Project::Object::PBXLegacyTarget)
31
+ legacy_target.name = 'Pebble'
32
+ legacy_target.product_name = 'Pebble'
33
+
34
+ legacy_target.build_tool_path = @pebblex_cmd
35
+ legacy_target.build_arguments_string = "build --pebble_sdk=#{@pebble_sdk_dir}"
36
+
37
+ legacy_target.build_configuration_list = Xcodeproj::Project::ProjectHelper.configuration_list(project, :osx)
38
+ project.targets << legacy_target
39
+
40
+ # fake iOS target to provide search path
41
+ ios_target = project.new_target(:application, 'fake-iOS-target', :ios)
42
+
43
+ # build project groups
44
+ group = project.main_group.new_group("sources", "src")
45
+
46
+ Dir.glob('src/**/*.{c,h,js}').each do |f|
47
+ file = group.new_file(f)
48
+ puts "adding file #{f}" if @verbose
49
+ if File.extname(f) == '.c'
50
+ ios_target.add_file_references([file])
51
+ end
52
+ end
53
+
54
+ project.main_group.new_reference('resources') if File.directory?('resources')
55
+ project.main_group.new_file('appinfo.json')
56
+
57
+ # clean up xcode project ('products' group must remain due to fake iOS target)
58
+ project.frameworks_group.remove_from_project
59
+
60
+ project.save
61
+
62
+ project
63
+ end
64
+
65
+ end
66
+ end
data/pebblex.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'pebble_x/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "pebblex"
8
+ spec.version = PebbleX::VERSION
9
+ spec.authors = ["Heiko Behrens"]
10
+ spec.email = ["HeikoBehrens@gmx.de"]
11
+ spec.summary = %q{Some additions to the pebble CLI.}
12
+ spec.description = %q{For now, it can create and Xcode project from a pebble dir. In future, some other convenience commands will be added.}
13
+ spec.homepage = "https://github.com/hbehrens/pebblex"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency(%q<thor>, ["~> 0.18.1"])
22
+ spec.add_runtime_dependency(%q<xcodeproj>, ["~> 0.14.1"])
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.5"
25
+ spec.add_development_dependency "rspec", "~> 2.14"
26
+ spec.add_development_dependency "rspec-mocks", "~> 2.14"
27
+ spec.add_development_dependency "rake"
28
+ end
data/spec/cli_spec.rb ADDED
@@ -0,0 +1,79 @@
1
+ require 'rspec'
2
+ require 'pebble_x'
3
+
4
+ describe 'CLI' do
5
+
6
+ describe 'xcode' do
7
+
8
+ it 'calls create_project' do
9
+ xcode = double 'Xcode'
10
+ expect(xcode).to receive(:create_project)
11
+
12
+ c = PebbleX::CLI.new
13
+ expect(c).to receive(:command_helper).with(PebbleX::Xcode).and_return(xcode)
14
+ c.xcode
15
+ end
16
+ end
17
+
18
+
19
+ describe 'build' do
20
+ it 'delegates to pebble build' do
21
+ pebble = double 'pebble'
22
+ expect(pebble).to receive(:build).and_return 23
23
+
24
+ c = PebbleX::CLI.new
25
+ expect(c).to receive(:command_helper).with(PebbleX::Pebble).and_return(pebble)
26
+ expect(c).to receive(:exit).with(23)
27
+ c.build
28
+ end
29
+ end
30
+
31
+ describe 'build' do
32
+ it 'delegates to pebble debug' do
33
+ pebble = double 'pebble'
34
+ expect(pebble).to receive(:debug).and_return 23
35
+
36
+ c = PebbleX::CLI.new
37
+ expect(c).to receive(:command_helper).with(PebbleX::Pebble).and_return(pebble)
38
+ expect(c).to receive(:exit).with(23)
39
+ c.debug
40
+ end
41
+ end
42
+
43
+ describe 'pebble_cmd' do
44
+
45
+ it 'derives pebble location from pebble_sdk_dir' do
46
+ c = PebbleX::CLI.new
47
+ expect(c).to receive(:pebble_sdk_dir).and_return "/path/to/sdk"
48
+ expect(File).to receive(:exists?).and_return true
49
+ expect(c.pebble_cmd).to eq "/path/to/sdk/bin/pebble"
50
+ end
51
+
52
+ it 'verifies existence of pebble binary' do
53
+ c = PebbleX::CLI.new
54
+ expect(c).to receive(:pebble_sdk_dir).and_return "/path/to/sdk"
55
+ expect(File).to receive(:exists?).and_return false
56
+ expect{c.pebble_cmd}.to raise_error
57
+ end
58
+
59
+ end
60
+
61
+
62
+ describe 'pebble_sdk_dir' do
63
+ it 'uses `which pebble` to determine sdk path' do
64
+ c = PebbleX::CLI.new
65
+ expect(c).to receive(:sys_call).with('which pebble').and_return '/path/to/sdk/bin/pebble'
66
+ expect(c.pebble_sdk_dir).to eq '/path/to/sdk'
67
+ end
68
+
69
+ it 'uses option pebble_sdk if provided' do
70
+ c = PebbleX::CLI.new
71
+ expect(c).to_not receive(:sys_call)
72
+ expect(c).to receive(:options).and_return({:pebble_sdk => "/path/to/sdk"})
73
+ expect(c.pebble_sdk_dir).to eq '/path/to/sdk'
74
+ end
75
+ end
76
+
77
+
78
+
79
+ end
@@ -0,0 +1,3 @@
1
+
2
+ # Ignore build generated files
3
+ build
@@ -0,0 +1,17 @@
1
+ {
2
+ "uuid": "9665dc7e-4c18-4fbc-9eca-902dc4b42aa5",
3
+ "shortName": "project_with_js",
4
+ "longName": "project_with_js",
5
+ "companyName": "MakeAwesomeHappen",
6
+ "versionCode": 1,
7
+ "versionLabel": "1.0.0",
8
+ "watchapp": {
9
+ "watchface": false
10
+ },
11
+ "appKeys": {
12
+ "dummy": 0
13
+ },
14
+ "resources": {
15
+ "media": []
16
+ }
17
+ }
@@ -0,0 +1,5 @@
1
+ Pebble.addEventListener("ready",
2
+ function(e) {
3
+ console.log("Hello world! - Sent from your javascript application.");
4
+ }
5
+ );
@@ -0,0 +1,60 @@
1
+ #include <pebble.h>
2
+
3
+ static Window *window;
4
+ static TextLayer *text_layer;
5
+
6
+ static void select_click_handler(ClickRecognizerRef recognizer, void *context) {
7
+ text_layer_set_text(text_layer, "Select");
8
+ }
9
+
10
+ static void up_click_handler(ClickRecognizerRef recognizer, void *context) {
11
+ text_layer_set_text(text_layer, "Up");
12
+ }
13
+
14
+ static void down_click_handler(ClickRecognizerRef recognizer, void *context) {
15
+ text_layer_set_text(text_layer, "Down");
16
+ }
17
+
18
+ static void click_config_provider(void *context) {
19
+ window_single_click_subscribe(BUTTON_ID_SELECT, select_click_handler);
20
+ window_single_click_subscribe(BUTTON_ID_UP, up_click_handler);
21
+ window_single_click_subscribe(BUTTON_ID_DOWN, down_click_handler);
22
+ }
23
+
24
+ static void window_load(Window *window) {
25
+ Layer *window_layer = window_get_root_layer(window);
26
+ GRect bounds = layer_get_bounds(window_layer);
27
+
28
+ text_layer = text_layer_create((GRect) { .origin = { 0, 72 }, .size = { bounds.size.w, 20 } });
29
+ text_layer_set_text(text_layer, "Press a button");
30
+ text_layer_set_text_alignment(text_layer, GTextAlignmentCenter);
31
+ layer_add_child(window_layer, text_layer_get_layer(text_layer));
32
+ }
33
+
34
+ static void window_unload(Window *window) {
35
+ text_layer_destroy(text_layer);
36
+ }
37
+
38
+ static void init(void) {
39
+ window = window_create();
40
+ window_set_click_config_provider(window, click_config_provider);
41
+ window_set_window_handlers(window, (WindowHandlers) {
42
+ .load = window_load,
43
+ .unload = window_unload,
44
+ });
45
+ const bool animated = true;
46
+ window_stack_push(window, animated);
47
+ }
48
+
49
+ static void deinit(void) {
50
+ window_destroy(window);
51
+ }
52
+
53
+ int main(void) {
54
+ init();
55
+
56
+ APP_LOG(APP_LOG_LEVEL_DEBUG, "Done initializing, pushed window: %p", window);
57
+
58
+ app_event_loop();
59
+ deinit();
60
+ }
@@ -0,0 +1,24 @@
1
+
2
+ #
3
+ # This file is the default set of rules to compile a Pebble project.
4
+ #
5
+ # Feel free to customize this to your needs.
6
+ #
7
+
8
+ top = '.'
9
+ out = 'build'
10
+
11
+ def options(ctx):
12
+ ctx.load('pebble_sdk')
13
+
14
+ def configure(ctx):
15
+ ctx.load('pebble_sdk')
16
+
17
+ def build(ctx):
18
+ ctx.load('pebble_sdk')
19
+
20
+ ctx.pbl_program(source=ctx.path.ant_glob('src/**/*.c'),
21
+ target='pebble-app.elf')
22
+
23
+ ctx.pbl_bundle(elf='pebble-app.elf',
24
+ js=ctx.path.ant_glob('src/js/**/*.js'))
@@ -0,0 +1,44 @@
1
+ require 'rspec'
2
+ require 'pebble_x'
3
+
4
+ describe 'Pebble' do
5
+ e = nil
6
+
7
+ before(:each) do
8
+ e = double("environment")
9
+ expect(e).to receive(:pebble_cmd) {'path/to/pebble'}
10
+ end
11
+
12
+ describe 'initialize' do
13
+ it 'asks environment' do
14
+ PebbleX::Pebble.new(e)
15
+ end
16
+ end
17
+
18
+ describe 'pebble_call' do
19
+ it 'kills pebble and calls system' do
20
+ p = PebbleX::Pebble.new(e)
21
+ expect(p).to receive(:kill_pebble)
22
+ expect(p).to receive(:sys_call).with('path/to/pebble foo')
23
+ p.pebble_call('foo')
24
+ end
25
+ end
26
+
27
+ describe 'debug' do
28
+
29
+ it 'calls install and logs' do
30
+ p = PebbleX::Pebble.new(e)
31
+ expect(p).to receive(:install).and_return(0)
32
+ expect(p).to receive(:logs).and_return(3)
33
+ expect(p.debug).to eq 3
34
+ end
35
+
36
+ it 'aborts if install fails' do
37
+ p = PebbleX::Pebble.new(e)
38
+ expect(p).to receive(:install).and_return(1)
39
+ expect(p).to_not receive(:logs)
40
+ expect(p.debug).to eq 1
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,53 @@
1
+ require 'rspec'
2
+ require 'pebble_x'
3
+ require 'tmpdir'
4
+
5
+ describe 'Xcode' do
6
+
7
+ def prepare_fixture(fixture_name)
8
+ dest = File.join(Dir.tmpdir, fixture_name)
9
+ src = File.join(File.dirname(__FILE__), 'fixtures', fixture_name)
10
+
11
+ FileUtils.rm_rf(dest)
12
+ FileUtils.copy_entry(src, dest, remove_destination=true)
13
+ dest
14
+ end
15
+
16
+
17
+ def project_with_js
18
+ @project_with_js ||= prepare_fixture('project_with_js')
19
+ end
20
+ @project_with_js = nil
21
+
22
+ e = nil
23
+
24
+ before(:each) do
25
+ e = double("environment")
26
+ @project_with_js = nil
27
+ expect(e).to receive(:verbose?) {false}
28
+ expect(e).to receive(:pebble_sdk_dir) {'path/to/pebble_sdk'}
29
+ expect(e).to receive(:pebblex_cmd) {'path/to/pebblex'}
30
+ end
31
+
32
+ describe 'initialize' do
33
+ it 'asks environment' do
34
+ PebbleX::Xcode.new(e, project_with_js, 'some_name')
35
+ end
36
+
37
+ it 'fails on wrong directory' do
38
+ expect{PebbleX::Xcode.new(e, 'any directory', 'some_name')}.to raise_error
39
+ end
40
+ end
41
+
42
+ describe 'create_project' do
43
+
44
+ it 'creates files' do
45
+ x = PebbleX::Xcode.new(e, project_with_js, 'some_name')
46
+ p = x.create_project
47
+ expect(p).to be_a(Xcodeproj::Project)
48
+ expect(File).to exist(File.join(project_with_js, 'some_name.xcodeproj', 'project.pbxproj'))
49
+ end
50
+
51
+ end
52
+
53
+ end
metadata ADDED
@@ -0,0 +1,175 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pebblex
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Heiko Behrens
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-02-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: thor
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.18.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.18.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: xcodeproj
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.14.1
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.14.1
46
+ - !ruby/object:Gem::Dependency
47
+ name: bundler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.5'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.5'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '2.14'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '2.14'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec-mocks
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '2.14'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '2.14'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rake
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ description: For now, it can create and Xcode project from a pebble dir. In future,
111
+ some other convenience commands will be added.
112
+ email:
113
+ - HeikoBehrens@gmx.de
114
+ executables:
115
+ - pebblex
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .gitignore
120
+ - .ruby-version
121
+ - .travis.yml
122
+ - Gemfile
123
+ - LICENSE.txt
124
+ - README.md
125
+ - Rakefile
126
+ - bin/pebblex
127
+ - images/AppCodeRunConfig.png
128
+ - lib/pebble_x.rb
129
+ - lib/pebble_x/cli.rb
130
+ - lib/pebble_x/pebble.rb
131
+ - lib/pebble_x/version.rb
132
+ - lib/pebble_x/xcode.rb
133
+ - pebblex.gemspec
134
+ - spec/cli_spec.rb
135
+ - spec/fixtures/project_with_js/.gitignore
136
+ - spec/fixtures/project_with_js/appinfo.json
137
+ - spec/fixtures/project_with_js/src/js/pebble-js-app.js
138
+ - spec/fixtures/project_with_js/src/project_with_js.c
139
+ - spec/fixtures/project_with_js/wscript
140
+ - spec/pebble_spec.rb
141
+ - spec/xcode_spec.rb
142
+ homepage: https://github.com/hbehrens/pebblex
143
+ licenses:
144
+ - MIT
145
+ post_install_message:
146
+ rdoc_options: []
147
+ require_paths:
148
+ - lib
149
+ required_ruby_version: !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ none: false
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ requirements: []
162
+ rubyforge_project:
163
+ rubygems_version: 1.8.23
164
+ signing_key:
165
+ specification_version: 3
166
+ summary: Some additions to the pebble CLI.
167
+ test_files:
168
+ - spec/cli_spec.rb
169
+ - spec/fixtures/project_with_js/.gitignore
170
+ - spec/fixtures/project_with_js/appinfo.json
171
+ - spec/fixtures/project_with_js/src/js/pebble-js-app.js
172
+ - spec/fixtures/project_with_js/src/project_with_js.c
173
+ - spec/fixtures/project_with_js/wscript
174
+ - spec/pebble_spec.rb
175
+ - spec/xcode_spec.rb