trello_effort_tracker 0.0.5 → 0.0.6
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 +2 -1
- data/CHANGELOG +5 -0
- data/Gemfile +1 -17
- data/Gemfile.lock +17 -22
- data/Rakefile +4 -67
- data/lib/patches/trello/card.rb +1 -1
- data/lib/tasks/tasks.rake +67 -0
- data/lib/trello_effort_tracker/effort.rb +9 -1
- data/lib/trello_effort_tracker/member.rb +16 -1
- data/lib/trello_effort_tracker/tracked_card.rb +10 -0
- data/lib/trello_effort_tracker/version.rb +1 -1
- data/spec/effort_spec.rb +10 -3
- data/spec/member_spec.rb +36 -0
- data/spec/tracked_card_spec.rb +20 -2
- data/trello_effort_tracker.gemspec +19 -9
- data/trello_effort_tracker.sublime-project +10 -0
- metadata +100 -2
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
0.0.6
|
2
|
+
- Added TrackedCard#status to track card status: :todo if no effort has been spent, :done if the card is in a DONE column, :in_progress otherwise
|
3
|
+
- Added a Members#effort_spent and #effort_spent_since to extract the overall effort tracked by a member since a given date
|
4
|
+
- Re-merged in the trello_effort_app branch to bring on the Rails app
|
5
|
+
|
1
6
|
0.0.5
|
2
7
|
- Improved docs
|
3
8
|
- Improved use of this tool as a gem
|
data/Gemfile
CHANGED
@@ -2,24 +2,8 @@ source :rubygems
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
gem 'ruby-trello', :require => 'trello'
|
6
5
|
# gem 'ruby-trello', :require => 'trello', :path => '../ruby-trello' # to hack on the ruby-trello gem itself
|
7
6
|
|
8
|
-
|
9
|
-
gem 'chronic'
|
10
|
-
|
11
|
-
gem 'mongoid'
|
12
|
-
gem 'bson_ext'
|
13
|
-
|
14
|
-
gem 'google_drive'
|
15
|
-
gem 'highline'
|
16
|
-
|
17
|
-
group :test, :development, :spec do
|
18
|
-
gem 'rake'
|
19
|
-
gem 'rspec'
|
7
|
+
group :test do
|
20
8
|
gem 'simplecov', :require => false, :platforms => [:mri, :mri_19]
|
21
|
-
gem 'rspec-mocks'
|
22
|
-
gem 'mongoid-rspec'
|
23
|
-
gem 'database_cleaner'
|
24
|
-
gem 'debugger'
|
25
9
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
trello_effort_tracker (0.0.
|
4
|
+
trello_effort_tracker (0.0.6)
|
5
5
|
bson_ext
|
6
6
|
chronic
|
7
7
|
google_drive
|
@@ -13,10 +13,10 @@ PATH
|
|
13
13
|
GEM
|
14
14
|
remote: http://rubygems.org/
|
15
15
|
specs:
|
16
|
-
activemodel (3.2.
|
17
|
-
activesupport (= 3.2.
|
16
|
+
activemodel (3.2.12)
|
17
|
+
activesupport (= 3.2.12)
|
18
18
|
builder (~> 3.0.0)
|
19
|
-
activesupport (3.2.
|
19
|
+
activesupport (3.2.12)
|
20
20
|
i18n (~> 0.6)
|
21
21
|
multi_json (~> 1.0)
|
22
22
|
addressable (2.3.2)
|
@@ -27,15 +27,15 @@ GEM
|
|
27
27
|
chronic (0.9.0)
|
28
28
|
columnize (0.3.6)
|
29
29
|
database_cleaner (0.9.1)
|
30
|
-
debugger (1.3.
|
30
|
+
debugger (1.3.1)
|
31
31
|
columnize (>= 0.3.1)
|
32
32
|
debugger-linecache (~> 1.1.1)
|
33
|
-
debugger-ruby_core_source (~> 1.1.
|
33
|
+
debugger-ruby_core_source (~> 1.1.8)
|
34
34
|
debugger-linecache (1.1.2)
|
35
35
|
debugger-ruby_core_source (>= 1.1.1)
|
36
|
-
debugger-ruby_core_source (1.1.
|
36
|
+
debugger-ruby_core_source (1.1.8)
|
37
37
|
diff-lcs (1.1.3)
|
38
|
-
faraday (0.8.
|
38
|
+
faraday (0.8.5)
|
39
39
|
multipart-post (~> 1.1)
|
40
40
|
google_drive (0.3.3)
|
41
41
|
nokogiri (>= 1.4.4, != 1.5.2, != 1.5.1)
|
@@ -44,11 +44,11 @@ GEM
|
|
44
44
|
highline (1.6.15)
|
45
45
|
httpauth (0.2.0)
|
46
46
|
i18n (0.6.1)
|
47
|
-
json (1.7.
|
47
|
+
json (1.7.7)
|
48
48
|
jwt (0.1.5)
|
49
49
|
multi_json (>= 1.0)
|
50
|
-
mime-types (1.
|
51
|
-
mongoid (3.0.
|
50
|
+
mime-types (1.21)
|
51
|
+
mongoid (3.0.21)
|
52
52
|
activemodel (~> 3.1)
|
53
53
|
moped (~> 1.2)
|
54
54
|
origin (~> 1.0)
|
@@ -57,19 +57,21 @@ GEM
|
|
57
57
|
mongoid (>= 3.0.1)
|
58
58
|
rake
|
59
59
|
rspec (>= 2.9)
|
60
|
-
moped (1.
|
61
|
-
multi_json (1.5.
|
60
|
+
moped (1.4.2)
|
61
|
+
multi_json (1.5.1)
|
62
|
+
multi_xml (0.5.3)
|
62
63
|
multipart-post (1.1.5)
|
63
64
|
nokogiri (1.5.6)
|
64
65
|
oauth (0.4.7)
|
65
|
-
oauth2 (0.
|
66
|
+
oauth2 (0.9.0)
|
66
67
|
faraday (~> 0.8)
|
67
68
|
httpauth (~> 0.1)
|
68
69
|
jwt (~> 0.1.4)
|
69
70
|
multi_json (~> 1.0)
|
71
|
+
multi_xml (~> 0.5)
|
70
72
|
rack (~> 1.2)
|
71
73
|
origin (1.0.11)
|
72
|
-
rack (1.5.
|
74
|
+
rack (1.5.2)
|
73
75
|
rainbow (1.1.4)
|
74
76
|
rake (10.0.3)
|
75
77
|
rest-client (1.6.7)
|
@@ -98,18 +100,11 @@ PLATFORMS
|
|
98
100
|
ruby
|
99
101
|
|
100
102
|
DEPENDENCIES
|
101
|
-
bson_ext
|
102
|
-
chronic
|
103
103
|
database_cleaner
|
104
104
|
debugger
|
105
|
-
google_drive
|
106
|
-
highline
|
107
|
-
mongoid
|
108
105
|
mongoid-rspec
|
109
|
-
rainbow
|
110
106
|
rake
|
111
107
|
rspec
|
112
108
|
rspec-mocks
|
113
|
-
ruby-trello
|
114
109
|
simplecov
|
115
110
|
trello_effort_tracker!
|
data/Rakefile
CHANGED
@@ -1,75 +1,12 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'bundler'
|
1
3
|
require 'trello_effort_tracker'
|
2
4
|
require 'rspec/core/rake_task'
|
3
5
|
|
6
|
+
Bundler::GemHelper.install_tasks
|
4
7
|
RSpec::Core::RakeTask.new(:spec)
|
5
8
|
|
6
9
|
task :default => :spec
|
7
10
|
task :specs => :spec
|
8
11
|
|
9
|
-
|
10
|
-
task :console, [:db_env] do |t, args|
|
11
|
-
args.with_defaults(db_env: "development")
|
12
|
-
sh "export MONGOID_ENV=#{args.db_env}; irb -rubygems -I lib -r trello_effort_tracker.rb -r startup_trello.rb"
|
13
|
-
end
|
14
|
-
|
15
|
-
task :c, [:db_env] do |t, args|
|
16
|
-
Rake::Task[:console].invoke(args.db_env)
|
17
|
-
end
|
18
|
-
|
19
|
-
namespace :spec do
|
20
|
-
desc "Run fast specs"
|
21
|
-
RSpec::Core::RakeTask.new(:fast) do |t|
|
22
|
-
t.rspec_opts = '--tag ~needs_valid_configuration'
|
23
|
-
end
|
24
|
-
|
25
|
-
desc "Run slow specs"
|
26
|
-
RSpec::Core::RakeTask.new(:slow) do |t|
|
27
|
-
t.rspec_opts = '--tag needs_valid_configuration'
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
namespace :run do
|
32
|
-
include TrelloConfiguration
|
33
|
-
|
34
|
-
desc "Run on the cards tracked starting from a given day, e.g. rake 'run:from_day[2012-11-1]'"
|
35
|
-
task :from_day, [:starting_date, :db_env] => [:ensure_environment] do |t, args|
|
36
|
-
args.with_defaults(starting_date: Date.today.to_s, db_env: "development")
|
37
|
-
TrelloConfiguration::Database.load_env(args.db_env)
|
38
|
-
|
39
|
-
tracker = TrelloTracker.new
|
40
|
-
tracker.track(Date.parse(args.starting_date))
|
41
|
-
end
|
42
|
-
|
43
|
-
desc "Run on the cards tracked today, #{Date.today}"
|
44
|
-
task :today, [:db_env] => [:ensure_environment] do |t, args|
|
45
|
-
args.with_defaults(db_env: "development")
|
46
|
-
Rake.application.invoke_task("run:from_day[#{Date.today.to_s}, #{args.db_env}]")
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
namespace :export do
|
51
|
-
desc "Export all cards to a google docs spreadsheet, e.g. rake \"export:google_docs[my_sheet,tracking,production]\""
|
52
|
-
task :google_docs, [:spreadsheet, :worksheet, :db_env] => [:ensure_environment] do |t, args|
|
53
|
-
args.with_defaults(db_env: "development")
|
54
|
-
TrelloConfiguration::Database.load_env(args.db_env)
|
55
|
-
|
56
|
-
exporter = GoogleDocsExporter.new(args.spreadsheet, args.worksheet)
|
57
|
-
spreadsheet_url = exporter.export
|
58
|
-
|
59
|
-
puts "[DONE]".color(:green)
|
60
|
-
puts "Go to #{spreadsheet_url}"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
task :ensure_environment do
|
65
|
-
%w{developer_public_key access_token_key}.each do |each_name|
|
66
|
-
unless ENV[each_name] || authorization_params_from_config_file[each_name]
|
67
|
-
puts "ERROR: Missing <#{each_name}> environment variable."
|
68
|
-
exit 1
|
69
|
-
end
|
70
|
-
end
|
71
|
-
unless tracker_username
|
72
|
-
puts "ERROR: Missing <tracker_username> environment variable."
|
73
|
-
exit 1
|
74
|
-
end
|
75
|
-
end
|
12
|
+
import 'lib/tasks/tasks.rake'
|
data/lib/patches/trello/card.rb
CHANGED
@@ -0,0 +1,67 @@
|
|
1
|
+
desc "Open an irb session preloaded with this library, e.g. rake 'console[production]' will open a irb session with the production db env"
|
2
|
+
task :console, [:db_env] do |t, args|
|
3
|
+
args.with_defaults(db_env: "development")
|
4
|
+
sh "export MONGOID_ENV=#{args.db_env}; irb -rubygems -I lib -r trello_effort_tracker.rb -r startup_trello.rb"
|
5
|
+
end
|
6
|
+
|
7
|
+
task :c, [:db_env] do |t, args|
|
8
|
+
Rake::Task[:console].invoke(args.db_env)
|
9
|
+
end
|
10
|
+
|
11
|
+
namespace :spec do
|
12
|
+
desc "Run fast specs"
|
13
|
+
RSpec::Core::RakeTask.new(:fast) do |t|
|
14
|
+
t.rspec_opts = '--tag ~needs_valid_configuration'
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "Run slow specs"
|
18
|
+
RSpec::Core::RakeTask.new(:slow) do |t|
|
19
|
+
t.rspec_opts = '--tag needs_valid_configuration'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
namespace :run do
|
24
|
+
include TrelloConfiguration
|
25
|
+
|
26
|
+
desc "Run on the cards tracked starting from a given day, e.g. rake 'run:from_day[2012-11-1]'"
|
27
|
+
task :from_day, [:starting_date, :db_env] => [:ensure_environment] do |t, args|
|
28
|
+
args.with_defaults(starting_date: Date.today.to_s, db_env: "development")
|
29
|
+
TrelloConfiguration::Database.load_env(args.db_env)
|
30
|
+
|
31
|
+
tracker = TrelloTracker.new
|
32
|
+
tracker.track(Date.parse(args.starting_date))
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "Run on the cards tracked today, #{Date.today}"
|
36
|
+
task :today, [:db_env] => [:ensure_environment] do |t, args|
|
37
|
+
args.with_defaults(db_env: "development")
|
38
|
+
Rake.application.invoke_task("run:from_day[#{Date.today.to_s}, #{args.db_env}]")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
namespace :export do
|
43
|
+
desc "Export all cards to a google docs spreadsheet, e.g. rake \"export:google_docs[my_sheet,tracking,production]\""
|
44
|
+
task :google_docs, [:spreadsheet, :worksheet, :db_env] => [:ensure_environment] do |t, args|
|
45
|
+
args.with_defaults(db_env: "development")
|
46
|
+
TrelloConfiguration::Database.load_env(args.db_env)
|
47
|
+
|
48
|
+
exporter = GoogleDocsExporter.new(args.spreadsheet, args.worksheet)
|
49
|
+
spreadsheet_url = exporter.export
|
50
|
+
|
51
|
+
puts "[DONE]".color(:green)
|
52
|
+
puts "Go to #{spreadsheet_url}"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
task :ensure_environment do
|
57
|
+
%w{developer_public_key access_token_key}.each do |each_name|
|
58
|
+
unless ENV[each_name] || authorization_params_from_config_file[each_name]
|
59
|
+
puts "ERROR: Missing <#{each_name}> environment variable."
|
60
|
+
exit 1
|
61
|
+
end
|
62
|
+
end
|
63
|
+
unless tracker_username
|
64
|
+
puts "ERROR: Missing <tracker_username> environment variable."
|
65
|
+
exit 1
|
66
|
+
end
|
67
|
+
end
|
@@ -13,6 +13,14 @@ class Effort
|
|
13
13
|
|
14
14
|
validates_presence_of :amount, :date, :members
|
15
15
|
|
16
|
+
def amount_per_member
|
17
|
+
amount / members.size
|
18
|
+
end
|
19
|
+
|
20
|
+
def include?(member)
|
21
|
+
members.include?(member)
|
22
|
+
end
|
23
|
+
|
16
24
|
def ==(other)
|
17
25
|
return true if other.equal?(self)
|
18
26
|
return false unless other.kind_of?(self.class)
|
@@ -24,4 +32,4 @@ class Effort
|
|
24
32
|
"[#{date}] spent #{amount} hours by #{members.map(&:at_username).join(", ")}"
|
25
33
|
end
|
26
34
|
|
27
|
-
end
|
35
|
+
end
|
@@ -24,9 +24,17 @@ class Member
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def avatar_url
|
27
|
-
|
27
|
+
trello_member.avatar_url(size: :small)
|
28
28
|
end
|
29
29
|
|
30
|
+
def effort_spent(from_date=nil)
|
31
|
+
cards = TrackedCard.where("efforts.members.username" => username)
|
32
|
+
efforts = cards.map(&:efforts).compact.flatten
|
33
|
+
efforts = efforts.select {|e| e.date >= from_date} if from_date
|
34
|
+
efforts.select { |effort| effort.include?(self) }.inject(0) { |total, effort| total + effort.amount_per_member }
|
35
|
+
end
|
36
|
+
alias_method :effort_spent_since, :effort_spent
|
37
|
+
|
30
38
|
def ==(other)
|
31
39
|
return true if other.equal?(self)
|
32
40
|
return false unless other.kind_of?(self.class)
|
@@ -43,4 +51,11 @@ class Member
|
|
43
51
|
username.hash
|
44
52
|
end
|
45
53
|
|
54
|
+
private
|
55
|
+
|
56
|
+
def trello_member
|
57
|
+
@trello_member ||= Trello::Member.new("id" => trello_id, "fullName" => full_name, "username" => username,
|
58
|
+
"avatarHash" => avatar_id, "bio" => bio, "url" => url)
|
59
|
+
end
|
60
|
+
|
46
61
|
end
|
@@ -33,6 +33,16 @@ class TrackedCard
|
|
33
33
|
return tracked_card if updated_successfully
|
34
34
|
end
|
35
35
|
|
36
|
+
def status
|
37
|
+
if done?
|
38
|
+
:done
|
39
|
+
elsif efforts.empty?
|
40
|
+
:todo
|
41
|
+
else
|
42
|
+
:in_progress
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
36
46
|
def self.build_from(trello_card)
|
37
47
|
trello_card_id = trello_card.id
|
38
48
|
trello_card.attributes.delete(:id)
|
data/spec/effort_spec.rb
CHANGED
@@ -13,11 +13,18 @@ describe Effort do
|
|
13
13
|
it { should validate_presence_of(:members) }
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
%w{piero tommaso tom ugo}.each do |username|
|
17
|
+
let(username.to_sym) { Member.new(username: username) }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#amount_per_member" do
|
21
|
+
it "counts the amount spent per single member" do
|
22
|
+
effort = Effort.new(amount: 6, members: [piero, tommaso], date: Date.parse("2012-11-09"), )
|
23
|
+
effort.amount_per_member.should == 3
|
19
24
|
end
|
25
|
+
end
|
20
26
|
|
27
|
+
describe "equality" do
|
21
28
|
it "is equal to another effort with same amount, date and members" do
|
22
29
|
effort = Effort.new(amount: 3, date: Date.parse("2012-11-09"), members: [piero, tommaso])
|
23
30
|
same_effort = Effort.new(amount: 3, date: Date.parse("2012-11-09"), members: [piero, tommaso])
|
data/spec/member_spec.rb
CHANGED
@@ -36,6 +36,42 @@ describe Member do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
describe "#effort_spent" do
|
40
|
+
%w{piero tommaso}.each do |username|
|
41
|
+
let(username.to_sym) { Member.new(username: username) }
|
42
|
+
end
|
43
|
+
|
44
|
+
let(:card) { TrackedCard.create(name: "any", short_id: 1234, trello_id: "123123") }
|
45
|
+
let(:another_card) { TrackedCard.create(name: "any_other", short_id: 1235, trello_id: "123125") }
|
46
|
+
|
47
|
+
it "is zero when the member did not spent effort at all" do
|
48
|
+
piero.effort_spent.should == 0
|
49
|
+
end
|
50
|
+
|
51
|
+
it "counts the effort spent on a card" do
|
52
|
+
card.efforts << Effort.new(amount: 4, date: Date.today, members: [piero, tommaso])
|
53
|
+
card.efforts << Effort.new(amount: 5, date: Date.today, members: [tommaso])
|
54
|
+
|
55
|
+
piero.effort_spent.should == 4 / 2
|
56
|
+
end
|
57
|
+
|
58
|
+
it "counts the effort spent on several cards" do
|
59
|
+
card.efforts << Effort.new(amount: 4, date: Date.today, members: [piero, tommaso])
|
60
|
+
another_card.efforts << Effort.new(amount: 5, date: Date.today, members: [piero])
|
61
|
+
|
62
|
+
piero.effort_spent.should == 2 + 5
|
63
|
+
end
|
64
|
+
|
65
|
+
it "counts the effort spent on a card from a given date" do
|
66
|
+
card.efforts << Effort.new(amount: 4, date: Date.yesterday, members: [piero])
|
67
|
+
card.efforts << Effort.new(amount: 5, date: Date.today, members: [piero])
|
68
|
+
|
69
|
+
piero.effort_spent(Date.today).should == 5
|
70
|
+
piero.effort_spent_since(Date.today).should == 5
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
39
75
|
describe "#avatar_url" do
|
40
76
|
it "points to the avatar thumbnail image" do
|
41
77
|
member = Member.new(avatar_id: "123xyz")
|
data/spec/tracked_card_spec.rb
CHANGED
@@ -308,11 +308,29 @@ describe TrackedCard do
|
|
308
308
|
it "describes the card as a string" do
|
309
309
|
card = TrackedCard.new(name: "A Story Name")
|
310
310
|
card.estimates << Estimate.new(amount: 5, date: Date.today)
|
311
|
-
card.efforts << Effort.new(amount: 3, date: Date.today, members: [Member.new(username: "piero"),
|
312
|
-
card.efforts << Effort.new(amount: 6, date: Date.today, members: [Member.new(username: "piero"),
|
311
|
+
card.efforts << Effort.new(amount: 3, date: Date.today, members: [Member.new(username: "piero"), Member.new(username: "tommaso")])
|
312
|
+
card.efforts << Effort.new(amount: 6, date: Date.today, members: [Member.new(username: "piero"), Member.new(username: "tommaso")])
|
313
313
|
|
314
314
|
card.to_s.should == %Q{[A Story Name]. Total effort: 9.0h. Estimates ["[2012-11-05] estimated 5.0 hours"]. Efforts: ["[2012-11-05] spent 3.0 hours by @piero, @tommaso", "[2012-11-05] spent 6.0 hours by @piero, @tommaso"]}
|
315
315
|
end
|
316
316
|
end
|
317
317
|
|
318
|
+
describe "#status" do
|
319
|
+
it "is done when is done" do
|
320
|
+
done_card = TrackedCard.new(done:true)
|
321
|
+
done_card.status.should == :done
|
322
|
+
|
323
|
+
done_card.efforts << Effort.new(amount: 3, date: Date.today, members: [Member.new(username: "any")])
|
324
|
+
done_card.status.should == :done
|
325
|
+
end
|
326
|
+
|
327
|
+
it "is todo when no effort has been spent on the card" do
|
328
|
+
card = TrackedCard.new
|
329
|
+
card.status.should == :todo
|
330
|
+
|
331
|
+
card.efforts << Effort.new(amount: 3, date: Date.today, members: [Member.new(username: "any")])
|
332
|
+
card.status.should == :in_progress
|
333
|
+
end
|
334
|
+
end
|
335
|
+
|
318
336
|
end
|
@@ -7,7 +7,11 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.platform = Gem::Platform::RUBY
|
8
8
|
|
9
9
|
gem.description = "A tool to extract estimates and efforts from Trello"
|
10
|
-
gem.summary =
|
10
|
+
gem.summary = <<-DESC
|
11
|
+
You notify all the estimates and efforts of your Trello cards.
|
12
|
+
This tool will extract and store these estimates and actual efforts
|
13
|
+
to let you extract useful key metrics (e.g. estimate errors)
|
14
|
+
DESC
|
11
15
|
gem.authors = ['Pietro Di Bello']
|
12
16
|
gem.email = 'pierodibello@gmail.com'
|
13
17
|
gem.homepage = 'http://xplayer.wordpress.com'
|
@@ -18,14 +22,20 @@ Gem::Specification.new do |gem|
|
|
18
22
|
gem.test_files = `git ls-files -- {spec}/*`.split("\n")
|
19
23
|
gem.extra_rdoc_files = ["README.md"]
|
20
24
|
|
21
|
-
gem.rubygems_version = %q{1.8.24}
|
22
25
|
gem.required_rubygems_version = ">= 1.3.6"
|
23
26
|
|
24
|
-
gem.
|
25
|
-
gem.
|
26
|
-
gem.
|
27
|
-
gem.
|
28
|
-
gem.
|
29
|
-
gem.
|
30
|
-
gem.
|
27
|
+
gem.add_runtime_dependency 'ruby-trello'
|
28
|
+
gem.add_runtime_dependency 'mongoid'
|
29
|
+
gem.add_runtime_dependency 'bson_ext'
|
30
|
+
gem.add_runtime_dependency 'google_drive'
|
31
|
+
gem.add_runtime_dependency 'rainbow'
|
32
|
+
gem.add_runtime_dependency 'chronic'
|
33
|
+
gem.add_runtime_dependency 'highline'
|
34
|
+
|
35
|
+
gem.add_development_dependency 'rake'
|
36
|
+
gem.add_development_dependency 'rspec'
|
37
|
+
gem.add_development_dependency 'rspec-mocks'
|
38
|
+
gem.add_development_dependency 'mongoid-rspec'
|
39
|
+
gem.add_development_dependency 'database_cleaner'
|
40
|
+
gem.add_development_dependency 'debugger'
|
31
41
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trello_effort_tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ruby-trello
|
@@ -123,6 +123,102 @@ dependencies:
|
|
123
123
|
- - ! '>='
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rake
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: rspec
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: rspec-mocks
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: mongoid-rspec
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - ! '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
type: :development
|
183
|
+
prerelease: false
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: database_cleaner
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
194
|
+
requirements:
|
195
|
+
- - ! '>='
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
198
|
+
type: :development
|
199
|
+
prerelease: false
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
206
|
+
- !ruby/object:Gem::Dependency
|
207
|
+
name: debugger
|
208
|
+
requirement: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
210
|
+
requirements:
|
211
|
+
- - ! '>='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
type: :development
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
126
222
|
description: A tool to extract estimates and efforts from Trello
|
127
223
|
email: pierodibello@gmail.com
|
128
224
|
executables: []
|
@@ -146,6 +242,7 @@ files:
|
|
146
242
|
- lib/patches/trello/card.rb
|
147
243
|
- lib/patches/trello/member.rb
|
148
244
|
- lib/startup_trello.rb
|
245
|
+
- lib/tasks/tasks.rake
|
149
246
|
- lib/trello_effort_tracker.rb
|
150
247
|
- lib/trello_effort_tracker/effort.rb
|
151
248
|
- lib/trello_effort_tracker/estimate.rb
|
@@ -184,6 +281,7 @@ files:
|
|
184
281
|
- spec/trello_configuration_spec.rb
|
185
282
|
- spec/trello_tracker_spec.rb
|
186
283
|
- trello_effort_tracker.gemspec
|
284
|
+
- trello_effort_tracker.sublime-project
|
187
285
|
homepage: http://xplayer.wordpress.com
|
188
286
|
licenses: []
|
189
287
|
post_install_message:
|