inform 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZTRmYzY5YmIwZDNiY2EyYWExNjViNGE5ZjcxNDdkNjU3MjJmNTNiYg==
5
+ data.tar.gz: !binary |-
6
+ YTRiNGZmZWJiZTA3ZjU4OTM5MWYxODc2MmRjMjM4MDlkNDU1OTZhZQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YTg3OGU3NzBhMDI0ODM5MDZmMGFjOWU1MmMzZTRlNjdjN2RlYjAzNWJlNjc1
10
+ MGU5ZjVhMGM3YWQ0NTg2ZWEwZDY4ODA3NTlmNTAwYWNjNjE5MTQ0NzFjMTJj
11
+ MTQ2NjczMWZiZGM3MzZkMDM5MWYzMGE5MjQ4OGVmMjdmZjRiODM=
12
+ data.tar.gz: !binary |-
13
+ MzZmZGE2ZDM4YmJiNTdiM2JjYTk1OTE1NTIwYWRhZGVmNTU1ZWMzZjE0NDRl
14
+ YmExZWE2ZTQ3NjVlMjFhNDU3ZjdhZDY2OTVkYzc1MzZmNGZkMjczODUwNTU0
15
+ NmE4YThmYjc1OGEwYjQxMDE1OTA3N2MwNWQ4OTFmYzFlMzc1NTY=
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ .ruby-version
data/README.md CHANGED
@@ -1,25 +1,40 @@
1
1
  # Inform
2
2
 
3
3
  **Inform** prints colourised, interactive logging output to the console.
4
+ It includes support for timings and thread-local prefixes.
4
5
 
5
6
  For example:
6
7
 
7
- Inform.level = :info
8
- frozbot = Inform.info("Initializing the frozbot") do
9
- Frozbot.new
10
- end
11
-
12
- Inform.info("Frozbot is %{name}", :name => frozbot.name)
8
+ ``` ruby
9
+ # Controllable log level filtering
10
+ Inform.level = :info
13
11
 
14
- Will print:
12
+ # Accept a block, print timing information once completed if > 0.1s
13
+ frozbot = Inform.info("Initializing the frozbot") do
14
+ Frozbot.new
15
+ sleep 1
16
+ end
17
+
18
+ # Other log levels than info
19
+ Inform.level = :debug
20
+ Inform.debug("Madness")
21
+ Inform.warning("and")
22
+ Inform.error("Nonsense")
15
23
 
16
- >>> Initializing the frozbot : Done
17
- *** Frozbot is myfrozbot
24
+ # Thread-local log prefixing
25
+ Thread.current[:inform] = '1'
26
+ Inform.info("Frozbot is %{name}", :name => frozbot.name)
27
+ ```
18
28
 
19
- ### Caveat
29
+ Will print:
20
30
 
21
- This code was taken directly from the our **dew** project and is not ready for prime time. Interfaces,
22
- requirements, etc will change.
31
+ ```
32
+ >>> Initializing the frozbot : Done (1.00s)
33
+ Madness
34
+ WARNING: and
35
+ ERROR: Nonsense
36
+ 1 *** Frozbot is myfrozbot
37
+ ```
23
38
 
24
39
  ### TODO
25
40
 
@@ -27,12 +42,12 @@ requirements, etc will change.
27
42
  * Refactor tests
28
43
  * Colourisation isn't tested at all - should it be?
29
44
  * RDoc
30
-
45
+
31
46
  ## License
32
47
 
33
48
  (The MIT License)
34
49
 
35
- Copyright (c) 2011 PlayUp
50
+ Copyright (c) 2011 PlayUp, 2012-13 Michael Pearson
36
51
 
37
52
  Permission is hereby granted, free of charge, to any person obtaining
