trollo 0.2.1 → 0.2.2

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: bd5e2d080cd0c578f65d74cb53a6aaa90aef9434
4
+ data.tar.gz: 48d020cfed27768c4e382596f5e5846625ef4fbc
5
+ SHA512:
6
+ metadata.gz: 3d1824a4f6675db5fa8b93806718fba42500d97cb51aa382282128a95196d2332e673a6def19cf06bcce0f75211d09fdce14a38a9b4fec08d9a462d51b91804e
7
+ data.tar.gz: 9109e88cf09179fa217d80d04719a3caba889aadfa482224d98dca5750f27b249c6c1256d4d2a53e3d601997c79cd0160d76a19c395560cbe0764f386f36186f
@@ -54,9 +54,9 @@ class CreateTrolloTables < ActiveRecord::Migration
54
54
  t.string :name
55
55
  end
56
56
 
57
- create_table :trollo_labels_lists do |t|
57
+ create_table :trollo_boards_labels do |t|
58
+ t.references :board
58
59
  t.references :label
59
- t.references :list
60
60
  end
61
61
 
62
62
  create_table :trollo_cards_labels do |t|
data/lib/trollo/board.rb CHANGED
@@ -3,6 +3,7 @@ module Trollo
3
3
  class Board < ActiveRecord::Base
4
4
  has_many :lists, order: 'ordinal ASC', dependent: :destroy
5
5
  has_many :subscriptions, dependent: :destroy
6
+ has_and_belongs_to_many :labels, join_table: 'trollo_boards_labels'
6
7
  attr_accessible :name
7
8
 
8
9
  def tasks
@@ -18,6 +19,20 @@ module Trollo
18
19
  def overdue_tasks
19
20
  incomplete_tasks.overdue
20
21
  end
22
+
23
+ def add_label(name)
24
+ return if has_label?(name)
25
+ label = Label.where(name: name).first || Label.create!(name: name)
26
+ self.labels << label
27
+ end
28
+
29
+ def remove_label(name)
30
+ self.labels -= Label.where(name: name)
31
+ end
32
+
33
+ def has_label?(name)
34
+ labels.pluck(:name).include?(name)
35
+ end
21
36
  end
22
37
 
23
38
  end
data/lib/trollo/card.rb CHANGED
@@ -45,6 +45,10 @@ module Trollo
45
45
  return if has_label?(name)
46
46
  label = Label.where(name: name).first || Label.create!(name: name)
47
47
  self.labels << label
48
+
49
+ if self.list && self.list.board
50
+ self.list.board.add_label(name)
51
+ end
48
52
  end
49
53
 
50
54
  def remove_label(name)
@@ -52,7 +56,7 @@ module Trollo
52
56
  end
53
57
 
54
58
  def has_label?(name)
55
- labels.map(&:name).include?(name)
59
+ labels.pluck(:name).include?(name)
56
60
  end
57
61
 
58
62
  end
data/lib/trollo/list.rb CHANGED
@@ -3,26 +3,11 @@ module Trollo
3
3
  class List < ActiveRecord::Base
4
4
  belongs_to :board
5
5
  has_many :cards, order: 'due_at ASC', dependent: :destroy
6
- has_and_belongs_to_many :labels, join_table: 'trollo_labels_lists'
7
6
  attr_accessible :name
8
7
 
9
8
  def named(name)
10
9
  where(name: name).first
11
10
  end
12
-
13
- def add_label(name)
14
- return if has_label?(name)
15
- label = Label.where(name: name).first || Label.create!(name: name)
16
- self.labels << label
17
- end
18
-
19
- def remove_label(name)
20
- self.labels -= Label.where(name: name)
21
- end
22
-
23
- def has_label?(name)
24
- labels.map(&:name).include?(name)
25
- end
26
11
  end
27
12
 
28
13
  end
@@ -1,3 +1,3 @@
1
1
  module Trollo
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -53,9 +53,9 @@ ActiveRecord::Schema.define do
53
53
  t.string :name
54
54
  end
55
55
 
56
- create_table :trollo_labels_lists do |t|
56
+ create_table :trollo_boards_labels do |t|
57
+ t.references :board
57
58
  t.references :label
58
- t.references :list
59
59
  end
60
60
 
