pt_logger 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.
@@ -1,15 +1,35 @@
1
1
  module PtLogger
2
2
 
3
3
  # Command: log +message+ to Pivotal Tracker.
4
+ #
5
+ # The +message+ to log can the result of block evaluation:
6
+ #
7
+ # log do
8
+ # "evaluate the message to log here with implicit PT:999999 story id"
9
+ # end
10
+ #
11
+ # Or the +message+ to log can be passed as an arguent:
12
+ #
13
+ # log(message)
14
+ #
15
+ # An explicit story ID can be provided in both block and args form:
16
+ #
17
+ # log(story_id) do
18
+ # "evaluate the message to log here"
19
+ # end
20
+ #
21
+ # log(message,story_id)
22
+ #
4
23
  # If +story_id+ is provided, logs to that story, else logs to a story ID
5
24
  # referenced in the message itself (as #999 or PT:999).
6
25
  #
7
26
  # Returns true if log was successful, else false.
8
27
  # Supresses any StandardErrors that may occur during logging.
9
28
  #
10
- def self.log(message,story_id=nil)
29
+ def self.log(*args)
11
30
  if pt = PtLogger::Logger.new
12
- pt.append_story_note(message,story_id)
31
+ message = block_given? ? yield : args.shift
32
+ pt.append_story_note(message,args.shift)
13
33
  else
14
34
  false
15
35
  end
@@ -1,3 +1,3 @@
1
1
  module PtLogger
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -22,6 +22,8 @@ NOTE: real PT credentials are not configured so if the integration tests are mis
22
22
  they will fail. Set real PT credentials with environment variables:
23
23
 
24
24
  export TEST_PTLOGGER_API_KEY=your_api_key
25
+ export TEST_PTLOGGER_PROJECT_ID=your_project_id
26
+ export TEST_PTLOGGER_STORY_ID=your_story_id
25
27
 
26
28
  }
27
29
  false
@@ -38,12 +40,12 @@ they will fail. Set real PT credentials with environment variables:
38
40
 
39
41
  # Returns the project ID to use for tests
40
42
  def test_project_id
41
- '703897'
43
+ ENV['TEST_PTLOGGER_PROJECT_ID'] || '703897'
42
44
  end
43
45
 
44
46
  # Returns the story ID to use for tests
45
47
  def test_story_id
46
- '47387051'
48
+ ENV['TEST_PTLOGGER_STORY_ID'] || '47387051'
47
49
  end
48
50
 
49
51
  end
@@ -6,17 +6,56 @@ describe PtLogger do
6
6
 
7
7
  describe "##log" do
8
8
  subject { resource_class.log(message) }
9
- context "when story_id is defined in the message" do
9
+
10
+ context "with implicit story ID" do
10
11
  let(:expected_story_id) { 12345678 }
11
12
  let(:message) { "test message for story ##{expected_story_id}" }
12
13
  let(:expected_message) { "[PtLogger] #{message}" }
13
- context "when successfully logged" do
14
+
15
+ context "when message passed as parameter" do
16
+ before do
17
+ logger_class.any_instance.should_receive(:send_story_note!).with(expected_message,expected_story_id).and_return(nil)
18
+ end
19
+ it { should be_true }
20
+ end
21
+
22
+ context "when message passed as block" do
23
+ subject { resource_class.log do
24
+ message
25
+ end }
26
+ before do
27
+ logger_class.any_instance.should_receive(:send_story_note!).with(expected_message,expected_story_id).and_return(nil)
28
+ end
29
+ it { should be_true }
30
+ end
31
+
32
+ end
33
+
34
+ context "with explicit story ID" do
35
+ let(:expected_story_id) { 12345678 }
36
+ let(:message) { "test message" }
37
+ let(:expected_message) { "[PtLogger] #{message}" }
38
+
39
+ context "when message passed as parameter" do
40
+ subject { resource_class.log(message,expected_story_id) }
41
+ before do
42
+ logger_class.any_instance.should_receive(:send_story_note!).with(expected_message,expected_story_id).and_return(nil)
43
+ end
44
+ it { should be_true }
45
+ end
46
+
47
+ context "when message passed as block" do
48
+ subject { resource_class.log(expected_story_id) do
49
+ message
50
+ end }
14
51
  before do
15
52
  logger_class.any_instance.should_receive(:send_story_note!).with(expected_message,expected_story_id).and_return(nil)
16
53
  end
17
54
  it { should be_true }
18
55
  end
56
+
19
57
  end
58
+
20
59
  context "when story_id is not defined" do
21
60
  let(:message) { "test message without ID" }
22
61
  it { should be_false }
@@ -25,6 +64,7 @@ describe PtLogger do
25
64
  subject
26
65
  end
27
66
  end
67
+
28
68
  context "when some kind of logging error occurs" do
29
69
  let(:message) { "test message without ID" }
30
70
  before do
@@ -32,6 +72,7 @@ describe PtLogger do
32
72
  end
33
73
  it { should be_false }
34
74
  end
75
+
35
76
  end
36
77
 
37
78
  describe "#log_if" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pt_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
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-04-04 00:00:00.000000000 Z
12
+ date: 2013-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport