antetype 0.0.2 → 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.
Binary file
@@ -0,0 +1,88 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ antetype (0.0.3)
5
+ bundler (~> 1.1.3)
6
+ thor (~> 0.14.6)
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ builder (3.0.0)
12
+ cane (1.3.0)
13
+ code_statistics (0.2.13)
14
+ columnize (0.3.6)
15
+ cucumber (1.1.9)
16
+ builder (>= 2.1.2)
17
+ diff-lcs (>= 1.1.2)
18
+ gherkin (~> 2.9.0)
19
+ json (>= 1.4.6)
20
+ term-ansicolor (>= 1.0.6)
21
+ debugger (1.0.1)
22
+ columnize (>= 0.3.1)
23
+ debugger-linecache
24
+ debugger-ruby_core_source
25
+ debugger-linecache (1.1.1)
26
+ debugger-ruby_core_source (>= 1.1.1)
27
+ debugger-ruby_core_source (1.1.2)
28
+ diff-lcs (1.1.3)
29
+ flay (1.4.3)
30
+ ruby_parser (~> 2.0)
31
+ sexp_processor (~> 3.0)
32
+ flog (2.5.3)
33
+ ruby_parser (~> 2.0)
34
+ sexp_processor (~> 3.0)
35
+ gherkin (2.9.3)
36
+ json (>= 1.4.6)
37
+ haml (3.0.25)
38
+ hanna_gudao (0.3.2)
39
+ haml (= 3.0.25)
40
+ rdoc (~> 3.12)
41
+ json (1.7.3)
42
+ multi_json (1.3.5)
43
+ rake (0.9.2.2)
44
+ rdoc (3.12)
45
+ json (~> 1.4)
46
+ reek (1.2.8)
47
+ ruby2ruby (~> 1.2)
48
+ ruby_parser (~> 2.0)
49
+ sexp_processor (~> 3.0)
50
+ rspec (2.6.0)
51
+ rspec-core (~> 2.6.0)
52
+ rspec-expectations (~> 2.6.0)
53
+ rspec-mocks (~> 2.6.0)
54
+ rspec-core (2.6.4)
55
+ rspec-expectations (2.6.0)
56
+ diff-lcs (~> 1.1.2)
57
+ rspec-mocks (2.6.0)
58
+ ruby2ruby (1.3.0)
59
+ ruby_parser (~> 2.0)
60
+ sexp_processor (~> 3.0)
61
+ ruby_parser (2.3.1)
62
+ sexp_processor (~> 3.0)
63
+ sexp_processor (3.2.0)
64
+ simplecov (0.6.4)
65
+ multi_json (~> 1.0)
66
+ simplecov-html (~> 0.5.3)
67
+ simplecov-html (0.5.3)
68
+ term-ansicolor (1.0.7)
69
+ thor (0.14.6)
70
+
71
+ PLATFORMS
72
+ ruby
73
+
74
+ DEPENDENCIES
75
+ antetype!
76
+ cane (~> 1.3.0)
77
+ code_statistics (= 0.2.13)
78
+ cucumber (~> 1.1.0)
79
+ debugger (~> 1.0.0)
80
+ flay (= 1.4.3)
81
+ flog (= 2.5.3)
82
+ hanna_gudao (= 0.3.2)
83
+ rake (~> 0.9.2.2)
84
+ rdoc (~> 3.12)
85
+ reek (~> 1.2.8)
86
+ rspec (~> 2.6.0)
87
+ ruby2ruby (= 1.3.0)
88
+ simplecov (= 0.6.4)
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'code_statistics'
3
+ require 'antetype'
4
+
5
+ require './tasks/helper'
6
+ Dir["tasks/**/*.rake"].each { |t| load t }
7
+
@@ -1,15 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "antetype/version"
4
3
 
5
4
  Gem::Specification.new do |s|
6
5
  s.name = "antetype"
7
- s.version = Antetype::VERSION
6
+ s.version = "0.0.3"
8
7
  s.authors = ["Gudao Luo"]
9
8
  s.email = ["gudao.luo@gmail.com"]
10
9
  s.homepage = "http://www.lycom.de"
