log4ever 0.1.4 → 0.1.5
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.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/log4r/evernote.rb +32 -59
- data/lib/log4r/outputter/evernoteoutputter.rb +22 -21
- data/log4ever.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45ccb7dce4c1abba539b3fed3173d955ff910090
|
4
|
+
data.tar.gz: 535bc6d931b3934a4558d7a76dd9cecdec8dd5e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 445d7adcc42c86df9583c9fda61ac7dd69ca6c497415a11d246df6337e0d82bd238c96af5e54250de802b29e2788d59c0edd89a008c12b4386b3d56dfa0be566
|
7
|
+
data.tar.gz: 8d1acff1092c8dbf5643ffb262ab7bd74a052dad4d1f914e58e6bf0e4db8014095212953e49fcdbd99fefc99f3d4deeaad49e3c30f1f9b48fce907ab68bb3473
|
data/README.md
CHANGED
data/lib/log4r/evernote.rb
CHANGED
@@ -3,7 +3,7 @@ require 'log4r/outputter/evernoteoutputter'
|
|
3
3
|
require 'evernote_oauth'
|
4
4
|
|
5
5
|
module Log4ever
|
6
|
-
VERSION = '0.1.
|
6
|
+
VERSION = '0.1.5'
|
7
7
|
|
8
8
|
class EvernoteError < StandardError; end
|
9
9
|
|
@@ -39,17 +39,20 @@ module Log4ever
|
|
39
39
|
# get registered notebook or create new notebook
|
40
40
|
# search the notebook under the stack if stack_name specific
|
41
41
|
def notebook
|
42
|
-
Notebook.new(@@auth_store)
|
42
|
+
@notebook = Notebook.new(@@auth_store) if @notebook.nil?
|
43
|
+
@notebook
|
43
44
|
end
|
44
45
|
|
45
46
|
# get registered note or create new note
|
46
47
|
def note(notebook)
|
47
|
-
Note.new(notebook, @@auth_store)
|
48
|
+
@note = Note.new(notebook, @@auth_store) if @note.nil?
|
49
|
+
@note
|
48
50
|
end
|
49
51
|
|
50
52
|
# get registered tag or create new tag
|
51
53
|
def tag(note)
|
52
|
-
Tag.new(note, @@auth_store)
|
54
|
+
@tag = Tag.new(note, @@auth_store) if @tag.nil?
|
55
|
+
@tag
|
53
56
|
end
|
54
57
|
end
|
55
58
|
|
@@ -76,14 +79,7 @@ module Log4ever
|
|
76
79
|
end
|
77
80
|
end
|
78
81
|
# create new notebook if notebook is nil
|
79
|
-
create(notebook_name, stack_name)
|
80
|
-
@notebook
|
81
|
-
end
|
82
|
-
|
83
|
-
# get newest notebook
|
84
|
-
def get!(notebook_name, stack_name = nil)
|
85
|
-
clear
|
86
|
-
get(notebook_name, stack_name)
|
82
|
+
@notebook || create(notebook_name, stack_name)
|
87
83
|
end
|
88
84
|
|
89
85
|
# create notebook
|
@@ -112,23 +108,21 @@ module Log4ever
|
|
112
108
|
end
|
113
109
|
|
114
110
|
class Note
|
115
|
-
XML_TEMPLATE_BYTE = 237
|
116
|
-
|
117
111
|
def initialize(notebook, auth_store)
|
118
112
|
return unless @params.nil? || @params.empty?
|
119
113
|
@params = {}
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
raise
|
124
|
-
elsif !@notebook.respond_to? 'guid'
|
125
|
-
raise NoMethodError, "#{@notebook.class} do not has method: guid", caller
|
114
|
+
if !notebook.kind_of? ::Evernote::EDAM::Type::Notebook
|
115
|
+
raise EvernoteError, "Expected kind of Notebook, got #{notebook.class}", caller
|
116
|
+
elsif !notebook.respond_to? 'guid'
|
117
|
+
raise NoMethodError, "#{notebook.class} do not has method: guid", caller
|
126
118
|
end
|
119
|
+
@notebook = notebook
|
120
|
+
@auth_store = auth_store
|
127
121
|
end
|
128
122
|
|
129
123
|
# content size
|
130
124
|
def size
|
131
|
-
content.bytesize
|
125
|
+
content.bytesize
|
132
126
|
end
|
133
127
|
|
134
128
|
# note guid
|
@@ -164,10 +158,22 @@ module Log4ever
|
|
164
158
|
"<div style=\"font-family: Courier New\">" + text + "</div></en-note>"
|
165
159
|
end
|
166
160
|
|
161
|
+
# get note content text
|
162
|
+
def content
|
163
|
+
return @content_ unless @content_.nil?
|
164
|
+
@note.nil? and get
|
165
|
+
@content_ = !@note.nil? && !@note.guid.nil? ? @auth_store.note_store.getNoteContent(@auth_store.auth_token, @note.guid) : ""
|
166
|
+
end
|
167
|
+
|
168
|
+
# get note content xml object
|
169
|
+
def content_xml
|
170
|
+
return @content_xml unless @content_xml.nil?
|
171
|
+
@content_xml = Nokogiri::XML(content)
|
172
|
+
end
|
173
|
+
|
167
174
|
# create note
|
168
175
|
def create
|
169
176
|
@auth_store.note_store.createNote(@auth_store.auth_token, createNote)
|
170
|
-
clear
|
171
177
|
end
|
172
178
|
|
173
179
|
# update note
|
@@ -175,13 +181,6 @@ module Log4ever
|
|
175
181
|
@auth_store.note_store.updateNote(@auth_store.auth_token, updateNote)
|
176
182
|
end
|
177
183
|
|
178
|
-
# clear note object
|
179
|
-
def clear
|
180
|
-
@params = {}
|
181
|
-
@note = @content_ = @content_xml = nil
|
182
|
-
initialize(@notebook)
|
183
|
-
end
|
184
|
-
|
185
184
|
# get latest note object
|
186
185
|
def get
|
187
186
|
return @note unless @note.nil?
|
@@ -200,10 +199,9 @@ module Log4ever
|
|
200
199
|
@note
|
201
200
|
end
|
202
201
|
|
203
|
-
# get latest note object
|
202
|
+
# force get latest note object
|
204
203
|
def get!
|
205
|
-
clear
|
206
|
-
get
|
204
|
+
clear and get
|
207
205
|
end
|
208
206
|
|
209
207
|
# create note object
|
@@ -228,22 +226,9 @@ module Log4ever
|
|
228
226
|
Time.at(ut.to_f)
|
229
227
|
end
|
230
228
|
|
231
|
-
#
|
232
|
-
def content
|
233
|
-
return @content_ unless @content_.nil?
|
234
|
-
@note.nil? and get
|
235
|
-
@content_ = !@note.nil? && !@note.guid.nil? ? @auth_store.note_store.getNoteContent(@auth_store.auth_token, @note.guid) : ""
|
236
|
-
end
|
237
|
-
|
238
|
-
# get note content xml object
|
239
|
-
def content_xml
|
240
|
-
return @content_xml unless @content_xml.nil?
|
241
|
-
@content_xml = Nokogiri::XML(content)
|
242
|
-
end
|
243
|
-
|
244
|
-
# clear note object
|
229
|
+
# clear
|
245
230
|
def clear
|
246
|
-
@note = nil
|
231
|
+
@note = @content_ = @content_xml = nil
|
247
232
|
end
|
248
233
|
end
|
249
234
|
|
@@ -271,18 +256,6 @@ module Log4ever
|
|
271
256
|
end
|
272
257
|
end
|
273
258
|
|
274
|
-
# get newest tag objects
|
275
|
-
def get!
|
276
|
-
clear
|
277
|
-
get
|
278
|
-
end
|
279
|
-
|
280
|
-
# clear note object
|
281
|
-
def clear
|
282
|
-
@tags = nil
|
283
|
-
@tag_guids = nil
|
284
|
-
end
|
285
|
-
|
286
259
|
private
|
287
260
|
# create tag object
|
288
261
|
def create(tag_name)
|
@@ -13,41 +13,41 @@ module Log4r
|
|
13
13
|
def initialize(_name, hash = {})
|
14
14
|
super(_name, hash)
|
15
15
|
validate(hash)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
@note = @evernote.note(@notebook)
|
21
|
-
@tag = @evernote.tag(@note)
|
16
|
+
evernote = Log4ever::Evernote.new(@auth_token, @is_sandbox)
|
17
|
+
@notebook = evernote.notebook.get(@notebook_name, @stack_name)
|
18
|
+
@note = evernote.note(@notebook)
|
19
|
+
@tag = evernote.tag(@note)
|
22
20
|
@tag.names = @tags
|
23
|
-
set_maxsize(
|
24
|
-
set_shift_age(
|
21
|
+
set_maxsize(hash) # for rolling
|
22
|
+
set_shift_age(hash) # for rolling
|
23
|
+
@hash = hash
|
25
24
|
end
|
26
25
|
|
27
26
|
# validation of evernote parameters
|
28
27
|
def validate(hash)
|
29
|
-
is_sandbox = hash[:sandbox] || hash['sandbox'] || false
|
30
|
-
raise ArgumentError, "Sandbox must be type of boolean" unless is_sandbox == false || is_sandbox == true
|
28
|
+
@is_sandbox = hash[:sandbox] || hash['sandbox'] || false
|
29
|
+
raise ArgumentError, "Sandbox must be type of boolean" unless @is_sandbox == false || @is_sandbox == true
|
31
30
|
@auth_token = hash[:auth_token] || hash['auth_token'] || ""
|
32
31
|
raise ArgumentError, "Must specify from auth token" if @auth_token.empty?
|
33
|
-
notebook_name = to_utf8(hash[:notebook] || hash['notebook'] || "")
|
34
|
-
raise ArgumentError, "Must specify from notebook" if notebook_name.empty?
|
35
|
-
stack_name = to_utf8(hash[:stack] || hash['stack'])
|
36
|
-
@evernote = Log4ever::Evernote.new(@auth_token, is_sandbox)
|
32
|
+
@notebook_name = to_utf8(hash[:notebook] || hash['notebook'] || "")
|
33
|
+
raise ArgumentError, "Must specify from notebook" if @notebook_name.empty?
|
34
|
+
@stack_name = to_utf8(hash[:stack] || hash['stack'])
|
37
35
|
@tags = to_utf8(hash[:tags] || hash['tags'] || [])
|
38
|
-
notebook = @evernote.notebook
|
39
|
-
@notebook = notebook.get(notebook_name, stack_name)
|
40
|
-
@hash = hash
|
41
|
-
sync
|
42
36
|
end
|
43
37
|
|
44
38
|
def canonical_log(logevent); super end
|
45
39
|
|
40
|
+
# sync
|
41
|
+
def sync_note
|
42
|
+
@note.get!
|
43
|
+
update_maxtime(@hash) # update rolling status
|
44
|
+
end
|
45
|
+
|
46
46
|
# write log
|
47
47
|
def write(content)
|
48
|
-
sync
|
49
48
|
if note_size_requires_roll? || time_requires_roll? || different_tag?
|
50
49
|
create_log(content)
|
50
|
+
sync_note
|
51
51
|
else
|
52
52
|
update_log(content)
|
53
53
|
end
|
@@ -56,7 +56,6 @@ module Log4r
|
|
56
56
|
private
|
57
57
|
# write log to note
|
58
58
|
def create_log(content)
|
59
|
-
@note.clear
|
60
59
|
@note.title = to_utf8(@name) + " - " + Time.now.strftime("%Y-%m-%d %H:%M:%S")
|
61
60
|
@note.tags = @tag.get
|
62
61
|
@note.content = to_utf8(content)
|
@@ -74,7 +73,7 @@ module Log4r
|
|
74
73
|
|
75
74
|
# more expensive, only for startup
|
76
75
|
def note_size_requires_roll?
|
77
|
-
@note.size == 0 || (@maxsize > 0 && @note.size
|
76
|
+
@note.size == 0 || (@maxsize > 0 && @note.size > @maxsize)
|
78
77
|
end
|
79
78
|
|
80
79
|
# whether or not to rotate
|
@@ -145,6 +144,8 @@ module Log4r
|
|
145
144
|
end
|
146
145
|
end
|
147
146
|
|
147
|
+
alias_method :update_maxtime, :set_shift_age
|
148
|
+
|
148
149
|
# encode for evernote internal charset
|
149
150
|
# convert character encoding to UTF-8 from Shift_JIS or EUC-JP
|
150
151
|
def to_utf8(mixed)
|
data/log4ever.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log4ever
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mapserver2007
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: log4r
|