61
61
  create_table :trollo_cards_labels do |t|
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Trollo::Board do
4
+
5
+ it "can be labelled" do
6
+ board = Trollo::Board.create!
7
+
8
+ expect{board.add_label('Bug')}.to change{Trollo::Label.count}.by(1)
9
+ expect{board.add_label('Bug')}.to change{Trollo::Label.count}.by(0)
10
+ expect{board.add_label('Bug')}.to change{board.labels.count}.by(0)
11
+
12
+ board.labels.map(&:name).should == ['Bug']
13
+ end
14
+
15
+ it "can have labels removed" do
16
+ board = Trollo::Board.create!
17
+
18
+ board.add_label('Bug')
19
+ board.add_label('Tree')
20
+ board.add_label('Foo')
21
+
22
+ expect{board.remove_label('Bug')}.to change{Trollo::Label.count}.by(0)
23
+ expect{board.remove_label('Tree')}.to change{board.labels.count}.by(-1)
24
+
25
+ board.labels.map(&:name).should == ['Foo']
26
+ end
27
+
28
+ end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trollo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.2.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Douglas Anderson
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-06-19 00:00:00.000000000 Z
11
+ date: 2014-08-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: activerecord
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: i18n
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: workflow
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ! '>='
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: acts_as_commentable
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - '='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - '='
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: combustion
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: database_cleaner
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -155,34 +140,33 @@ files:
155
140
  - spec/internal/db/schema.rb
156
141
  - spec/internal/log/.gitignore
157
142
  - spec/internal/public/favicon.ico
143
+ - spec/lib/trollo/board_spec.rb
158
144
  - spec/lib/trollo/card_spec.rb
159
- - spec/lib/trollo/list_spec.rb
160
145
  - spec/lib/trollo/task_spec.rb
161
146
  - spec/spec_helper.rb
162
147
  - trollo.gemspec
163
148
  homepage: https://github.com/teachme2/trollo
164
149
  licenses: []
150
+ metadata: {}
165
151
  post_install_message:
166
152
  rdoc_options: []
167
153
  require_paths:
168
154
  - lib
169
155
  required_ruby_version: !ruby/object:Gem::Requirement
170
- none: false
171
156
  requirements:
172
157
  - - ! '>='
173
158
  - !ruby/object:Gem::Version
174
159
  version: '0'
175
160
  required_rubygems_version: !ruby/object:Gem::Requirement
176
- none: false
177
161
  requirements:
178
162
  - - ! '>='
179
163
  - !ruby/object:Gem::Version
180
164
  version: '0'
181
165
  requirements: []
182
166
  rubyforge_project: trollo
183
- rubygems_version: 1.8.24
167
+ rubygems_version: 2.4.1
184
168
  signing_key:
185
- specification_version: 3
169
+ specification_version: 4
186
170
  summary: A trollo gem.
187
171
  test_files:
188
172
  - spec/README
@@ -191,7 +175,7 @@ test_files:
191
175
  - spec/internal/db/schema.rb
192
176
  - spec/internal/log/.gitignore
193
177
  - spec/internal/public/favicon.ico
178
+ - spec/lib/trollo/board_spec.rb
194
179
  - spec/lib/trollo/card_spec.rb
195
- - spec/lib/trollo/list_spec.rb
196
180
  - spec/lib/trollo/task_spec.rb
197
181
  - spec/spec_helper.rb
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Trollo::List do
4
-
5
- it "can be labelled" do
6
- list = Trollo::List.create!
7
-
8
- expect{list.add_label('Bug')}.to change{Trollo::Label.count}.by(1)
9
- expect{list.add_label('Bug')}.to change{Trollo::Label.count}.by(0)
10
- expect{list.add_label('Bug')}.to change{list.labels.count}.by(0)
11
-
12
- list.labels.map(&:name).should == ['Bug']
13
- end
14
-
15
- it "can have labels removed" do
16
- list = Trollo::List.create!
17
-
18
- list.add_label('Bug')
19
- list.add_label('Tree')
20
- list.add_label('Foo')
21
-
22
- expect{list.remove_label('Bug')}.to change{Trollo::Label.count}.by(0)
23
- expect{list.remove_label('Tree')}.to change{list.labels.count}.by(-1)
24
-
25
- list.labels.map(&:name).should == ['Foo']
26
- end
27
-
28
- end