11
- s.summary = %q{Write a gem summary}
12
- s.description = %q{Write a gem description}
10
+ s.summary = %q{Learn how to develop the Gem package}
11
+ s.description = %q{学习如何开发Gem软件包}
13
12
 
14
13
  s.rubyforge_project = "antetype"
15
14
 
@@ -18,7 +17,22 @@ Gem::Specification.new do |s|
18
17
  # s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
18
  s.executables = 'antetype'
20
19
  s.require_paths = ["lib"]
21
-
22
- s.add_development_dependency 'rspec', '~> 2.6.0'
20
+
21
+ s.add_dependency 'bundler', '~> 1.1.3'
23
22
  s.add_dependency 'thor', '~> 0.14.6'
23
+
24
+ s.add_development_dependency 'rspec', '~> 2.6.0'
25
+ s.add_development_dependency 'cucumber', '~> 1.1.0'
26
+ s.add_development_dependency 'debugger', '~> 1.0.0'
27
+ s.add_development_dependency 'rake', '~> 0.9.2.2'
28
+
29
+ s.add_development_dependency 'code_statistics', '= 0.2.13'
30
+ s.add_development_dependency 'cane', '~> 1.3.0'
31
+ s.add_development_dependency 'rdoc', '~> 3.12'
32
+ s.add_development_dependency 'ruby2ruby', '= 1.3.0'
33
+ s.add_development_dependency 'reek', '~> 1.2.8'
34
+ s.add_development_dependency 'flog', '= 2.5.3'
35
+ s.add_development_dependency 'flay', '= 1.4.3'
36
+ s.add_development_dependency 'simplecov', '= 0.6.4'
37
+ s.add_development_dependency 'hanna_gudao', '= 0.3.2'
24
38
  end
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'antetype'
3
3
 
4
- Antetype::Base.start
5
-
4
+ Antetype::Base.start
@@ -0,0 +1,21 @@
1
+ # language: zh-CN, 简体中文版本
2
+ 功能: 检查功能函数执行情况
3
+ 为了验证功能函数
4
+ 作为功能函数的使用者
5
+ 我希望看到功能函数是否返回正确信息
6
+
7
+ 场景: 检验变量是否为常量
8
+ 当:我验证一个常量
9
+ 那么:我应该看到该常量类型是<constant>
10
+
11
+ 场景: 检验类是否存在
12
+ 当:我验证一个类Antetype::Base
13
+ 那么:我应该看到该类的类型是<Class>
14
+
15
+ 场景: 检验函数version是否返回正确信息
16
+ 当:我调用函数version
17
+ 那么:我应该看到函数version返回值是<0.0.3>
18
+
19
+ 场景: 检验函数show_antetype_dir是否返回正确信息
20
+ 当:我调用函数show_antetype_dir
21
+ 那么:我应该看到函数show_antetype_dir返回值是<~/.antetype>
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+
3
+ 当 /^:我验证一个常量$/ do
4
+ @result = defined? Antetype::DEFAULT_CONFIG_PATH
5
+ end
6
+ 那么 /^:我应该看到该常量类型是<(.*)>$/ do |result|
7
+ @result.should == result.downcase
8
+ end
9
+
10
+ 当 /^:我验证一个类Antetype::Base$/ do
11
+ @result = Antetype::Base.class.to_s
12
+ end
13
+ 那么 /^:我应该看到该类的类型是<(.*)>$/ do |result|
14
+ @result.should == result
15
+ end
16
+
17
+ 当 /^:我调用函数version$/ do
18
+ #breakpoint
19
+ @result = Antetype::Base.new.version
20
+ end
21
+ 那么 /^:我应该看到函数version返回值是<(.*)>$/ do |result|
22
+ @result.should == result
23
+ end
24
+
25
+ 当 /^:我调用函数show_antetype_dir$/ do
26
+ @result = Antetype::Base.new.show_antetype_dir
27
+ end
28
+ 那么 /^:我应该看到函数show_antetype_dir返回值是<(.*)>$/ do |result|
29
+ @result.should == result
30
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+ require 'antetype'
3
+ require 'debugger'
4
+ require 'simplecov'
5
+
6
+ SimpleCov.start
7
+
8
+ class SimpleCov::Formatter::QualityFormatter
9
+ def format(result)
10
+ SimpleCov::Formatter::HTMLFormatter.new.format(result)
11
+ File.open("coverage/covered_percent", "w") do |f|
12
+ f.puts result.source_files.covered_percent.to_f
13
+ end
14
+ end
15
+ end
16
+
17
+ SimpleCov.formatter = SimpleCov::Formatter::QualityFormatter
@@ -1,6 +1,9 @@
1
- require 'antetype/version'
2
1
  require 'antetype/base'
