andrake 0.1.2 → 1.0.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/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/README.rdoc +8 -2
- data/VERSION +1 -1
- data/andrake.gemspec +13 -2
- data/lib/andrake.rb +2 -0
- data/lib/andrake/manifest.rb +22 -0
- data/lib/andrake/manifest/version.rb +67 -0
- data/lib/andrake/tasks.rb +39 -0
- data/lib/andrake/templates/Rakefile +2 -0
- data/spec/manifest/AndroidManifest.xml +47 -0
- data/spec/manifest/manifest_spec.rb +44 -0
- data/spec/manifest/version_spec.rb +84 -0
- metadata +30 -11
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -3,10 +3,16 @@
|
|
3
3
|
rake tasks for android development
|
4
4
|
|
5
5
|
== tasks
|
6
|
-
|
6
|
+
count up version of AndroidManifest.xml automaticaly
|
7
|
+
|
8
|
+
by
|
9
|
+
rake version:bump:major
|
10
|
+
rake version:bump:minor
|
11
|
+
rake version:bump:patch
|
12
|
+
|
7
13
|
|
8
14
|
== Contributing to andrake
|
9
|
-
|
15
|
+
|
10
16
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
11
17
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
12
18
|
* Fork the project
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
data/andrake.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{andrake}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "1.0.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Yamada Masaki"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-06-25}
|
13
13
|
s.default_executable = %q{andrake}
|
14
14
|
s.description = %q{Andrake is rake tasks for android development}
|
15
15
|
s.email = %q{masaki@hisme.net}
|
@@ -32,9 +32,15 @@ Gem::Specification.new do |s|
|
|
32
32
|
"lib/andrake.rb",
|
33
33
|
"lib/andrake/generator.rb",
|
34
34
|
"lib/andrake/generator/rakefile.rb",
|
35
|
+
"lib/andrake/manifest.rb",
|
36
|
+
"lib/andrake/manifest/version.rb",
|
37
|
+
"lib/andrake/tasks.rb",
|
35
38
|
"lib/andrake/templates/Rakefile",
|
36
39
|
"spec/andrake_spec.rb",
|
37
40
|
"spec/generator/rakefile_spec.rb",
|
41
|
+
"spec/manifest/AndroidManifest.xml",
|
42
|
+
"spec/manifest/manifest_spec.rb",
|
43
|
+
"spec/manifest/version_spec.rb",
|
38
44
|
"spec/spec_helper.rb"
|
39
45
|
]
|
40
46
|
s.homepage = %q{http://github.com/masarakki/andrake}
|
@@ -45,6 +51,8 @@ Gem::Specification.new do |s|
|
|
45
51
|
s.test_files = [
|
46
52
|
"spec/andrake_spec.rb",
|
47
53
|
"spec/generator/rakefile_spec.rb",
|
54
|
+
"spec/manifest/manifest_spec.rb",
|
55
|
+
"spec/manifest/version_spec.rb",
|
48
56
|
"spec/spec_helper.rb"
|
49
57
|
]
|
50
58
|
|
@@ -52,17 +60,20 @@ Gem::Specification.new do |s|
|
|
52
60
|
s.specification_version = 3
|
53
61
|
|
54
62
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
63
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
55
64
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
56
65
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
57
66
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
58
67
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
59
68
|
else
|
69
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
60
70
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
61
71
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
62
72
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
63
73
|
s.add_dependency(%q<rcov>, [">= 0"])
|
64
74
|
end
|
65
75
|
else
|
76
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
66
77
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
67
78
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
68
79
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
data/lib/andrake.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
class Andrake::Manifest
|
3
|
+
autoload :Version, 'andrake/manifest/version'
|
4
|
+
ManifestFile = 'AndroidManifest.xml'
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def manifest_file ; ManifestFile ; end
|
8
|
+
def load ; new File.read(manifest_file) ; end
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize(xml)
|
12
|
+
@document = ::Nokogiri::XML(xml)
|
13
|
+
end
|
14
|
+
|
15
|
+
def save
|
16
|
+
File.open(self.class.manifest_file, 'w') do |f|
|
17
|
+
@document.write_xml_to f
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
include Version
|
22
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Andrake::Manifest::Version
|
2
|
+
def version
|
3
|
+
[version_major, version_minor, version_patch].join(".")
|
4
|
+
end
|
5
|
+
|
6
|
+
def bump_major
|
7
|
+
self.version_major += 1
|
8
|
+
self.version_minor = 0
|
9
|
+
self.version_patch = 0
|
10
|
+
self.version_code += 1
|
11
|
+
self
|
12
|
+
end
|
13
|
+
|
14
|
+
def bump_minor
|
15
|
+
self.version_minor += 1
|
16
|
+
self.version_patch = 0
|
17
|
+
self.version_code += 1
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
def bump_patch
|
22
|
+
self.version_patch += 1
|
23
|
+
self.version_code += 1
|
24
|
+
self
|
25
|
+
end
|
26
|
+
|
27
|
+
def update_version
|
28
|
+
manifest["android:versionName"] = version.to_s
|
29
|
+
manifest["android:versionCode"] = version_code.to_s
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
[:major, :minor, :patch].each do |element|
|
34
|
+
define_method("bump_#{element}!".to_sym) do
|
35
|
+
send("bump_#{element}".to_sym).update_version.save
|
36
|
+
self
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
[:major, :minor, :patch, :code].each do |element|
|
41
|
+
val_name = "@version_#{element}".to_sym
|
42
|
+
|
43
|
+
define_method("version_#{element}".to_sym) do
|
44
|
+
load_version unless instance_variable_get(val_name)
|
45
|
+
instance_variable_get(val_name)
|
46
|
+
end
|
47
|
+
|
48
|
+
define_method("version_#{element}=".to_sym) do |val|
|
49
|
+
instance_variable_set(val_name, val)
|
50
|
+
val
|
51
|
+
end
|
52
|
+
|
53
|
+
protected "version_#{element}=".to_sym
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
def manifest
|
58
|
+
@manifest ||= @document.xpath('/manifest').first
|
59
|
+
end
|
60
|
+
|
61
|
+
def load_version
|
62
|
+
@version_major, @version_minor, @version_patch = manifest["versionName"].split(/\./).map(&:to_i) + [0, 0, 0]
|
63
|
+
@version_code = manifest["versionCode"].to_i
|
64
|
+
true
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/tasklib'
|
3
|
+
|
4
|
+
class Rake::Application
|
5
|
+
def andrake
|
6
|
+
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class Andrake::Tasks < ::Rake::TaskLib
|
11
|
+
def initialize
|
12
|
+
define
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
def define
|
17
|
+
namespace :version do
|
18
|
+
namespace :bump do
|
19
|
+
desc "bump major version"
|
20
|
+
task :major do
|
21
|
+
manifest = Andrake::Manifest.load.bump_major!
|
22
|
+
puts "major update to #{manifest.version}"
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "bump minor version"
|
26
|
+
task :minor do
|
27
|
+
manifest = Andrake::Manifest.load.bump_minor!
|
28
|
+
puts "minor update to #{manifest.version}"
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "bump patch version"
|
32
|
+
task :patch do
|
33
|
+
manifest = Andrake::Manifest.load.bump_patch!
|
34
|
+
puts "patch update to #{manifest.version}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
3
|
+
package="net.hisme.masaki.kyoani" android:versionCode="25"
|
4
|
+
android:versionName="0.8.1">
|
5
|
+
<application android:icon="@drawable/icon" android:label="@string/app_name">
|
6
|
+
<activity android:name=".activities.MainActivity"
|
7
|
+
android:label="@string/title_main">
|
8
|
+
<intent-filter>
|
9
|
+
<action android:name="android.intent.action.MAIN" />
|
10
|
+
<category android:name="android.intent.category.LAUNCHER" />
|
11
|
+
</intent-filter>
|
12
|
+
</activity>
|
13
|
+
<activity android:name=".activities.AccountActivity"
|
14
|
+
android:label="@string/title_account" />
|
15
|
+
<activity android:name=".activities.SettingActivity"
|
16
|
+
android:label="@string/app_name" />
|
17
|
+
<activity android:name=".activities.HelpActivity"
|
18
|
+
android:label="@string/title_help" />
|
19
|
+
<activity android:name=".activities.AboutActivity"
|
20
|
+
android:label="@string/title_about" />
|
21
|
+
|
22
|
+
<receiver android:name=".widget.KyoAniWidget1" android:label="@string/widget_1">
|
23
|
+
<intent-filter>
|
24
|
+
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
25
|
+
</intent-filter>
|
26
|
+
<meta-data android:name="android.appwidget.provider"
|
27
|
+
android:resource="@xml/widget_1x1" />
|
28
|
+
</receiver>
|
29
|
+
<receiver android:name=".widget.KyoAniWidget2" android:label="@string/widget_2">
|
30
|
+
<intent-filter>
|
31
|
+
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
32
|
+
</intent-filter>
|
33
|
+
<meta-data android:name="android.appwidget.provider"
|
34
|
+
android:resource="@xml/widget_2x2" />
|
35
|
+
</receiver>
|
36
|
+
<service android:name=".services.KyoAniService"></service>
|
37
|
+
<service android:name=".services.DailyUpdater"></service>
|
38
|
+
<service android:name=".services.WidgetUpdater"></service>
|
39
|
+
<receiver android:name=".services.StartupReceiver">
|
40
|
+
<intent-filter>
|
41
|
+
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
42
|
+
</intent-filter>
|
43
|
+
</receiver>
|
44
|
+
</application>
|
45
|
+
<uses-sdk android:minSdkVersion="4" />
|
46
|
+
<uses-permission android:name="android.permission.INTERNET" />
|
47
|
+
</manifest>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe Andrake::Manifest do
|
4
|
+
before do
|
5
|
+
@manifest_filename = File.expand_path(File.dirname(__FILE__) + '/AndroidManifest.xml')
|
6
|
+
|
7
|
+
@manifest_xml = File.read(@manifest_filename)
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "class methods" do
|
11
|
+
subject { Andrake::Manifest }
|
12
|
+
its(:manifest_file) { should eq("AndroidManifest.xml") }
|
13
|
+
|
14
|
+
describe ".load" do
|
15
|
+
before do
|
16
|
+
Andrake::Manifest.stub(:manifest_file) { @manifest_filename }
|
17
|
+
end
|
18
|
+
it "should create instance with contents of xml file" do
|
19
|
+
subject.should_receive(:new).with(@manifest_xml)
|
20
|
+
subject.load
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "instance methods" do
|
26
|
+
before do
|
27
|
+
Andrake::Manifest.stub(:manifest_file) { @manifest_filename }
|
28
|
+
end
|
29
|
+
|
30
|
+
subject { Andrake::Manifest.new(@manifest_xml) }
|
31
|
+
describe "#save" do
|
32
|
+
after do
|
33
|
+
File.open(@manifest_filename, 'w') do |f|
|
34
|
+
f.write @manifest_xml
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should be equal to src file" do
|
39
|
+
subject.save
|
40
|
+
Nokogiri::XML(File.read(@manifest_filename)).to_s.should eq(subject.instance_variable_get(:@document).to_s)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe Andrake::Manifest do
|
4
|
+
before(:all) do
|
5
|
+
@manifest_file = File.read(File.expand_path(File.dirname(__FILE__) + '/AndroidManifest.xml'))
|
6
|
+
end
|
7
|
+
|
8
|
+
before do
|
9
|
+
@manifest = Andrake::Manifest.new(@manifest_file)
|
10
|
+
end
|
11
|
+
|
12
|
+
subject { @manifest }
|
13
|
+
its(:version) { "0.8.1" }
|
14
|
+
its(:version_major) { should eq(0) }
|
15
|
+
its(:version_minor) { should eq(8) }
|
16
|
+
its(:version_patch) { should eq(1) }
|
17
|
+
its(:version_code) { should eq(25) }
|
18
|
+
|
19
|
+
describe "#bump_major" do
|
20
|
+
subject { @manifest.bump_major }
|
21
|
+
|
22
|
+
it { should eq(@manifest) }
|
23
|
+
its(:version_major) { should eq(1) }
|
24
|
+
its(:version_minor) { should eq(0) }
|
25
|
+
its(:version_patch) { should eq(0) }
|
26
|
+
its(:version_code) { should eq(26) }
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#bump_minor" do
|
30
|
+
subject { @manifest.bump_minor }
|
31
|
+
|
32
|
+
it { should eq(@manifest) }
|
33
|
+
its(:version_major) { should eq(0) }
|
34
|
+
its(:version_minor) { should eq(9) }
|
35
|
+
its(:version_patch) { should eq(0) }
|
36
|
+
its(:version_code) { should eq(26) }
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#bump_patch" do
|
40
|
+
subject { @manifest.bump_patch }
|
41
|
+
|
42
|
+
it { should eq(@manifest) }
|
43
|
+
its(:version_major) { should eq(0) }
|
44
|
+
its(:version_minor) { should eq(8) }
|
45
|
+
its(:version_patch) { should eq(2) }
|
46
|
+
its(:version_code) { should eq(26) }
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#load_version reload version elements from Nokogiri instance" do
|
50
|
+
subject do
|
51
|
+
@manifest.bump_patch
|
52
|
+
@manifest.send(:load_version)
|
53
|
+
@manifest
|
54
|
+
end
|
55
|
+
|
56
|
+
its(:version_major) { should eq(0) }
|
57
|
+
its(:version_minor) { should eq(8) }
|
58
|
+
its(:version_patch) { should eq(1) }
|
59
|
+
its(:version_code) { should eq(25) }
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "#update set version elements to Nokogiri instance" do
|
63
|
+
subject do
|
64
|
+
@manifest.bump_patch.update_version
|
65
|
+
@manifest.send(:load_version)
|
66
|
+
@manifest
|
67
|
+
end
|
68
|
+
|
69
|
+
its(:version_major) { should eq(0) }
|
70
|
+
its(:version_minor) { should eq(8) }
|
71
|
+
its(:version_patch) { should eq(2) }
|
72
|
+
its(:version_code) { should eq(26) }
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "bump_version and save xml" do
|
76
|
+
subject { @manifest }
|
77
|
+
it "should recieve bump, update_version, save" do
|
78
|
+
@manifest.should_receive(:bump_patch).ordered { @manifest }
|
79
|
+
@manifest.should_receive(:update_version).ordered { @manifest }
|
80
|
+
@manifest.should_receive(:save).ordered { true }
|
81
|
+
@manifest.bump_patch!.should eq(@manifest)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: andrake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 1.0.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Yamada Masaki
|
@@ -10,12 +10,23 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-06-25 00:00:00 +09:00
|
14
14
|
default_executable: andrake
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
17
|
+
name: nokogiri
|
18
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
19
30
|
none: false
|
20
31
|
requirements:
|
21
32
|
- - ~>
|
@@ -23,10 +34,10 @@ dependencies:
|
|
23
34
|
version: 2.3.0
|
24
35
|
type: :development
|
25
36
|
prerelease: false
|
26
|
-
version_requirements: *
|
37
|
+
version_requirements: *id002
|
27
38
|
- !ruby/object:Gem::Dependency
|
28
39
|
name: bundler
|
29
|
-
requirement: &
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
30
41
|
none: false
|
31
42
|
requirements:
|
32
43
|
- - ~>
|
@@ -34,10 +45,10 @@ dependencies:
|
|
34
45
|
version: 1.0.0
|
35
46
|
type: :development
|
36
47
|
prerelease: false
|
37
|
-
version_requirements: *
|
48
|
+
version_requirements: *id003
|
38
49
|
- !ruby/object:Gem::Dependency
|
39
50
|
name: jeweler
|
40
|
-
requirement: &
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
41
52
|
none: false
|
42
53
|
requirements:
|
43
54
|
- - ~>
|
@@ -45,10 +56,10 @@ dependencies:
|
|
45
56
|
version: 1.5.2
|
46
57
|
type: :development
|
47
58
|
prerelease: false
|
48
|
-
version_requirements: *
|
59
|
+
version_requirements: *id004
|
49
60
|
- !ruby/object:Gem::Dependency
|
50
61
|
name: rcov
|
51
|
-
requirement: &
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
52
63
|
none: false
|
53
64
|
requirements:
|
54
65
|
- - ">="
|
@@ -56,7 +67,7 @@ dependencies:
|
|
56
67
|
version: "0"
|
57
68
|
type: :development
|
58
69
|
prerelease: false
|
59
|
-
version_requirements: *
|
70
|
+
version_requirements: *id005
|
60
71
|
description: Andrake is rake tasks for android development
|
61
72
|
email: masaki@hisme.net
|
62
73
|
executables:
|
@@ -80,9 +91,15 @@ files:
|
|
80
91
|
- lib/andrake.rb
|
81
92
|
- lib/andrake/generator.rb
|
82
93
|
- lib/andrake/generator/rakefile.rb
|
94
|
+
- lib/andrake/manifest.rb
|
95
|
+
- lib/andrake/manifest/version.rb
|
96
|
+
- lib/andrake/tasks.rb
|
83
97
|
- lib/andrake/templates/Rakefile
|
84
98
|
- spec/andrake_spec.rb
|
85
99
|
- spec/generator/rakefile_spec.rb
|
100
|
+
- spec/manifest/AndroidManifest.xml
|
101
|
+
- spec/manifest/manifest_spec.rb
|
102
|
+
- spec/manifest/version_spec.rb
|
86
103
|
- spec/spec_helper.rb
|
87
104
|
has_rdoc: true
|
88
105
|
homepage: http://github.com/masarakki/andrake
|
@@ -98,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
115
|
requirements:
|
99
116
|
- - ">="
|
100
117
|
- !ruby/object:Gem::Version
|
101
|
-
hash:
|
118
|
+
hash: 338396801
|
102
119
|
segments:
|
103
120
|
- 0
|
104
121
|
version: "0"
|
@@ -118,4 +135,6 @@ summary: Andrake is rake tasks for android development
|
|
118
135
|
test_files:
|
119
136
|
- spec/andrake_spec.rb
|
120
137
|
- spec/generator/rakefile_spec.rb
|
138
|
+
- spec/manifest/manifest_spec.rb
|
139
|
+
- spec/manifest/version_spec.rb
|
121
140
|
- spec/spec_helper.rb
|