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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08f2efa7f4bcc918432ea7b99432744083893adc
4
- data.tar.gz: 3d92976a914e00bff694bac9854ba72dd44fd57f
3
+ metadata.gz: 7be7c935cbd204ccca6ec1602e05315d1a4e4299
4
+ data.tar.gz: caacbceff1da4aca3aa21c95fce7a022566a7f9d
5
5
  SHA512:
6
- metadata.gz: e7ea2e05832b0b76f20d190f0b332c0dfeac0ecfba64e81d1f4c39d2961435818cc614e337d360514e87e4192c57cfcac1df807beacdcf3fa26cf1f73707624b
7
- data.tar.gz: 9e6fe641b3fc2b8567c5764c1b36950a655f19c4556d28f634ac371091d5cd1ae9eaf7b854add75223f89d05f1fa4acd1218f95e3d7d678dd759461dab96c3d6
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
@@ -3,8 +3,6 @@ require 'paper_trail'
3
3
  require 'paperclip'
4
4
  require 'statesman'
5
5
  require 'geocoder'
6
- require 'globalize'
7
- require 'globalize-accessors'
8
6
  require 'ipaddr'
9
7
 
10
8
  module EnjuLibrary
@@ -1,3 +1,3 @@
1
1
  module EnjuLibrary
2
- VERSION = "0.2.0.beta.3"
2
+ VERSION = "0.2.0.beta.4"
3
3
  end
@@ -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 EnjuLeaf::EnjuUser
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 'enju_biblio'
9
- require 'enju_library'
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.3
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-12 00:00:00.000000000 Z
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.3
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.3
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: globalize
56
+ name: statesman
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 5.0.1
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: 5.0.1
68
+ version: '1.3'
69
69
  - !ruby/object:Gem::Dependency
70
- name: globalize-accessors
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: statesman
84
+ name: globalize
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.3'
90
- type: :runtime
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: '1.3'
96
+ version: 5.0.1
97
97
  - !ruby/object:Gem::Dependency
98
- name: paperclip
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: :runtime
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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.1
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)