3
2
 
3
+ # 模块Antetype定义两个方面内容:
4
+ # - 软件包常量
5
+ # - 继承Thor的对象,而对象Thor属于软件包Thor。
4
6
  module Antetype
7
+ # 定义软件包配置目录及其文件名称
5
8
  DEFAULT_CONFIG_PATH = '~/.antetype'
6
9
  end
@@ -1,10 +1,21 @@
1
1
  require 'thor'
2
2
 
3
3
  module Antetype
4
- class Base < Thor
5
- desc "show_antetype_dir", "show antetype dir"
6
- def show_antetype_dir
7
- say "#{Antetype::DEFAULT_CONFIG_PATH}", :green
4
+ # 对象Base完成一系列可执行如下功能:
5
+ #   实现所有软件包对外功能函数。
6
+ class Base < Thor
7
+ desc "version", "show antetype version"
8
+ # 返回软件包版本号
9
+ def version()
10
+ ver = Bundler.load.specs.
11
+ map{|gem| gem.version if 'antetype'==gem.name}.
12
+ find_all{|name| name!=nil}.
13
+ first.
14
+ to_s
15
+ say ver, :green
16
+ ver
8
17
  end
9
18
  end
10
19
  end
20
+
21
+ require 'antetype/base/actions'
@@ -0,0 +1,13 @@
1
+ module Antetype
2
+ #
3
+ class Base
4
+ desc "show_antetype_dir", "show antetype dir"
5
+ # 返回软件包配置目录及其文件名称
6
+ def show_antetype_dir
7
+ dir = "#{Antetype::DEFAULT_CONFIG_PATH}"
8
+ say dir, :green
9
+ dir
10
+ end
11
+ end
12
+ end
13
+
@@ -1,3 +0,0 @@
1
- module Antetype
2
- VERSION = "0.0.2"
3
- end
Binary file
@@ -0,0 +1,16 @@
1
+ begin
2
+ require 'cane/rake_task'
3
+
4
+ namespace :cane do
5
+ desc "Run cane to check quality metrics"
6
+ Cane::RakeTask.new(:cane) do |cane|
7
+ cane.abc_max = 15
8
+ cane.add_threshold 'coverage/covered_percent', :>=, 99
9
+ cane.no_style = true
10
+ end
11
+
12
+ task :default => :cane
13
+ end
14
+ rescue LoadError
15
+ abort "cane is unavailable. In order to run cane, you must: gem install cane"
16
+ end
@@ -0,0 +1,10 @@
1
+ begin
2
+ require 'cucumber/rake/task'
3
+ namespace :cucumber do
4
+ Cucumber::Rake::Task.new
5
+ end
6
+ rescue LoadError
7
+ task :cucumber do
8
+ abort "Cucumber is not available. In order to run Cucumber, you must: sudo gem install cucumber"
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ begin
2
+ require "rake"
3
+ require "rake/tasklib"
4
+ require "flay"
5
+ namespace :flay do
6
+ require "flay_task"
7
+ FlayTask.new do |t|
8
+ t.verbose = true
9
+ end
10
+ end
11
+ rescue LoadError
12
+ task :flay do
13
+ abort "Flay is not available. In order to run flay, you must: sudo gem install flay"
14
+ end
15
+ end
16
+
17
+
@@ -0,0 +1,19 @@
1
+ begin
2
+ require "rake"
3
+ require "rake/tasklib"
4
+ require "flog"
5
+ require "flog_task"
6
+ namespace :flog do
7
+ FlogTask.new do |t|
8
+ t.verbose = true
9
+ t.dirs = %w(app bin lib spec test)
10
+ # t.dirs = %w(app bin lib spec test features)
11
+ t.threshold = 200
12
+ end
13
+ end
14
+ rescue LoadError
15
+ task :flog do
16
+ abort "Flog is not available. In order to run flog, you must: sudo gem install flog"
17
+ end
18
+ end
19
+
@@ -0,0 +1,15 @@
1
+ begin
2
+ gem 'rdoc'
3
+ require 'rdoc/task'
4
+ namespace :hanna do
5
+ RDoc::Task.new do |rdoc|
6
+ rdoc.generator = 'hanna'
7
+ rdoc.rdoc_dir = 'hdoc'
8
+ rdoc.title = "Antetype #{Antetype::Base.new.version} Documentation"
9
+ rdoc.rdoc_files.include('lib/**/*.rb')
10
+ # rdoc.main = 'README.rdoc'
11
+ # rdoc.rdoc_files.include('README*')
12
+ end end
13
+ rescue LoadError
14
+ abort "hanna_gudao is unavailable. In order to run hanna_gudao, you must: gem install hanna_gudao"
15
+ end
@@ -0,0 +1,22 @@
1
+ # add rename_task method to Rake::Application
2
+ # it has an internal hash with name -> Rake::Task mapping
3
+ module Rake
4
+ class Application
5
+ def rename_task(task, old_name, new_name)
6
+ @tasks ||= {}
7
+ @tasks[new_name] = task
8
+ @tasks.delete old_name if @tasks.has_key? old_name
9
+ end
10
+ end
11
+ end
12
+
13
+ # add new rename method to Rake::Task class
14
+ # to rename a task
15
+ class Rake::Task
16
+ def rename(new_name)
17
+ return if new_name.nil? || @name == new_name
18
+ old_name = @name
19
+ @name = new_name.to_s
20
+ application.rename_task(self, old_name, @name)
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ # rename 'Rake' tasks
2
+ Rake::Task[:build].rename(:"self:build")
3
+ Rake::Task[:install].rename(:"self:install")
4
+ Rake::Task[:release].rename(:"self:release")
5
+
6
+ # desc "Runs all code quality metrics"
7
+ # task :"antetype:quality" => [:"stats:stats", :"flog:flog", :"cane:cane", :"reek:reek"]#, :"flay:flay"]
8
+
9
+
@@ -0,0 +1,11 @@
1
+ require 'rdoc/task'
2
+ namespace :rdoc do
3
+ RDoc::Task.new do |t|
4
+ t.rdoc_dir = "rdoc"
5
+ t.title = "Antetype -- Software Development Method"
6
+ t.rdoc_files.include("lib/**/*.rb")
7
+ # t.rdoc_files.include('README.rdoc')
8
+ # t.rdoc_files.exclude 'lib/**/templates/**/*'
9
+ # t.main = "README.rdoc"
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ begin
2
+ require "reek"
3
+ require "reek/rake/task"
4
+ namespace :reek do
5
+ Reek::Rake::Task.new do |t|
6
+ t.source_files = 'lib/**/*.rb'
7
+ t.verbose = true
8
+ t.fail_on_error = true
9
+ end
10
+ end
11
+ rescue LoadError
12
+ task :reek do
13
+ abort "Reek is unavailable. In order to run reek, you must: gem install reek"
14
+ end
15
+ end
16
+
@@ -0,0 +1,4 @@
1
+ # rename 'code_statistics' tasks
2
+ Rake::Task[:stats].rename(:"stats:stats")
3
+ Rake::Task[:code_stats].rename(:"stats:code_stats")
4
+
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: antetype
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Gudao Luo
@@ -10,18 +10,18 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-04-14 00:00:00 Z
13
+ date: 2012-05-26 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rspec
16
+ name: bundler
17
17
  prerelease: false
