enju_library 0.2.0.beta.3 → 0.2.0.beta.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/concerns/calculate_stat.rb +35 -0
- data/app/models/concerns/export_file.rb +19 -0
- data/app/models/concerns/import_file.rb +89 -0
- data/app/models/url_validator.rb +12 -0
- data/lib/enju_library/engine.rb +0 -2
- data/lib/enju_library/version.rb +1 -1
- data/spec/dummy/app/models/user.rb +8 -1
- data/spec/dummy/config/application.rb +3 -2
- metadata +28 -26
- data/spec/dummy/config/initializers/enju_leaf.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7be7c935cbd204ccca6ec1602e05315d1a4e4299
|
4
|
+
data.tar.gz: caacbceff1da4aca3aa21c95fce7a022566a7f9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcc6b08ab4a18714f0da691cce2d98252958e1544a9877917ec40c5b04faab10106fd30dc601c76a45cbe6ace6357d2a77775e1ea1cd7ebf58891553a9146077
|
7
|
+
data.tar.gz: 7ccb40f3353beb7947e05c148cd3992c905aadbc7f12105d9621e935c18d2433af2e592891f5afc859e85f02fa1d85de81bb15422e367595ac09cf2bb11e3f02
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module CalculateStat
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
validates_presence_of :start_date, :end_date
|
6
|
+
validate :check_date
|
7
|
+
|
8
|
+
# 利用統計の集計を開始します。
|
9
|
+
def self.calculate_stat
|
10
|
+
self.not_calculated.each do |stat|
|
11
|
+
stat.transition_to!(:started)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# 利用統計の日付をチェックします。
|
17
|
+
def check_date
|
18
|
+
if self.start_date and self.end_date
|
19
|
+
if self.start_date >= self.end_date
|
20
|
+
errors.add(:start_date)
|
21
|
+
errors.add(:end_date)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# 利用統計の集計完了メッセージを送信します。
|
27
|
+
def send_message
|
28
|
+
sender = User.find(1) #system
|
29
|
+
message_template = MessageTemplate.localized_template('counting_completed', user.profile.locale)
|
30
|
+
request = MessageRequest.new
|
31
|
+
request.assign_attributes({sender: sender, receiver: user, message_template: message_template})
|
32
|
+
request.save_message_body
|
33
|
+
request.transition_to!(:sent)
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module ExportFile
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
belongs_to :user
|
6
|
+
validates :user, presence: true
|
7
|
+
attr_accessor :mode
|
8
|
+
end
|
9
|
+
|
10
|
+
def send_message
|
11
|
+
sender = User.find(1) #system
|
12
|
+
locale = user.profile.try(:locale) || I18n.default_locale.to_s
|
13
|
+
message_template = MessageTemplate.localized_template('export_completed', locale)
|
14
|
+
request = MessageRequest.new
|
15
|
+
request.assign_attributes({sender: sender, receiver: user, message_template: message_template})
|
16
|
+
request.save_message_body
|
17
|
+
request.transition_to!(:sent)
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
module ImportFile
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
# 失敗したインポート処理を一括削除します。
|
5
|
+
def self.expire
|
6
|
+
self.stucked.find_each do |file|
|
7
|
+
file.destroy
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def import_start
|
12
|
+
case edit_mode
|
13
|
+
when 'create'
|
14
|
+
import
|
15
|
+
when 'update'
|
16
|
+
modify
|
17
|
+
when 'destroy'
|
18
|
+
remove
|
19
|
+
else
|
20
|
+
import
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# インポートするファイルの文字コードをUTF-8に変換します。
|
25
|
+
# @param [String] line 変換する文字列
|
26
|
+
def convert_encoding(line)
|
27
|
+
if defined?(CharlockHolmes::EncodingDetector)
|
28
|
+
begin
|
29
|
+
case user_encoding
|
30
|
+
when 'auto_detect'
|
31
|
+
encoding = CharlockHolmes::EncodingDetector.detect(line)[:encoding]
|
32
|
+
when nil
|
33
|
+
encoding = CharlockHolmes::EncodingDetector.detect(line)[:encoding]
|
34
|
+
else
|
35
|
+
encoding = user_encoding
|
36
|
+
end
|
37
|
+
line.encode('UTF-8', encoding, universal_newline: true)
|
38
|
+
rescue StandardError
|
39
|
+
nkf_encode(line)
|
40
|
+
end
|
41
|
+
else
|
42
|
+
nkf_encode(line)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# インポート完了時のメッセージを送信します。
|
47
|
+
def send_message
|
48
|
+
sender = User.find(1)
|
49
|
+
locale = user.profile.try(:locale) || I18n.default_locale.to_s
|
50
|
+
message_template = MessageTemplate.localized_template('import_completed', locale)
|
51
|
+
request = MessageRequest.new
|
52
|
+
request.assign_attributes({sender: sender, receiver: user, message_template: message_template})
|
53
|
+
request.save_message_body
|
54
|
+
request.transition_to!(:sent)
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
def nkf_encode(line)
|
59
|
+
case user_encoding
|
60
|
+
when 'auto_detect'
|
61
|
+
output_encoding = '-w'
|
62
|
+
when 'UTF-8'
|
63
|
+
output_encoding = ''
|
64
|
+
when 'Shift_JIS'
|
65
|
+
output_encoding = '-Sw'
|
66
|
+
when 'EUC-JP'
|
67
|
+
output_encoding = '-Ew'
|
68
|
+
else
|
69
|
+
output_encoding = '-w'
|
70
|
+
end
|
71
|
+
NKF.nkf("#{output_encoding} -Lu", line)
|
72
|
+
end
|
73
|
+
|
74
|
+
def create_import_temp_file(attachment)
|
75
|
+
tempfile = Tempfile.new(self.class.name.underscore)
|
76
|
+
if ENV['ENJU_STORAGE'] == 's3'
|
77
|
+
tempfile.write Faraday.get(attachment.expiring_url(10)).body.force_encoding('UTF-8')
|
78
|
+
else
|
79
|
+
uploaded_file_path = attachment.path
|
80
|
+
open(uploaded_file_path){|f|
|
81
|
+
f.each{|line|
|
82
|
+
tempfile.puts(convert_encoding(line))
|
83
|
+
}
|
84
|
+
}
|
85
|
+
end
|
86
|
+
tempfile.close
|
87
|
+
tempfile
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class UrlValidator < ActiveModel::EachValidator
|
2
|
+
def validate_each(record, attribute, value)
|
3
|
+
if value =~ /\Ahttps?:\/\/[^\n]+\z/i
|
4
|
+
url = ::Addressable::URI.parse(value)
|
5
|
+
unless ['http', 'https'].include?(url.scheme)
|
6
|
+
record.errors.add(attribute.to_sym)
|
7
|
+
end
|
8
|
+
else
|
9
|
+
record.errors.add(attribute.to_sym)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/enju_library/engine.rb
CHANGED
data/lib/enju_library/version.rb
CHANGED
@@ -3,6 +3,13 @@ class User < ActiveRecord::Base
|
|
3
3
|
:recoverable, :rememberable, :trackable, #, :validatable
|
4
4
|
:lockable, :lock_strategy => :none, :unlock_strategy => :none
|
5
5
|
|
6
|
-
include
|
6
|
+
include EnjuSeed::EnjuUser
|
7
7
|
include EnjuCirculation::EnjuUser
|
8
8
|
end
|
9
|
+
|
10
|
+
Accept.include(EnjuCirculation::EnjuAccept)
|
11
|
+
Basket.include(EnjuCirculation::EnjuBasket)
|
12
|
+
Manifestation.include(EnjuCirculation::EnjuManifestation)
|
13
|
+
Item.include(EnjuCirculation::EnjuItem)
|
14
|
+
Item.include(EnjuLibrary::EnjuItem)
|
15
|
+
Withdraw.include(EnjuCirculation::EnjuWithdraw)
|
@@ -5,8 +5,9 @@ require 'rails/all'
|
|
5
5
|
Bundler.require(*Rails.groups)
|
6
6
|
require 'enju_circulation'
|
7
7
|
require 'enju_event'
|
8
|
-
require '
|
9
|
-
require '
|
8
|
+
require 'enju_leaf'
|
9
|
+
require 'globalize'
|
10
|
+
require 'globalize-accessors'
|
10
11
|
|
11
12
|
module Dummy
|
12
13
|
class Application < Rails::Application
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enju_library
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0.beta.
|
4
|
+
version: 0.2.0.beta.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kosuke Tanabe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: enju_seed
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.2.0.beta.
|
19
|
+
version: 0.2.0.beta.4
|
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
|
-
version: 0.2.0.beta.
|
26
|
+
version: 0.2.0.beta.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: paper_trail
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,21 +53,21 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: statesman
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '1.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:
|
68
|
+
version: '1.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: paperclip
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,27 +81,27 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: globalize
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
-
type: :
|
89
|
+
version: 5.0.1
|
90
|
+
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 5.0.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: globalize-accessors
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
|
-
type: :
|
104
|
+
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
@@ -114,42 +114,42 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.2.0.beta.
|
117
|
+
version: 1.2.0.beta.2
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.2.0.beta.
|
124
|
+
version: 1.2.0.beta.2
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: enju_biblio
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.2.0.beta.
|
131
|
+
version: 0.2.0.beta.2
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.2.0.beta.
|
138
|
+
version: 0.2.0.beta.2
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: enju_manifestation_viewer
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.2.0.beta.
|
145
|
+
version: 0.2.0.beta.2
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.2.0.beta.
|
152
|
+
version: 0.2.0.beta.2
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: enju_ndl
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,28 +170,28 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.2.0.beta.
|
173
|
+
version: 0.2.0.beta.2
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.2.0.beta.
|
180
|
+
version: 0.2.0.beta.2
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: enju_circulation
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.2.0.beta.
|
187
|
+
version: 0.2.0.beta.2
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.2.0.beta.
|
194
|
+
version: 0.2.0.beta.2
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: sqlite3
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -395,7 +395,10 @@ files:
|
|
395
395
|
- app/models/bookstore.rb
|
396
396
|
- app/models/budget_type.rb
|
397
397
|
- app/models/color.rb
|
398
|
+
- app/models/concerns/calculate_stat.rb
|
398
399
|
- app/models/concerns/enju_library/enju_item.rb
|
400
|
+
- app/models/concerns/export_file.rb
|
401
|
+
- app/models/concerns/import_file.rb
|
399
402
|
- app/models/library.rb
|
400
403
|
- app/models/library_group.rb
|
401
404
|
- app/models/request_status_type.rb
|
@@ -404,6 +407,7 @@ files:
|
|
404
407
|
- app/models/shelf.rb
|
405
408
|
- app/models/subscribe.rb
|
406
409
|
- app/models/subscription.rb
|
410
|
+
- app/models/url_validator.rb
|
407
411
|
- app/models/user_export_file.rb
|
408
412
|
- app/models/user_export_file_state_machine.rb
|
409
413
|
- app/models/user_export_file_transition.rb
|
@@ -630,7 +634,6 @@ files:
|
|
630
634
|
- spec/dummy/config/initializers/assets.rb
|
631
635
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
632
636
|
- spec/dummy/config/initializers/devise.rb
|
633
|
-
- spec/dummy/config/initializers/enju_leaf.rb
|
634
637
|
- spec/dummy/config/initializers/friendly_id.rb
|
635
638
|
- spec/dummy/config/initializers/inflections.rb
|
636
639
|
- spec/dummy/config/initializers/mime_types.rb
|
@@ -1072,7 +1075,6 @@ test_files:
|
|
1072
1075
|
- spec/dummy/config/initializers/assets.rb
|
1073
1076
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
1074
1077
|
- spec/dummy/config/initializers/devise.rb
|
1075
|
-
- spec/dummy/config/initializers/enju_leaf.rb
|
1076
1078
|
- spec/dummy/config/initializers/friendly_id.rb
|
1077
1079
|
- spec/dummy/config/initializers/inflections.rb
|
1078
1080
|
- spec/dummy/config/initializers/mime_types.rb
|
@@ -1,6 +0,0 @@
|
|
1
|
-
Accept.include(EnjuCirculation::EnjuAccept)
|
2
|
-
Basket.include(EnjuCirculation::EnjuBasket)
|
3
|
-
Manifestation.include(EnjuCirculation::EnjuManifestation)
|
4
|
-
Item.include(EnjuCirculation::EnjuItem)
|
5
|
-
Item.include(EnjuLibrary::EnjuItem)
|
6
|
-
Withdraw.include(EnjuCirculation::EnjuWithdraw)
|