log4ever 0.1.2 → 0.1.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.
- checksums.yaml +6 -14
- data/Gemfile +1 -1
- data/Gemfile.lock +19 -8
- data/README.md +3 -1
- data/lib/log4r/evernote.rb +70 -59
- data/lib/log4r/outputter/evernoteoutputter.rb +25 -12
- data/log4ever.gemspec +5 -4
- data/spec/log4ever_spec.rb +48 -13
- data/spec/spec_helper.rb +1 -1
- metadata +22 -21
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
OWQ0NzI2Nzk4ODk4MzcwNjNhNGVmZjcwYzU3MGJjNjdjNDg4NTJhYTg1NTJj
|
10
|
-
YzViNTQ0MTU4NjNiMGU3ZjFjNGYzNzZhNTJmMjhlYTYyMDg5YjNjZDBiZjA0
|
11
|
-
M2I1ZjkxMWRiNzEzNTFmNzQzMTY4ZmQ3ZGY4YzQ4MDhhODNjYjQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YjI2NzMzYmZiM2VjYmIxZDczY2NlYjI5OWU0NTMyNmFkNWI5ZWNmMDg2NDU3
|
14
|
-
MDc3NTNiODhlNTE0YmUyNDNmOTgwNjk4ODZjZWZlMzIzYTc3YWViYjBkYzdi
|
15
|
-
MzBiY2VjMmMzMWNkYjZjZGU5YmUzNzY4YTdlOGU2MjllNGNiYTQ=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8875273e847f20359d003311d9db05446cc29edf
|
4
|
+
data.tar.gz: b467ce75804859526aa28efdebb006f107e8a148
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ac9133e8cac593f1238eb74927921741e4a51675221dc0de1cef44a13c0cf3fbd3c37bf6d307af16238e783474aedac112213d2ff4aa50d7cdd076a5c3c0c5dc
|
7
|
+
data.tar.gz: 81c33ff7df80e54bae18ff4cf7e7220ac2c404f7b98d0bdda8186ba0b7271a196901a3d4b35524f4559ff6d5399e8cae428c239cac6051f3f5541a048cf39cc0
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,23 +1,34 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
activesupport (4.0.4)
|
5
|
+
i18n (~> 0.6, >= 0.6.9)
|
6
|
+
minitest (~> 4.2)
|
7
|
+
multi_json (~> 1.3)
|
8
|
+
thread_safe (~> 0.1)
|
9
|
+
tzinfo (~> 0.3.37)
|
10
|
+
atomic (1.1.16)
|
11
|
+
evernote-thrift (1.25.1)
|
12
|
+
evernote_oauth (0.2.3)
|
9
13
|
evernote-thrift
|
10
14
|
oauth (>= 0.4.1)
|
11
|
-
i18n (0.6.
|
15
|
+
i18n (0.6.9)
|
12
16
|
log4r (1.1.10)
|
13
|
-
|
17
|
+
mini_portile (0.5.2)
|
18
|
+
minitest (4.7.5)
|
19
|
+
multi_json (1.9.2)
|
20
|
+
nokogiri (1.6.1)
|
21
|
+
mini_portile (~> 0.5.0)
|
14
22
|
oauth (0.4.7)
|
23
|
+
thread_safe (0.2.0)
|
24
|
+
atomic (>= 1.1.7, < 2)
|
25
|
+
tzinfo (0.3.39)
|
15
26
|
|
16
27
|
PLATFORMS
|
17
28
|
ruby
|
18
29
|
|
19
30
|
DEPENDENCIES
|
20
|
-
|
31
|
+
activesupport
|
21
32
|
evernote_oauth
|
22
33
|
i18n
|
23
34
|
log4r
|
data/README.md
CHANGED
@@ -35,7 +35,7 @@ Output:
|
|
35
35
|
|
36
36
|
2012-08-06 21:12:31 Evernote[INFO]: log output
|
37
37
|
|
38
|
-
The output results are stored in Evernote.
|
38
|
+
The output results are stored in Evernote.
|
39
39
|
|
40
40
|
###ChangeLog
|
41
41
|
* 0.0.1
|
@@ -62,6 +62,8 @@ Change the parameter of EvetnoteOutputter class, use evernote_oauth.
|
|
62
62
|
Performance improvement.
|
63
63
|
* 0.1.2
|
64
64
|
Bug fix.
|
65
|
+
* 0.1.3
|
66
|
+
Ruby2.0.0 support. Bug fix.
|
65
67
|
|
66
68
|
##License
|
67
69
|
Licensed under the MIT
|
data/lib/log4r/evernote.rb
CHANGED
@@ -3,63 +3,72 @@ require 'log4r/outputter/evernoteoutputter'
|
|
3
3
|
require 'evernote_oauth'
|
4
4
|
|
5
5
|
module Log4ever
|
6
|
-
VERSION = '0.1.
|
7
|
-
|
6
|
+
VERSION = '0.1.3'
|
7
|
+
|
8
|
+
class EvernoteError < StandardError; end
|
9
|
+
|
8
10
|
module ShiftAge
|
9
11
|
DAILY = 1
|
10
12
|
WEEKLY = 2
|
11
13
|
MONTHLY = 3
|
12
14
|
end
|
13
15
|
|
16
|
+
class EvernoteAuth
|
17
|
+
attr_reader :auth_token
|
18
|
+
attr_reader :note_store
|
19
|
+
|
20
|
+
def initialize(auth_token, is_sandbox = false)
|
21
|
+
@auth_token = auth_token
|
22
|
+
@note_store = EvernoteOAuth::Client.new({
|
23
|
+
:token => auth_token,
|
24
|
+
:sandbox => is_sandbox
|
25
|
+
}).note_store
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
14
29
|
class Evernote
|
15
|
-
@@
|
16
|
-
|
30
|
+
@@auth_store = nil
|
31
|
+
|
32
|
+
# Execute authentication to evernote
|
17
33
|
def initialize(auth_token, is_sandbox = false)
|
18
|
-
if @@
|
19
|
-
@@
|
20
|
-
@@note_store = EvernoteOAuth::Client.new({
|
21
|
-
:token => auth_token,
|
22
|
-
:sandbox => is_sandbox
|
23
|
-
}).note_store
|
34
|
+
if @@auth_store.nil?
|
35
|
+
@@auth_store = EvernoteAuth.new(auth_token, is_sandbox)
|
24
36
|
end
|
25
37
|
end
|
26
38
|
|
27
39
|
# get registered notebook or create new notebook
|
28
40
|
# search the notebook under the stack if stack_name specific
|
29
41
|
def notebook
|
30
|
-
Notebook.new
|
42
|
+
Notebook.new(@@auth_store)
|
31
43
|
end
|
32
44
|
|
33
45
|
# get registered note or create new note
|
34
46
|
def note(notebook)
|
35
|
-
Note.new(notebook)
|
47
|
+
Note.new(notebook, @@auth_store)
|
36
48
|
end
|
37
49
|
|
50
|
+
# get registered tag or create new tag
|
38
51
|
def tag(note)
|
39
|
-
Tag.new(note)
|
52
|
+
Tag.new(note, @@auth_store)
|
40
53
|
end
|
54
|
+
end
|
41
55
|
|
42
|
-
|
43
|
-
|
44
|
-
|
56
|
+
class Notebook
|
57
|
+
# constructor
|
58
|
+
def initialize(auth_store)
|
59
|
+
@auth_store = auth_store
|
45
60
|
end
|
46
|
-
end
|
47
61
|
|
48
|
-
class Notebook < Evernote
|
49
|
-
def initialize; end
|
50
|
-
|
51
62
|
# get notebook
|
52
63
|
def get(notebook_name, stack_name = nil)
|
53
64
|
# return cache if same notebook and stack
|
54
65
|
return @notebook if @notebook_name == notebook_name && @stack_name == stack_name
|
55
66
|
# get notebook list from evernote
|
56
|
-
@notebooks =
|
57
|
-
@notebook = nil
|
67
|
+
@notebooks = @auth_store.note_store.listNotebooks(@auth_store.auth_token) if @notebooks.nil?
|
68
|
+
@notebook = nil
|
58
69
|
@notebook_name = notebook_name
|
59
70
|
@stack_name = stack_name
|
60
71
|
@notebooks.each do |notebook|
|
61
|
-
notebook_name = to_ascii(notebook_name)
|
62
|
-
stack_name = to_ascii(stack_name)
|
63
72
|
if notebook.name == notebook_name && notebook.stack == stack_name
|
64
73
|
Log4r::Logger.log_internal { "Get notebook: #{stack_name}/#{notebook_name}" }
|
65
74
|
@notebook = notebook
|
@@ -76,57 +85,58 @@ module Log4ever
|
|
76
85
|
clear
|
77
86
|
get(notebook_name, stack_name)
|
78
87
|
end
|
79
|
-
|
88
|
+
|
80
89
|
# create notebook
|
81
90
|
def create(notebook_name, stack_name = nil)
|
82
91
|
notebook = ::Evernote::EDAM::Type::Notebook.new
|
83
92
|
notebook.name = notebook_name
|
84
93
|
notebook.stack = stack_name
|
85
94
|
begin
|
86
|
-
@notebook =
|
95
|
+
@notebook = @auth_store.note_store.createNotebook(@auth_store.auth_token, notebook)
|
87
96
|
Log4r::Logger.log_internal { "Create notebook: #{stack_name}/#{notebook_name}" }
|
88
97
|
@notebook
|
89
98
|
rescue => e
|
90
99
|
Log4r::Logger.log_internal { e.message }
|
91
|
-
nil
|
100
|
+
raise EvernoteError, "Create notebook failed. Probably, already exists notebook of same name." if @notebook.nil?
|
92
101
|
end
|
93
102
|
end
|
94
|
-
|
103
|
+
|
95
104
|
# notebook guid
|
96
105
|
def guid; @notebook.guid end
|
97
106
|
|
98
107
|
# clear notebook object
|
99
108
|
def clear
|
100
|
-
@notebooks =
|
109
|
+
@notebooks = @auth_store.note_store.listNotebooks(@auth_store.auth_token)
|
101
110
|
@notebook = nil
|
102
111
|
end
|
103
112
|
end
|
104
113
|
|
105
|
-
class Note
|
114
|
+
class Note
|
106
115
|
XML_TEMPLATE_BYTE = 237
|
107
|
-
|
108
|
-
def initialize(notebook)
|
116
|
+
|
117
|
+
def initialize(notebook, auth_store)
|
109
118
|
return unless @params.nil? || @params.empty?
|
110
119
|
@params = {}
|
120
|
+
@auth_store = auth_store
|
111
121
|
@notebook = notebook
|
112
122
|
if !@notebook.kind_of? ::Evernote::EDAM::Type::Notebook
|
113
|
-
raise
|
123
|
+
raise EvernoteError, "Expected kind of Notebook, got #{@notebook.class}", caller
|
114
124
|
elsif !@notebook.respond_to? 'guid'
|
115
125
|
raise NoMethodError, "#{@notebook.class} do not has method: guid", caller
|
116
126
|
end
|
117
127
|
end
|
118
|
-
|
128
|
+
|
119
129
|
# content size
|
120
130
|
def size
|
121
131
|
content.bytesize > 0 ? content.bytesize - XML_TEMPLATE_BYTE : 0
|
122
132
|
end
|
123
|
-
|
133
|
+
|
124
134
|
# note guid
|
125
135
|
def guid; @note.guid end
|
126
136
|
|
127
137
|
# set new title
|
128
138
|
def title=(str)
|
129
|
-
@params[:title] =
|
139
|
+
@params[:title] = str
|
130
140
|
end
|
131
141
|
|
132
142
|
# get tag's guid list
|
@@ -141,28 +151,28 @@ module Log4ever
|
|
141
151
|
|
142
152
|
# append content
|
143
153
|
def addContent(text)
|
144
|
-
new_html = "<div style='font-family: Courier New'
|
154
|
+
new_html = "<div style='font-family: Courier New'>" + text + "</div>"
|
145
155
|
content_xml.at('en-note').inner_html += new_html
|
146
|
-
@params[:content] = @content_ =
|
156
|
+
@params[:content] = @content_ = content_xml.to_xml
|
147
157
|
end
|
148
|
-
|
158
|
+
|
149
159
|
# set new content
|
150
160
|
def content=(text)
|
151
|
-
@params[:content] = @content_ =
|
161
|
+
@params[:content] = @content_ = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
|
152
162
|
"<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">\n" +
|
153
163
|
"<en-note style=\"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;\">\n" +
|
154
|
-
"<div style=\"font-family: Courier New\"
|
155
|
-
end
|
164
|
+
"<div style=\"font-family: Courier New\">" + text + "</div></en-note>"
|
165
|
+
end
|
156
166
|
|
157
167
|
# create note
|
158
168
|
def create
|
159
|
-
|
169
|
+
@auth_store.note_store.createNote(@auth_store.auth_token, createNote)
|
160
170
|
clear
|
161
171
|
end
|
162
172
|
|
163
173
|
# update note
|
164
174
|
def update
|
165
|
-
|
175
|
+
@auth_store.note_store.updateNote(@auth_store.auth_token, updateNote)
|
166
176
|
end
|
167
177
|
|
168
178
|
# clear note object
|
@@ -171,7 +181,7 @@ module Log4ever
|
|
171
181
|
@note = @content_ = @content_xml = nil
|
172
182
|
initialize(@notebook)
|
173
183
|
end
|
174
|
-
|
184
|
+
|
175
185
|
# get latest note object
|
176
186
|
def get
|
177
187
|
return @note unless @note.nil?
|
@@ -180,11 +190,11 @@ module Log4ever
|
|
180
190
|
filter.notebookGuid = @notebook.guid
|
181
191
|
filter.timeZone = "Asia/Tokyo"
|
182
192
|
filter.ascending = false # descending
|
183
|
-
note_list =
|
193
|
+
note_list = @auth_store.note_store.findNotes(@auth_store.auth_token, filter, 0, 1)
|
184
194
|
if note_list.notes.empty?
|
185
195
|
Log4r::Logger.log_internal { "Note not found at #{@notebook.guid}" }
|
186
196
|
@note = ::Evernote::EDAM::Type::Note.new
|
187
|
-
else
|
197
|
+
else
|
188
198
|
@note = note_list.notes[0]
|
189
199
|
end
|
190
200
|
@note
|
@@ -195,7 +205,7 @@ module Log4ever
|
|
195
205
|
clear
|
196
206
|
get
|
197
207
|
end
|
198
|
-
|
208
|
+
|
199
209
|
# create note object
|
200
210
|
def createNote
|
201
211
|
@note = ::Evernote::EDAM::Type::Note.new
|
@@ -203,26 +213,26 @@ module Log4ever
|
|
203
213
|
@params.each{|method, value| @note.send("#{method.to_s}=", value)}
|
204
214
|
@note
|
205
215
|
end
|
206
|
-
|
216
|
+
|
207
217
|
# get note object
|
208
218
|
def updateNote
|
209
219
|
@note.nil? and get
|
210
220
|
@note.content = @params[:content]
|
211
221
|
@note
|
212
222
|
end
|
213
|
-
|
214
|
-
# get created time
|
223
|
+
|
224
|
+
# get created time
|
215
225
|
def created_at
|
216
226
|
time = get.created.to_s
|
217
227
|
ut = time.slice(0, time.length - 3)
|
218
228
|
Time.at(ut.to_f)
|
219
229
|
end
|
220
|
-
|
230
|
+
|
221
231
|
# get note content text
|
222
232
|
def content
|
223
233
|
return @content_ unless @content_.nil?
|
224
234
|
@note.nil? and get
|
225
|
-
@content_ = !@note.nil? && !@note.guid.nil? ?
|
235
|
+
@content_ = !@note.nil? && !@note.guid.nil? ? @auth_store.note_store.getNoteContent(@auth_store.auth_token, @note.guid) : ""
|
226
236
|
end
|
227
237
|
|
228
238
|
# get note content xml object
|
@@ -237,9 +247,10 @@ module Log4ever
|
|
237
247
|
end
|
238
248
|
end
|
239
249
|
|
240
|
-
class Tag
|
241
|
-
def initialize(note)
|
250
|
+
class Tag
|
251
|
+
def initialize(note, auth_store)
|
242
252
|
@note = note
|
253
|
+
@auth_store = auth_store
|
243
254
|
end
|
244
255
|
|
245
256
|
# set tag list
|
@@ -253,7 +264,7 @@ module Log4ever
|
|
253
264
|
return if @list.nil? || @list.empty?
|
254
265
|
return @tag_guids unless @tag_guids.nil?
|
255
266
|
@list = [@list] unless @list.kind_of?(Array)
|
256
|
-
@tags =
|
267
|
+
@tags = @auth_store.note_store.listTags(@auth_store.auth_token) if @tags.nil?
|
257
268
|
@tag_guids = @list.map do |tag|
|
258
269
|
tag_obj = to_obj(tag) || create(tag)
|
259
270
|
tag_obj.guid
|
@@ -265,7 +276,7 @@ module Log4ever
|
|
265
276
|
clear
|
266
277
|
get
|
267
278
|
end
|
268
|
-
|
279
|
+
|
269
280
|
# clear note object
|
270
281
|
def clear
|
271
282
|
@tags = nil
|
@@ -277,14 +288,14 @@ module Log4ever
|
|
277
288
|
def create(tag_name)
|
278
289
|
tag = ::Evernote::EDAM::Type::Tag.new
|
279
290
|
tag.name = tag_name
|
280
|
-
tag_obj =
|
291
|
+
tag_obj = @auth_store.note_store.createTag(@auth_store.auth_token, tag)
|
281
292
|
Log4r::Logger.log_internal { "Create tag: #{tag_name}" }
|
282
293
|
tag_obj
|
283
294
|
end
|
284
295
|
|
285
296
|
# tag name to tag object
|
286
297
|
def to_obj(tag_name)
|
287
|
-
tag_name =
|
298
|
+
tag_name = tag_name
|
288
299
|
@tags.each do |tag|
|
289
300
|
if tag_name == tag.name
|
290
301
|
Log4r::Logger.log_internal { "Get tag: #{tag_name}" }
|
@@ -5,6 +5,7 @@ require "log4r/staticlogger"
|
|
5
5
|
require 'active_support'
|
6
6
|
require 'active_support/time'
|
7
7
|
require 'active_support/core_ext'
|
8
|
+
require 'nkf'
|
8
9
|
|
9
10
|
module Log4r
|
10
11
|
class EvernoteOutputter < Outputter
|
@@ -13,7 +14,7 @@ module Log4r
|
|
13
14
|
super(_name, hash)
|
14
15
|
validate(hash)
|
15
16
|
end
|
16
|
-
|
17
|
+
|
17
18
|
# synchronize note
|
18
19
|
def sync
|
19
20
|
@note = @evernote.note(@notebook)
|
@@ -29,11 +30,11 @@ module Log4r
|
|
29
30
|
raise ArgumentError, "Sandbox must be type of boolean" unless is_sandbox == false || is_sandbox == true
|
30
31
|
@auth_token = hash[:auth_token] || hash['auth_token'] || ""
|
31
32
|
raise ArgumentError, "Must specify from auth token" if @auth_token.empty?
|
32
|
-
notebook_name = hash[:notebook] || hash['notebook'] || ""
|
33
|
+
notebook_name = to_utf8(hash[:notebook] || hash['notebook'] || "")
|
33
34
|
raise ArgumentError, "Must specify from notebook" if notebook_name.empty?
|
34
|
-
stack_name = hash[:stack] || hash['stack']
|
35
|
+
stack_name = to_utf8(hash[:stack] || hash['stack'])
|
35
36
|
@evernote = Log4ever::Evernote.new(@auth_token, is_sandbox)
|
36
|
-
@tags = hash[:tags] || hash['tags'] || []
|
37
|
+
@tags = to_utf8(hash[:tags] || hash['tags'] || [])
|
37
38
|
notebook = @evernote.notebook
|
38
39
|
@notebook = notebook.get(notebook_name, stack_name)
|
39
40
|
@hash = hash
|
@@ -56,21 +57,21 @@ module Log4r
|
|
56
57
|
# write log to note
|
57
58
|
def create_log(content)
|
58
59
|
@note.clear
|
59
|
-
@note.title = @name + " - " + Time.now.strftime("%Y-%m-%d %H:%M:%S")
|
60
|
+
@note.title = to_utf8(@name) + " - " + Time.now.strftime("%Y-%m-%d %H:%M:%S")
|
60
61
|
@note.tags = @tag.get
|
61
|
-
@note.content = content
|
62
|
+
@note.content = to_utf8(content)
|
62
63
|
@note.create
|
63
64
|
Logger.log_internal { "Create note: #{@note.guid}" }
|
64
65
|
end
|
65
|
-
|
66
|
+
|
66
67
|
# update log in note
|
67
68
|
def update_log(content)
|
68
|
-
@note.addContent(content)
|
69
|
+
@note.addContent(to_utf8(content))
|
69
70
|
@note.tags = @tag.get
|
70
71
|
@note.update
|
71
72
|
Logger.log_internal { "Update note: #{@note.guid}" }
|
72
73
|
end
|
73
|
-
|
74
|
+
|
74
75
|
# more expensive, only for startup
|
75
76
|
def note_size_requires_roll?
|
76
77
|
@note.size == 0 || (@maxsize > 0 && @note.size >= @maxsize)
|
@@ -81,13 +82,13 @@ module Log4r
|
|
81
82
|
!@endTime.nil? && Time.now.to_i >= @endTime
|
82
83
|
end
|
83
84
|
|
84
|
-
# diff note's tag and register tag
|
85
|
+
# diff note's tag and register tag
|
85
86
|
def different_tag?
|
86
87
|
note_tags = @note.tags || []
|
87
88
|
tag = @tag.get || []
|
88
89
|
(note_tags - tag).size != 0 || (tag - note_tags).size != 0
|
89
90
|
end
|
90
|
-
|
91
|
+
|
91
92
|
# max amount of log in note
|
92
93
|
def set_maxsize(options)
|
93
94
|
if options.has_key?(:maxsize) || options.has_key?('maxsize')
|
@@ -115,7 +116,7 @@ module Log4r
|
|
115
116
|
@maxsize = 0
|
116
117
|
end
|
117
118
|
end
|
118
|
-
|
119
|
+
|
119
120
|
# rolling interval
|
120
121
|
def set_shift_age(options)
|
121
122
|
if options.has_key?(:shift_age) || options.has_key?('shift_age')
|
@@ -145,5 +146,17 @@ module Log4r
|
|
145
146
|
end
|
146
147
|
end
|
147
148
|
end
|
149
|
+
|
150
|
+
# encode for evernote internal charset
|
151
|
+
# convert character encoding to UTF-8 from Shift_JIS or EUC-JP
|
152
|
+
def to_utf8(mixed)
|
153
|
+
if mixed.kind_of? Array
|
154
|
+
mixed.each {|elem| to_utf8(elem)}
|
155
|
+
else mixed.kind_of? String
|
156
|
+
charset = NKF.guess(mixed).name
|
157
|
+
charset == "UTF-8" ? mixed : mixed.encode!("UTF-8", charset)
|
158
|
+
end
|
159
|
+
mixed
|
160
|
+
end
|
148
161
|
end
|
149
162
|
end
|
data/log4ever.gemspec
CHANGED
@@ -11,9 +11,10 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.name = "log4ever"
|
12
12
|
gem.require_paths = ["lib"]
|
13
13
|
gem.add_dependency('log4r', '>= 1.1.10')
|
14
|
-
gem.add_dependency('
|
15
|
-
gem.add_dependency('i18n', '>= 0.6.
|
16
|
-
gem.add_dependency('evernote_oauth', '>= 0.2.
|
17
|
-
gem.version = '0.1.
|
14
|
+
gem.add_dependency('activesupport', '>= 4.0.4')
|
15
|
+
gem.add_dependency('i18n', '>= 0.6.9')
|
16
|
+
gem.add_dependency('evernote_oauth', '>= 0.2.3')
|
17
|
+
gem.version = '0.1.3'
|
18
|
+
gem.license = 'MIT'
|
18
19
|
end
|
19
20
|
|
data/spec/log4ever_spec.rb
CHANGED
@@ -7,7 +7,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec/spec_helper')
|
|
7
7
|
|
8
8
|
describe Log4ever, 'が実行する処理' do
|
9
9
|
LOGGER_NAME = 'Log4ever'
|
10
|
-
|
10
|
+
|
11
11
|
before do
|
12
12
|
@formatter = Log4r::PatternFormatter.new(
|
13
13
|
:pattern => "%d %C[%l]: %M ",
|
@@ -37,7 +37,6 @@ describe Log4ever, 'が実行する処理' do
|
|
37
37
|
describe 'Log4rのEvernote書き出し処理' do
|
38
38
|
it '書き出しが成功すること' do
|
39
39
|
log_content = "aaa"
|
40
|
-
formatter_content = "\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\s.*?\[.*?\]:\s(.*)\\n"
|
41
40
|
@params[:maxsize] = 1
|
42
41
|
logger.outputters = evernoteOutputter
|
43
42
|
logger.debug(log_content)
|
@@ -53,7 +52,7 @@ describe Log4ever, 'が実行する処理' do
|
|
53
52
|
end
|
54
53
|
end
|
55
54
|
end
|
56
|
-
|
55
|
+
|
57
56
|
describe 'Log4rの初期化処理(正常系)' do
|
58
57
|
it 'パラメータのチェックでエラーが出ないこと' do
|
59
58
|
logger.outputters = Log4r::EvernoteOutputter.new(LOGGER_NAME, @params)
|
@@ -125,21 +124,24 @@ describe Log4ever, 'が実行する処理' do
|
|
125
124
|
end
|
126
125
|
|
127
126
|
it '存在するノートブックと同名のノートブックは作成できないこと' do
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
127
|
+
proc {
|
128
|
+
@evernote = Log4ever::Evernote.new(@params[:auth_token])
|
129
|
+
@notebook = @evernote.notebook
|
130
|
+
notebook_obj = @notebook.create(@params[:notebook], @params[:stack])
|
131
|
+
}.should raise_error()
|
132
132
|
end
|
133
133
|
|
134
134
|
it 'ノートブックの取得に失敗しかつ存在するノートブックと同名のノートブックが指定された場合、作成できないこと' do
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
135
|
+
proc {
|
136
|
+
@evernote = Log4ever::Evernote.new(@params[:auth_token])
|
137
|
+
@notebook = @evernote.notebook
|
138
|
+
stack_name = Time.now.to_i.to_s
|
139
|
+
notebook_obj = @notebook.create(@params[:notebook], stack_name)
|
140
|
+
notebook_obj.should be_nil
|
141
|
+
}.should raise_error()
|
140
142
|
end
|
141
143
|
end
|
142
|
-
|
144
|
+
|
143
145
|
describe 'Log4everの処理' do
|
144
146
|
it 'タグが存在しない場合、新規作成されること' do
|
145
147
|
@params[:tags] = [Time.now.to_i.to_s]
|
@@ -210,5 +212,38 @@ describe Log4ever, 'が実行する処理' do
|
|
210
212
|
}.should_not raise_error()
|
211
213
|
end
|
212
214
|
|
215
|
+
it 'スタックにUTF-8以外の文字列を指定した時、エラーが発生しないこと' do
|
216
|
+
proc {
|
217
|
+
@params[:stack] = "\xA4\xA2\xA4\xA2\xA4\xA2"
|
218
|
+
@params[:notebook] = Time.now.to_i.to_s
|
219
|
+
logger.outputters = Log4r::EvernoteOutputter.new('evernote', @params)
|
220
|
+
logger.debug("test")
|
221
|
+
}.should_not raise_error()
|
222
|
+
end
|
223
|
+
|
224
|
+
it 'ノートブックにUTF-8以外の文字列を指定した時、エラーが発生しないこと' do
|
225
|
+
proc {
|
226
|
+
@params[:notebook] = "\xA4\xA2" + Time.now.to_i.to_s
|
227
|
+
logger.outputters = Log4r::EvernoteOutputter.new('evernote', @params)
|
228
|
+
logger.debug("test")
|
229
|
+
}.should_not raise_error()
|
230
|
+
end
|
231
|
+
|
232
|
+
it 'タグにUTF-8以外の文字列を指定した時、エラーが発生しないこと' do
|
233
|
+
proc {
|
234
|
+
@params[:tags] = ['Log', "\x82\xA0\x82\xA0", "\xA4\xA2"]
|
235
|
+
logger.outputters = Log4r::EvernoteOutputter.new('evernote', @params)
|
236
|
+
logger.debug("test")
|
237
|
+
}.should_not raise_error()
|
238
|
+
end
|
239
|
+
|
240
|
+
it 'ノートにUTF-8以外の文字列を指定した時、エラーが発生しないこと' do
|
241
|
+
proc {
|
242
|
+
logger = Log4r::Logger.new(LOGGER_NAME)
|
243
|
+
logger.outputters = Log4r::EvernoteOutputter.new('evernote', @params)
|
244
|
+
logger.debug("\x82\xA0") # Shift_JIS
|
245
|
+
logger.debug("\xA4\xA2") # EUC-JP
|
246
|
+
}.should_not raise_error()
|
247
|
+
end
|
213
248
|
end
|
214
249
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
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.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mapserver2007
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: log4r
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.1.10
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.1.10
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 4.0.4
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 4.0.4
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: i18n
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.6.
|
47
|
+
version: 0.6.9
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.6.
|
54
|
+
version: 0.6.9
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: evernote_oauth
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.2.
|
61
|
+
version: 0.2.3
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.2.
|
68
|
+
version: 0.2.3
|
69
69
|
description: log4ever is simple logger for evernote. It is available as an extension
|
70
70
|
of log4r.
|
71
71
|
email:
|
@@ -87,7 +87,8 @@ files:
|
|
87
87
|
- spec/log4ever_spec.rb
|
88
88
|
- spec/spec_helper.rb
|
89
89
|
homepage: https://github.com/mapserver2007/log4ever
|
90
|
-
licenses:
|
90
|
+
licenses:
|
91
|
+
- MIT
|
91
92
|
metadata: {}
|
92
93
|
post_install_message:
|
93
94
|
rdoc_options: []
|
@@ -95,17 +96,17 @@ require_paths:
|
|
95
96
|
- lib
|
96
97
|
required_ruby_version: !ruby/object:Gem::Requirement
|
97
98
|
requirements:
|
98
|
-
- -
|
99
|
+
- - '>='
|
99
100
|
- !ruby/object:Gem::Version
|
100
101
|
version: '0'
|
101
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
103
|
requirements:
|
103
|
-
- -
|
104
|
+
- - '>='
|
104
105
|
- !ruby/object:Gem::Version
|
105
106
|
version: '0'
|
106
107
|
requirements: []
|
107
108
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.0.
|
109
|
+
rubygems_version: 2.0.14
|
109
110
|
signing_key:
|
110
111
|
specification_version: 4
|
111
112
|
summary: log4ever is simple logger for evernote.
|