18
18
  requirement: &id001 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: 2.6.0
24
- type: :development
23
+ version: 1.1.3
24
+ type: :runtime
25
25
  version_requirements: *id001
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: thor
@@ -34,7 +34,150 @@ dependencies:
34
34
  version: 0.14.6
35
35
  type: :runtime
36
36
  version_requirements: *id002
37
- description: Write a gem description
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.6.0
46
+ type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: cucumber
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: 1.1.0
57
+ type: :development
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: debugger
61
+ prerelease: false
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: 1.0.0
68
+ type: :development
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
71
+ name: rake
72
+ prerelease: false
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 0.9.2.2
79
+ type: :development
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
82
+ name: code_statistics
83
+ prerelease: false
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - "="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.2.13
90
+ type: :development
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
93
+ name: cane
94
+ prerelease: false
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 1.3.0
101
+ type: :development
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
104
+ name: rdoc
105
+ prerelease: false
106
+ requirement: &id009 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: "3.12"
112
+ type: :development
113
+ version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
115
+ name: ruby2ruby
116
+ prerelease: false
117
+ requirement: &id010 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - "="
121
+ - !ruby/object:Gem::Version
122
+ version: 1.3.0
123
+ type: :development
124
+ version_requirements: *id010
125
+ - !ruby/object:Gem::Dependency
126
+ name: reek
127
+ prerelease: false
128
+ requirement: &id011 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 1.2.8
134
+ type: :development
135
+ version_requirements: *id011
136
+ - !ruby/object:Gem::Dependency
137
+ name: flog
138
+ prerelease: false
139
+ requirement: &id012 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - "="
143
+ - !ruby/object:Gem::Version
144
+ version: 2.5.3
145
+ type: :development
146
+ version_requirements: *id012
147
+ - !ruby/object:Gem::Dependency
148
+ name: flay
149
+ prerelease: false
150
+ requirement: &id013 !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - "="
154
+ - !ruby/object:Gem::Version
155
+ version: 1.4.3
156
+ type: :development
157
+ version_requirements: *id013
158
+ - !ruby/object:Gem::Dependency
159
+ name: simplecov
160
+ prerelease: false
161
+ requirement: &id014 !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - "="
165
+ - !ruby/object:Gem::Version
166
+ version: 0.6.4
167
+ type: :development
168
+ version_requirements: *id014
169
+ - !ruby/object:Gem::Dependency
170
+ name: hanna_gudao
171
+ prerelease: false
172
+ requirement: &id015 !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - "="
176
+ - !ruby/object:Gem::Version
177
+ version: 0.3.2
178
+ type: :development
179
+ version_requirements: *id015
180
+ description: "\xE5\xAD\xA6\xE4\xB9\xA0\xE5\xA6\x82\xE4\xBD\x95\xE5\xBC\x80\xE5\x8F\x91Gem\xE8\xBD\xAF\xE4\xBB\xB6\xE5\x8C\x85"
38
181
  email:
