tramway-core 1.8.1 → 1.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +7 -35
- data/app/decorators/tramway/core/application_decorator.rb +19 -4
- data/app/forms/tramway/core/application_form.rb +23 -5
- data/app/models/tramway/core/application_record.rb +3 -1
- data/app/uploaders/application_uploader.rb +2 -0
- data/config/initializers/carrierwave.rb +3 -0
- data/lib/tramway/core.rb +5 -4
- data/lib/tramway/core/engine.rb +1 -0
- data/lib/tramway/core/version.rb +1 -1
- data/lib/tramway/error.rb +2 -1
- metadata +119 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 301196e34c11beb97c8e516d2094d0f98af73cb4c8b9e250804730c5d9479c30
|
4
|
+
data.tar.gz: 03c176c1a8d6e14502af6fb509a28bd7b98a56124551c5ce0cd6d3144ff83bd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 942eae863fdab061a8d9800aae4d89703bc754b58dad72e1b6a2cd4c104de44f0f65e5001e069cab8e406d5b92303fadde3231e70d0596b941923c66f7af1cd5
|
7
|
+
data.tar.gz: f258d270d6baba789f5fbbc0412767c8f0a4ce9ae3bbb6c1f5633628324a9e028dc105ac1c10571efd4a99b637faa53e94674a8838e67b21f6781a0f2cb2f396
|
data/Rakefile
CHANGED
@@ -1,36 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
require 'rake'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
5
|
+
t.pattern = Dir.glob('spec/**/*_spec.rb')
|
6
|
+
t.rspec_opts = '--format documentation'
|
5
7
|
end
|
6
|
-
|
7
|
-
require 'rdoc/task'
|
8
|
-
|
9
|
-
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
-
rdoc.rdoc_dir = 'rdoc'
|
11
|
-
rdoc.title = 'Tramway::Core'
|
12
|
-
rdoc.options << '--line-numbers'
|
13
|
-
rdoc.rdoc_files.include('README.md')
|
14
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
-
end
|
16
|
-
|
17
|
-
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
18
|
-
load 'rails/tasks/engine.rake'
|
19
|
-
|
20
|
-
|
21
|
-
load 'rails/tasks/statistics.rake'
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
require 'bundler/gem_tasks'
|
26
|
-
|
27
|
-
require 'rake/testtask'
|
28
|
-
|
29
|
-
Rake::TestTask.new(:test) do |t|
|
30
|
-
t.libs << 'test'
|
31
|
-
t.pattern = 'test/**/*_test.rb'
|
32
|
-
t.verbose = false
|
33
|
-
end
|
34
|
-
|
35
|
-
|
36
|
-
task default: :test
|
8
|
+
task default: :spec
|
@@ -1,7 +1,9 @@
|
|
1
|
+
require 'tramway/error'
|
2
|
+
|
1
3
|
class Tramway::Core::ApplicationDecorator
|
2
4
|
include ActionView::Helpers
|
3
5
|
include ActionView::Context
|
4
|
-
include FontAwesome::Rails::IconHelper
|
6
|
+
include ::FontAwesome::Rails::IconHelper
|
5
7
|
|
6
8
|
def initialize(object)
|
7
9
|
@object = object
|
@@ -11,6 +13,11 @@ class Tramway::Core::ApplicationDecorator
|
|
11
13
|
object.try(:name) || object.try(:title) || title
|
12
14
|
end
|
13
15
|
|
16
|
+
def title
|
17
|
+
error = Tramway::Error.new(plugin: :core, method: :title, message: ("Please, implement `title` method in a #{self.class} or #{object.class}"))
|
18
|
+
raise error.message
|
19
|
+
end
|
20
|
+
|
14
21
|
class << self
|
15
22
|
def list_attributes
|
16
23
|
[]
|
@@ -33,9 +40,9 @@ class Tramway::Core::ApplicationDecorator
|
|
33
40
|
|
34
41
|
define_method association_name do
|
35
42
|
class_name = object.class.reflect_on_association(association_name).options[:class_name]
|
36
|
-
#FIXME use error abstraction
|
37
43
|
unless class_name
|
38
|
-
|
44
|
+
error = Tramway::Error.new(plugin: :core, method: :decorate_association, message: ("Please, specify `#{association_name}` association class_name in #{object.class} model. For example: `has_many :#{association_name}, class_name: '#{association_name.to_s.singularize.camelize}'`"))
|
45
|
+
raise error.message
|
39
46
|
end
|
40
47
|
|
41
48
|
object.send(association_name).active.map do |association_object|
|
@@ -51,7 +58,15 @@ class Tramway::Core::ApplicationDecorator
|
|
51
58
|
delegate :human_state_name, to: :object
|
52
59
|
|
53
60
|
def link
|
54
|
-
object.file
|
61
|
+
if object.try :file
|
62
|
+
object.file.url
|
63
|
+
else
|
64
|
+
error = Tramway::Error.new(
|
65
|
+
plugin: :core,
|
66
|
+
method: :link,
|
67
|
+
message: ("Method `link` uses `file` attribute of the decorated object. If decorated object doesn't contain `file`, you shouldn't use `link` method."))
|
68
|
+
raise error.message
|
69
|
+
end
|
55
70
|
end
|
56
71
|
|
57
72
|
def model
|
@@ -4,6 +4,7 @@ module Tramway::Core
|
|
4
4
|
super(object).tap do
|
5
5
|
@@model_class = object.class
|
6
6
|
@@enumerized_attributes = object.class.enumerized_attributes
|
7
|
+
@@associations ||= []
|
7
8
|
|
8
9
|
self.class.full_class_name_associations.each do |association, class_name|
|
9
10
|
if class_name.is_a? Array
|
@@ -21,8 +22,12 @@ module Tramway::Core
|
|
21
22
|
end
|
22
23
|
|
23
24
|
def submit(params)
|
24
|
-
|
25
|
-
|
25
|
+
if params
|
26
|
+
save if validate params
|
27
|
+
else
|
28
|
+
error = Tramway::Error.new(plugin: :core, method: :title, message: ('ApplicationForm::Params should not be nil'))
|
29
|
+
raise error.message
|
30
|
+
end
|
26
31
|
end
|
27
32
|
|
28
33
|
def form_properties(**args)
|
@@ -33,6 +38,8 @@ module Tramway::Core
|
|
33
38
|
@form_properties || []
|
34
39
|
end
|
35
40
|
|
41
|
+
def build_errors; end
|
42
|
+
|
36
43
|
class << self
|
37
44
|
delegate :defined_enums, to: :model_class
|
38
45
|
|
@@ -53,12 +60,13 @@ module Tramway::Core
|
|
53
60
|
options = @@model_class.reflect_on_all_associations(:belongs_to).select do |a|
|
54
61
|
a.name == association.to_sym
|
55
62
|
end.first&.options
|
56
|
-
|
63
|
+
|
57
64
|
if options
|
58
65
|
if options[:polymorphic]
|
59
66
|
hash.merge! association => @@model_class.send("#{association}_type").values
|
60
67
|
else
|
61
|
-
|
68
|
+
class_name = options[:class_name] || association.to_s.camelize
|
69
|
+
hash.merge!(association => class_name.constantize)
|
62
70
|
end
|
63
71
|
end
|
64
72
|
hash
|
@@ -78,7 +86,17 @@ module Tramway::Core
|
|
78
86
|
end
|
79
87
|
|
80
88
|
def model_class
|
81
|
-
@@model_class
|
89
|
+
if @@model_class
|
90
|
+
@@model_class
|
91
|
+
else
|
92
|
+
model_class_name ||= self.name.to_s.sub(/Form$/, '')
|
93
|
+
begin
|
94
|
+
@@model_class = model_class_name.constantize
|
95
|
+
rescue
|
96
|
+
error = Tramway::Error.new(plugin: :core, method: :model_class, message: ("There is not model class name for #{self.name}. Should be #{model_class_name} or you can use another class to initialize form object."))
|
97
|
+
raise error.message
|
98
|
+
end
|
99
|
+
end
|
82
100
|
end
|
83
101
|
end
|
84
102
|
end
|
data/lib/tramway/core.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
|
1
|
+
require 'tramway/core/engine'
|
2
|
+
require 'tramway/collection'
|
3
|
+
require 'tramway/collections/helper'
|
4
|
+
require 'font-awesome-rails'
|
5
|
+
require 'reform'
|
5
6
|
|
6
7
|
module Tramway
|
7
8
|
module Core
|
data/lib/tramway/core/engine.rb
CHANGED
data/lib/tramway/core/version.rb
CHANGED
data/lib/tramway/error.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
class Tramway::Error < Exception
|
2
|
-
def initialize(plugin: nil, method: nil, message: nil)
|
2
|
+
def initialize(*args, plugin: nil, method: nil, message: nil)
|
3
3
|
@properties ||= {}
|
4
4
|
@properties[:plugin] = plugin
|
5
5
|
@properties[:method] = method
|
6
6
|
@properties[:message] = message
|
7
|
+
super(*args)
|
7
8
|
end
|
8
9
|
|
9
10
|
def message
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tramway-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: reform-rails
|
@@ -88,42 +88,30 @@ dependencies:
|
|
88
88
|
name: bootstrap
|
89
89
|
requirement: !ruby/object:Gem::Requirement
|
90
90
|
requirements:
|
91
|
-
- - "~>"
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '4.1'
|
94
91
|
- - ">="
|
95
92
|
- !ruby/object:Gem::Version
|
96
|
-
version: 4.1.
|
93
|
+
version: 4.1.2
|
97
94
|
type: :runtime
|
98
95
|
prerelease: false
|
99
96
|
version_requirements: !ruby/object:Gem::Requirement
|
100
97
|
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '4.1'
|
104
98
|
- - ">="
|
105
99
|
- !ruby/object:Gem::Version
|
106
|
-
version: 4.1.
|
100
|
+
version: 4.1.2
|
107
101
|
- !ruby/object:Gem::Dependency
|
108
102
|
name: audited
|
109
103
|
requirement: !ruby/object:Gem::Requirement
|
110
104
|
requirements:
|
111
|
-
- - "~>"
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: '4.5'
|
114
105
|
- - ">="
|
115
106
|
- !ruby/object:Gem::Version
|
116
|
-
version: 4.
|
107
|
+
version: 4.8.0
|
117
108
|
type: :runtime
|
118
109
|
prerelease: false
|
119
110
|
version_requirements: !ruby/object:Gem::Requirement
|
120
111
|
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '4.5'
|
124
112
|
- - ">="
|
125
113
|
- !ruby/object:Gem::Version
|
126
|
-
version: 4.
|
114
|
+
version: 4.8.0
|
127
115
|
- !ruby/object:Gem::Dependency
|
128
116
|
name: mini_magick
|
129
117
|
requirement: !ruby/object:Gem::Requirement
|
@@ -204,6 +192,118 @@ dependencies:
|
|
204
192
|
- - ">="
|
205
193
|
- !ruby/object:Gem::Version
|
206
194
|
version: 1.0.0
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: font-awesome-rails
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: carrierwave
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: kaminari
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: reform
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: rspec-rails
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: pry
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: pg
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ">="
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: factory_bot_rails
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
207
307
|
description: Core for all Tramway Rails Engines
|
208
308
|
email:
|
209
309
|
- kalashnikovisme@gmail.com
|
@@ -238,6 +338,7 @@ files:
|
|
238
338
|
- app/views/tramway/core/shared/_input_extended.html.haml
|
239
339
|
- app/views/tramway/core/shared/_messages.html.haml
|
240
340
|
- config/initializers/assets.rb
|
341
|
+
- config/initializers/carrierwave.rb
|
241
342
|
- config/initializers/plurals.rb
|
242
343
|
- config/locales/ru/dates.yml
|
243
344
|
- config/locales/ru/helpers.yml
|