tramway-core 1.8.1 → 1.8.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73b78371455853d155814ff2b43ee628d01ae92508a2607fa8cd1a3a02c8802e
4
- data.tar.gz: 913a54cba50d0767d037b343cb1c36dbf8a8aa071e41a8879525ce854196148f
3
+ metadata.gz: 301196e34c11beb97c8e516d2094d0f98af73cb4c8b9e250804730c5d9479c30
4
+ data.tar.gz: 03c176c1a8d6e14502af6fb509a28bd7b98a56124551c5ce0cd6d3144ff83bd3
5
5
  SHA512:
6
- metadata.gz: faceb82d0bb5111852bed97404119e1722a75b98d9bbaec318c39da7744c034b9ca5205bc02dff80128450ec5c5f6d798970cd6cabfd497dcef2d11092ad3308
7
- data.tar.gz: 96c67ce7e2216b1f17d736a242acef8b80378246d3e89c40e9b78b2e57ae4ee820665138bb2a46d61779de65aefb17f7d163f27df9d3cc95e253a03b206e5631
6
+ metadata.gz: 942eae863fdab061a8d9800aae4d89703bc754b58dad72e1b6a2cd4c104de44f0f65e5001e069cab8e406d5b92303fadde3231e70d0596b941923c66f7af1cd5
7
+ data.tar.gz: f258d270d6baba789f5fbbc0412767c8f0a4ce9ae3bbb6c1f5633628324a9e028dc105ac1c10571efd4a99b637faa53e94674a8838e67b21f6781a0f2cb2f396
data/Rakefile CHANGED
@@ -1,36 +1,8 @@
1
- begin
2
- require 'bundler/setup'
3
- rescue LoadError
4
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
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
- raise "Please, specify `#{association_name}` association class_name in #{object.class} model. For example: `has_many :#{association_name}, class_name: 'ModelName'`"
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.url
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
- raise 'ApplicationForm::Params should not be nil'.inspect unless params
25
- save if validate params
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
- hash.merge!(association => options[:class_name].constantize)
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 ||= self.name.to_s.sub(/Form$/, '')
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
@@ -1,4 +1,6 @@
1
- require 'carrierwave/orm/activerecord'
1
+ if defined?(CarrierWave::Mount)
2
+ require 'carrierwave/orm/activerecord'
3
+ end
2
4
 
3
5
  module Tramway
4
6
  module Core
@@ -1,3 +1,5 @@
1
+ require 'carrierwave'
2
+
1
3
  class ApplicationUploader < CarrierWave::Uploader::Base
2
4
  storage :file
3
5
 
@@ -0,0 +1,3 @@
1
+ ActiveSupport.on_load :active_record do
2
+ require 'audited'
3
+ end
data/lib/tramway/core.rb CHANGED
@@ -1,7 +1,8 @@
1
- require "tramway/core/engine"
2
- require "tramway/collection"
3
- require "tramway/collections/helper"
4
- #require 'string'
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
@@ -1,6 +1,7 @@
1
1
  require 'tramway/core/generators/install_generator'
2
2
  require 'tramway/core/application'
3
3
  require 'simple_form'
4
+ require 'enumerize'
4
5
 
5
6
  module Tramway
6
7
  module Core
@@ -1,5 +1,5 @@
1
1
  module Tramway
2
2
  module Core
3
- VERSION = '1.8.1'
3
+ VERSION = '1.8.2'
4
4
  end
5
5
  end
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.1
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: 2018-12-24 00:00:00.000000000 Z
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.0
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.0
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.5.0
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.5.0
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