cordova-rake 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b5d17d4b08bcc44d95e0ef085872eadb8b270154
4
+ data.tar.gz: 886dd03236b9465ac950a2c29ed153bbb6b958a6
5
+ SHA512:
6
+ metadata.gz: 1d3da0235528e3b734edc42141aa2d5a5731f6191ec0f44ea64f1e3bca227583bf0c8fd763f203bb42fa2dfc80afee296bb29db7672e91c0296997f69f1d057a
7
+ data.tar.gz: 18552dfceda71a4b0ea2c9101e045354b60f60010983551aa0507d099a730a535e2da46641100ab477e94668cac2679ceeb59f1e014021824dfd599b07118286
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ .DS_Store
2
+ coverage
3
+ rdoc
4
+ pkg
5
+ .bundle
6
+ Gemfile.lock
7
+ *.gem
8
+ *.log
data/.hound.yml ADDED
@@ -0,0 +1,2 @@
1
+ ruby:
2
+ enabled: true
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ env: CI="travis"
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0
6
+ - 2.1
7
+ - 2.2
8
+ - ruby-head
9
+ - jruby-19mode
10
+ - rbx-2
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in phonie-codes.gemspec
4
+ gemspec
5
+
6
+ group :test do
7
+ gem 'rake'
8
+ gem 'psych'
9
+ gem 'rubocop'
10
+ gem 'guard'
11
+ gem 'guard-rubocop'
12
+ gem 'minitest'
13
+ gem 'guard-minitest'
14
+ gem 'coveralls', require: false
15
+ end
data/Guardfile ADDED
@@ -0,0 +1,26 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec feature)
6
+
7
+ ## Uncomment to clear the screen before every task
8
+ # clearing :on
9
+
10
+ guard :minitest do
11
+ # with Minitest::Unit
12
+ # watch(%r{^test/(.*)\/?test_(.*)\.rb$})
13
+ # watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
14
+ # watch(%r{^test/test_helper\.rb$}) { 'test' }
15
+
16
+ # with Minitest::Spec
17
+ watch(/^spec\/(.*)_spec\.rb$/)
18
+ watch(/^lib\/(.+)\.rb$/) { 'spec' }
19
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
20
+ watch(/^spec\/spec_helper\.rb$/) { 'spec' }
21
+ end
22
+
23
+ guard :rubocop do
24
+ watch(/.+\.rb$/)
25
+ watch(/(?:.+\/)?\.rubocop\.yml$/) { |m| File.dirname(m[0]) }
26
+ end
data/MIT-LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2014-2015 Cordova Rake Authors
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a
4
+ copy of this software and associated documentation files (the "Software"),
5
+ to deal in the Software without restriction, including without limitation
6
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
7
+ and/or sell copies of the Software, and to permit persons to whom the
8
+ Software is furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be
11
+ included in all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
16
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
17
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
18
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
19
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # Rake Cordova
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/cordova-rake.png)](http://badge.fury.io/rb/cordova-rake)
4
+
5
+ The missing cordova tasks. And the better: On Ruby!
6
+
7
+ ## Install
8
+
9
+ gem install cordova-rake
10
+
11
+
12
+ ## Use
13
+
14
+ Add to your `Rakefile`
15
+
16
+ require 'cordova-rake'
17
+
18
+ If you don't have one
19
+
20
+ echo "require 'cordova-rake'" > Rakefile
21
+
22
+
23
+ ## From Rake
24
+
25
+ ```
26
+ rake compile # Compiles all resources
27
+ rake compile:css # Compiles SASS -> CSS
28
+ rake compile:html # Compiles HAML -> HTML
29
+ rake compile:js # Compiles Coffee -> JS
30
+ rake compile:vars # Postcompile ENV variables
31
+ rake release:apple # Deploy to Apple’s App Store
32
+ rake release:google # Deploy to Google’s Play Store
33
+ rake ripple # Prepare & Ripple emulate
34
+ rake run:android # Run on Android device or emulator
35
+ rake run:ios # Run on iOS plugged device or emulator
36
+ rake serve # Phonegap Dev App, optional: port
37
+ rake setup # Setup env for development
38
+ ```
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+
5
+ Rake::TestTask.new do |t|
6
+ t.libs << 'spec'
7
+ t.test_files = FileList['spec/**/*_spec.rb']
8
+ t.verbose = true
9
+ end
10
+
11
+ task default: [:test]
@@ -0,0 +1,18 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'cordova-rake'
6
+ s.version = '0.0.3'
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ['Marcos Piccinini']
9
+ s.email = ['nofxx@github.com']
10
+ s.homepage = 'http://github.com/nofxx/cordova-rake'
11
+ s.summary = 'Rake tasks to help cordova development'
12
+ s.description = 'Rake tasks to help cordova development'
13
+ s.license = 'MIT'
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.require_paths = ['lib']
18
+ end
@@ -0,0 +1,9 @@
1
+ require 'rake'
2
+ require 'yaml'
3
+ require 'tilt'
4
+ require 'nokogiri'
5
+ START = Time.now
6
+
7
+ # Just load all tasks
8
+ tasks = File.join(File.dirname(__FILE__), '..', 'tasks')
9
+ Dir.glob("#{tasks}/*.rake").each { |r| import r }
@@ -0,0 +1,204 @@
1
+ #
2
+ # Rake / Cordova
3
+ #
4
+ def get_sources(ext, dir = 'app')
5
+ source_files = Rake::FileList.new("#{dir}/**/*.#{ext}") do |fl|
6
+ fl.exclude("~*")
7
+ fl.exclude(/^scratch\//)
8
+ # fl.exclude { |f| `git ls-files #{f}`.empty? } # Only commited
9
+ end
10
+ end
11
+
12
+ def environment
13
+ ENV['TARGET'] || 'development'
14
+ end
15
+
16
+ def config(key)
17
+ return @xml[key] if @xml
18
+ xml = Nokogiri::XML(File.open('config.xml'))
19
+ @xml = {
20
+ app: xml.xpath("//xmlns:name").text,
21
+ desc: xml.xpath("//xmlns:description").text,
22
+ platforms: xml.xpath("//xmlns:platform").map { |os| os['name'] }
23
+ }
24
+ config(key)
25
+ end
26
+
27
+ def app
28
+ config(:app)
29
+ end
30
+
31
+ def layout
32
+ @layout ||= Tilt.new('app/html/layout.haml')
33
+ end
34
+
35
+ task default: [:greet, :compile, :report]
36
+
37
+ task :greet do
38
+ puts "PhoneGap Rake! #{environment} #{ENV['CORDOVA_PLATFORMS']}"
39
+ puts "---"
40
+ end
41
+
42
+ desc 'Setup env for development'
43
+ task :setup do
44
+ sh 'npm -g install phonegap cordova coffee-script'
45
+ sh 'gem install haml sass yamg'
46
+ end
47
+
48
+ task :report do
49
+ puts "---"
50
+ puts "Rake done! #{format("%.2f", Time.now - START)}s"
51
+ end
52
+
53
+ desc 'Phonegap Dev App, optional: port.'
54
+ task :serve do
55
+ port = ARGV.last.to_i
56
+ port = 4000 if port.zero?
57
+ sh "phonegap serve -p #{port}"
58
+ end
59
+
60
+ desc 'Prepare & Ripple emulate'
61
+ task :ripple do
62
+ sh 'cordova prepare'
63
+ sh 'ripple emulate'
64
+ end
65
+
66
+ namespace :run do
67
+ desc 'Run on Android device or emulator'
68
+ task :android do
69
+ sh 'cordova build android'
70
+ sh 'cordova run android'
71
+ end
72
+
73
+ desc 'Run on iOS plugged device or emulator'
74
+ task :ios do
75
+ sh 'cordova build ios'
76
+ sh 'cordova run ios --device'
77
+ end
78
+ end
79
+
80
+ desc 'Compiles all resources'
81
+ task :compile => ['compile:all']
82
+
83
+ namespace :compile do
84
+ task :all => [:js, :css, :html, :vars]
85
+
86
+ desc 'Compiles Coffee -> JS'
87
+ task :js => get_sources(:coffee).ext('.js')
88
+
89
+ desc 'Compiles SASS -> CSS'
90
+ task :css => get_sources(:sass).ext('.css')
91
+
92
+ desc 'Compiles HAML -> HTML'
93
+ task :html => get_sources(:haml).ext('.html')
94
+
95
+ desc 'Postcompile ENV variables'
96
+ task :vars do
97
+ data = YAML.load_file('config/app.yml')[environment]
98
+ [:js, :css, :html].map { |f| get_sources(f, 'www/js') }.flatten.each do |f|
99
+ data.each do |k, v|
100
+ sh "sed -i \"s/'...#{k.upcase}...'/'#{v}'/g\" #{f}"
101
+ # sh "sed -i \"s/'####{k.upcase}###'/#{v}/g\" #{f}" # numbers
102
+ end
103
+ end
104
+ end
105
+
106
+ rule '.js' => '.coffee' do |t|
107
+ output = File.dirname(t.source).gsub(/app\//, 'www/')
108
+ # print "CoffeeScript | " # #{t.source} -> #{output}"
109
+ sh "coffee --no-header -b -o #{output} #{t.source}"
110
+ end
111
+
112
+ rule '.css' => '.sass' do |t|
113
+ # print "SASS | #{t.source} -> #{t.name} | "
114
+ sh "sass #{t.source} #{t.name.gsub(/app\//, 'www/')}"
115
+ end
116
+
117
+ rule '.html' => '.haml' do |t|
118
+ next if t.name =~ /layout/
119
+ template = Tilt.new(t.source)
120
+ # => #<Tilt::HAMLTemplate @file="path/to/file.haml" ...>
121
+ File.open(t.name.gsub(/app\//, 'www/'), 'w') do |f|
122
+ f.puts layout.render { template.render }
123
+ end
124
+ # print "HAML | #{t.source} -> #{t.name} | "
125
+ # sh "haml #{t.source} #{}"
126
+ end
127
+ end
128
+
129
+ #
130
+ #
131
+ # RELEASE
132
+ #
133
+ #
134
+ namespace :release do
135
+
136
+ task :check_dirs do
137
+ %w( .keys build ).each do |dir|
138
+ FileUtils.mkdir dir unless File.exist?(dir)
139
+ end
140
+ end
141
+
142
+ desc 'Deploy to Google’s Play Store'
143
+ task google: [:check_dirs, 'google:all', :report]
144
+
145
+ namespace :google do
146
+ task :all => [:clean, :keygen, :archive, :sign, :align, :check, :submit]
147
+
148
+ # desc 'Clean up build folder from apks'
149
+ task :clean do
150
+ Dir['build/*.apk'].each { |f| File.delete(f) }
151
+ end
152
+
153
+ # desc 'Generates Google Play Store .keystore'
154
+ task :keygen do
155
+ next if File.exist?('.keys/google.keystore')
156
+ puts "\nGenerate key first!\n\n"
157
+ sh "keytool -genkey -v -keystore ./.keys/google.keystore "\
158
+ "-alias #{app} -keyalg RSA -keysize 2048 -validity 10000"
159
+ end
160
+
161
+ task :archive do
162
+ sh 'cordova build --release android'
163
+ FileUtils.cp 'platforms/android/build/outputs'\
164
+ '/apk/android-release-unsigned.apk',
165
+ "build/#{app}-unsigned.apk"
166
+ end
167
+
168
+ task :sign do
169
+ sh "jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 "\
170
+ "-keystore ./.keys/google.keystore build/#{app}-unsigned.apk "\
171
+ "#{app}"
172
+ FileUtils.cp "build/#{app}-unsigned.apk", "build/#{app}-signed.apk"
173
+ end
174
+
175
+ task :align do
176
+ sh "zipalign -f -v 4 build/#{app}-signed.apk build/#{app}.apk"
177
+ end
178
+
179
+ task :check do
180
+ arch = "build/#{app}.apk"
181
+ if File.exists? arch
182
+ puts "Build done! #{arch} #{File.size(arch).to_f/(1024 * 1024)} Mb"
183
+ else
184
+ puts "Something BAD! No #{arch}!"
185
+ exit 1
186
+ end
187
+ end
188
+
189
+ task :submit do
190
+ #hope we can soon
191
+ end
192
+ end
193
+
194
+ #
195
+ # Apple
196
+ #
197
+ desc 'Deploy to Apple’s App Store'
198
+ task apple: [:check_keys_dir, 'apple:all', :report]
199
+
200
+ namespace :apple do
201
+ task :all => [:archive, :upload, :check]
202
+
203
+ end
204
+ end
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cordova-rake
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Marcos Piccinini
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-02 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Rake tasks to help cordova development
14
+ email:
15
+ - nofxx@github.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".coveralls.yml"
21
+ - ".gitignore"
22
+ - ".hound.yml"
23
+ - ".travis.yml"
24
+ - Gemfile
25
+ - Guardfile
26
+ - MIT-LICENSE
27
+ - README.md
28
+ - Rakefile
29
+ - cordova-rake.gemspec
30
+ - lib/cordova/rake.rb
31
+ - lib/tasks/cordova.rake
32
+ homepage: http://github.com/nofxx/cordova-rake
33
+ licenses:
34
+ - MIT
35
+ metadata: {}
36
+ post_install_message:
37
+ rdoc_options: []
38
+ require_paths:
39
+ - lib
40
+ required_ruby_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ required_rubygems_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ requirements: []
51
+ rubyforge_project:
52
+ rubygems_version: 2.4.7
53
+ signing_key:
54
+ specification_version: 4
55
+ summary: Rake tasks to help cordova development
56
+ test_files: []