38
53
  a copy of this software and associated documentation files (the
@@ -51,4 +66,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
51
66
  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
52
67
  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
53
68
  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
54
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
69
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,3 +1,3 @@
1
1
  class Inform
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
data/lib/inform.rb CHANGED
@@ -21,6 +21,14 @@ class Inform
21
21
 
22
22
  class << self
23
23
 
24
+ def thread_prefix= prefix
25
+ Thread.current[:inform_prefix] = prefix
26
+ end
27
+
28
+ def thread_prefix
29
+ Thread.current[:inform_prefix]
30
+ end
31
+
24
32
  def level
25
33
  @level.nil? ? DEFAULT_LOG_LEVEL : @level
26
34
  end
@@ -35,13 +43,15 @@ class Inform
35
43
  end
36
44
 
37
45
  def info(message, args=nil)
46
+
38
47
  if block_given?
39
48
  start = Time.now
40
- log(:info, ">>> " + color_args(message, args, GREEN) + " : ", :no_newline => true)
49
+ smart_newlines = thread_prefix.nil?
50
+ log(:info, ">>> " + color_args(message, args, GREEN) + " : ", :no_newline => smart_newlines)
41
51
  ret = yield
42
52
  elapsed = Time.now - start
43
53
  message = elapsed > 0.01 ? "Done. (#{sprintf '%.2f', elapsed}s)" : 'Done.'
44
- log(:info, color(message, GREEN), :continue_line => true, :prefix => '>>> ')
54
+ log(:info, color(message, GREEN), :continue_line => smart_newlines, :prefix => '>>> ')
45
55
  ret
46
56
  else
47
57
  log(:info, "*** " + color_args(message, args, GREEN))
@@ -74,6 +84,10 @@ class Inform
74
84
  @need_newline = false
75
85
  end
76
86
  message += "\n" if end_with_newline
87
+ if Thread.current.key? :inform_prefix
88
+ message = Thread.current[:inform_prefix].to_s + ' ' + message
89
+ end
90
+
77
91
  $stdout.print message
78
92
  $stdout.flush
79
93
  end
data/spec/inform_spec.rb CHANGED
@@ -10,6 +10,15 @@ def should_print method
10
10
  $stdout.should_receive(:print).with(/hello.+hey.+you.+goodbye/)
11
11
  Inform.send(method, "hello %{a} %{b} goodbye", :a => 'hey', :b => 'you')
12
12
  end
13
+ it "should prefix with the :inform thread variable if present" do
14
+ begin
15
+ Inform.thread_prefix = 'hi'
16
+ $stdout.should_receive(:print).with(/^hi .+blank/)
17
+ Inform.send(method, "blank")
18
+ ensure
19
+ Inform.thread_prefix = nil
20
+ end
21
+ end
13
22
  end
14
23
  end
15
24
 
@@ -57,35 +66,35 @@ describe Inform do
57
66
  Inform.level = :info
58
67
  Inform.level.should == :info
59
68
  end
60
-
69
+
61
70
  it "should not allow us to set a log level that isn't recognized" do
62
71
  lambda {Inform.level = :warble}.should raise_error /unrecognized/i
63
72
  end
64
73
  end
65
-
74
+
66
75
  context "with log level debug" do
67
76
  before { Inform.level = :debug }
68
77
 
69
- should_print :debug
70
- should_print :info
78
+ should_print :debug
79
+ should_print :info
71
80
  should_accept_block :info
72
81
  # should_accept_block :debug
73
82
 
74
83
  should_print :warning
75
84
  should_print :error
76
85
  end
77
-
86
+
78
87
  context "with log level set to :info" do
79
88
  before { Inform.level = :info }
80
89
  should_not_print :debug
81
90
  should_print :info
82
91
  should_accept_block :info
83
92
  # should_accept_block :debug
84
-
93
+
85
94
  should_print :warning
86
95
  should_print :error
87
96
  end
88
-
97
+
89
98
  context "with log level set to :warning" do
90
99
  before { Inform.level = :warning }
91
100
  should_not_print :debug
@@ -100,11 +109,11 @@ describe Inform do
100
109
  should_not_print :info
101
110
  should_not_print :warning
102
111
  should_print :error
103
-
112
+
104
113
  describe :info do
105
114
  it "should still execute the code block" do
106
115
  Inform.info("") { 'hello' }.should == 'hello'
107
116
  end
108
117
  end
109
118
  end
110
- end
119
+ end
metadata CHANGED
@@ -1,78 +1,66 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: inform
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 6
10
- version: 0.0.6
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Michael Pearson
14
8
  - Chris Ottrey
15
9
  autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
-
19
- date: 2012-08-28 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: rspec
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
12
+ date: 2013-05-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
27
17
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 23
30
- segments:
31
- - 2
32
- - 6
33
- - 0
18
+ - !ruby/object:Gem::Version
19
+ version: 2.6.0
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
34
24
  version: 2.6.0
35
25
  type: :development
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: rake
39
26
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- version: "0"
27
+ name: rspec
28
+ - !ruby/object:Gem::Dependency
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ version_requirements: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
49
39
  type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: gem-release
53
40
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
41
+ name: rake
42
+ - !ruby/object:Gem::Dependency
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
63
53
  type: :development
64
- version_requirements: *id003
54
+ prerelease: false
55
+ name: gem-release
65
56
  description: Interactive, colourised logging
66
- email:
57
+ email:
67
58
  - mipearson@gmail.com
68
- - ""
59
+ - ''
69
60
  executables: []
70
-
71
61
  extensions: []
72
-
73
62
  extra_rdoc_files: []
74
-
75
- files:
63
+ files:
76
64
  - .gitignore
77
65
  - Gemfile
78
66
  - README.md
@@ -85,37 +73,27 @@ files:
85
73
  - spec/spec_helper.rb
86
74
  homepage: https://github.com/mipearson/inform
87
75
  licenses: []
88
-
76
+ metadata: {}
89
77
  post_install_message:
90
78
  rdoc_options: []
91
-
92
- require_paths:
79
+ require_paths:
93
80
  - lib
94
- required_ruby_version: !ruby/object:Gem::Requirement
95
- none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
103
- required_rubygems_version: !ruby/object:Gem::Requirement
104
- none: false
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- hash: 3
109
- segments:
110
- - 0
111
- version: "0"
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
112
91
  requirements: []
113
-
114
92
  rubyforge_project:
115
- rubygems_version: 1.8.17
93
+ rubygems_version: 2.0.3
116
94
  signing_key:
117
- specification_version: 3
95
+ specification_version: 4
118
96
  summary: Interactive, colourised logging
119
- test_files:
97
+ test_files:
120
98
  - spec/inform_spec.rb
121
99
  - spec/spec_helper.rb