39
182
  - gudao.luo@gmail.com
40
183
  executables:
@@ -44,13 +187,31 @@ extensions: []
44
187
  extra_rdoc_files: []
45
188
 
46
189
  files:
190
+ - .DS_Store
47
191
  - Gemfile
192
+ - Gemfile.lock
48
193
  - Rakefile
49
194
  - antetype.gemspec
50
195
  - bin/antetype
196
+ - features/how_base_works_cn.feature
197
+ - features/step_definitions/.DS_Store
198
+ - features/step_definitions/how_base_works_cn.rb
199
+ - features/support/env.rb
51
200
  - lib/antetype.rb
52
201
  - lib/antetype/base.rb
202
+ - lib/antetype/base/actions.rb
53
203
  - lib/antetype/version.rb
204
+ - pkg/antetype-0.0.3.gem
205
+ - tasks/cane.rake
206
+ - tasks/cucumber.rake
207
+ - tasks/flay.rake
208
+ - tasks/flog.rake
209
+ - tasks/hanna.rake
210
+ - tasks/helper.rb
211
+ - tasks/rake.rake
212
+ - tasks/rdoc.rake
213
+ - tasks/reek.rake
214
+ - tasks/stats.rake
54
215
  homepage: http://www.lycom.de
55
216
  licenses: []
56
217
 
@@ -77,6 +238,10 @@ rubyforge_project: antetype
77
238
  rubygems_version: 1.8.22
78
239
  signing_key:
79
240
  specification_version: 3
80
- summary: Write a gem summary
81
- test_files: []
82
-
241
+ summary: Learn how to develop the Gem package
242
+ test_files:
243
+ - features/how_base_works_cn.feature
244
+ - features/step_definitions/.DS_Store
245
+ - features/step_definitions/how_base_works_cn.rb
246
+ - features/support/env.rb
247
+ has_rdoc: