tramway-core 0.1.0.4 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/app/assets/images/tramway/core/mona_lisa_from_prado.jpg +0 -0
- data/app/assets/images/tramway/core/mona_lisa_from_prado_square.jpg +0 -0
- data/app/assets/javascripts/tramway/core/application.js.coffee +3 -0
- data/app/assets/stylesheets/tramway/core/application.css.sass +3 -0
- data/app/decorators/tramway/core/application_decorated_collection.rb +14 -0
- data/app/decorators/tramway/core/application_decorator.rb +65 -0
- data/app/forms/tramway/core/application_form.rb +8 -0
- data/app/models/tramway/core/application_record.rb +31 -0
- data/app/uploaders/application_uploader.rb +7 -0
- data/app/uploaders/file_uploader.rb +5 -0
- data/app/uploaders/image_defaults.rb +11 -0
- data/app/uploaders/photo_uploader.rb +39 -0
- data/app/views/tramway/core/shared/_messages.html.haml +11 -0
- data/config/locales/ru/dates.yml +7 -0
- data/config/locales/ru/helpers.yml +11 -0
- data/config/locales/ru/models.yml +7 -0
- data/config/locales/ru/state_machines.yml +8 -0
- data/lib/tramway/core/engine.rb +6 -0
- data/lib/tramway/core/generators/install_generator.rb +19 -6
- data/lib/tramway/core/version.rb +1 -1
- data/lib/tramway/core.rb +0 -1
- data/lib/tramway/generators/install_generator.rb +25 -0
- metadata +18 -4
- data/app/assets/javascripts/tramway/core/application.js +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f1fdd99b3bcf9ff2140b9cb18f1312eaf6ec59148a3ae8041d6ec5645be035a4
|
4
|
+
data.tar.gz: f7646bb17b0dc8ddfcbbadc4e7f5b15f6b2b0bfd26cb2946e4787ed5ad8bc29b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9cddd8d4a8765d39ca37c2498f5a4b41db1ad455ea7153968077460a1e6db3c8659aa32e98cc1b17b2bb6e2578e12f313d895c84c4254d86daea1fa26bf9550
|
7
|
+
data.tar.gz: 6d23dd21b4b146b15fe7ff2654321e3262899e91646b88e84739a27f615a80fad5ff8232ac367dc0cfc217f703a8e2578a0ba78b922e54f662618b15f0d7425c
|
Binary file
|
Binary file
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Tramway::Core::ApplicationDecoratedCollection < Array
|
2
|
+
def initialize(array, original_array)
|
3
|
+
@original_array = original_array
|
4
|
+
super(array)
|
5
|
+
end
|
6
|
+
|
7
|
+
def original_array
|
8
|
+
@original_array
|
9
|
+
end
|
10
|
+
|
11
|
+
delegate :total_pages, to: :original_array
|
12
|
+
delegate :current_page, to: :original_array
|
13
|
+
delegate :limit_value, to: :original_array
|
14
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
class Tramway::Core::ApplicationDecorator
|
2
|
+
include ActionView::Helpers
|
3
|
+
include ActionView::Context
|
4
|
+
include FontAwesome::Rails::IconHelper
|
5
|
+
|
6
|
+
def initialize(object)
|
7
|
+
@object = object
|
8
|
+
end
|
9
|
+
|
10
|
+
def name
|
11
|
+
object.try(:name) || object.try(:title) || title
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
def list_attributes
|
16
|
+
[]
|
17
|
+
end
|
18
|
+
|
19
|
+
def decorate(object_or_array)
|
20
|
+
if object_or_array.class.superclass == ActiveRecord::Relation
|
21
|
+
decorated_array = object_or_array.map do |obj|
|
22
|
+
new obj
|
23
|
+
end
|
24
|
+
Tramway::Core::ApplicationDecoratedCollection.new decorated_array, object_or_array
|
25
|
+
else
|
26
|
+
new object_or_array
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
delegate :id, to: :object
|
32
|
+
delegate :class, to: :object
|
33
|
+
delegate :human_state_name, to: :object
|
34
|
+
|
35
|
+
def model
|
36
|
+
object
|
37
|
+
end
|
38
|
+
|
39
|
+
def attributes
|
40
|
+
object.attributes.reduce({}) do |hash, attribute|
|
41
|
+
value = object.send attribute[0]
|
42
|
+
if attribute[0].to_s.in? object.class.state_machines.keys.map(&:to_s)
|
43
|
+
hash.merge! attribute[0] => object.send("human_#{attribute[0]}_name")
|
44
|
+
elsif value.class.in? [ ActiveSupport::TimeWithZone, DateTime, Time ]
|
45
|
+
hash.merge! attribute[0] => I18n.l(attribute[1])
|
46
|
+
elsif value.class.superclass == ApplicationUploader
|
47
|
+
tags = content_tag(:div) do
|
48
|
+
concat image_tag value.small.url if value.url.match(/jpg|JPG|png|PNG$/)
|
49
|
+
concat link_to(fa_icon(:download), value.url, class: 'btn btn-success')
|
50
|
+
end
|
51
|
+
hash.merge! attribute[0] => tags
|
52
|
+
elsif value.is_a? Enumerize::Value
|
53
|
+
hash.merge! attribute[0] => value.text
|
54
|
+
else
|
55
|
+
hash.merge! attribute[0] => attribute[1]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
protected
|
61
|
+
|
62
|
+
def object
|
63
|
+
@object
|
64
|
+
end
|
65
|
+
end
|
@@ -1,7 +1,38 @@
|
|
1
|
+
require 'carrierwave/orm/activerecord'
|
2
|
+
|
1
3
|
module Tramway
|
2
4
|
module Core
|
3
5
|
class ApplicationRecord < ActiveRecord::Base
|
4
6
|
self.abstract_class = true
|
7
|
+
audited
|
8
|
+
extend Enumerize
|
9
|
+
|
10
|
+
state_machine :state, initial: :active do
|
11
|
+
state :active
|
12
|
+
state :removed
|
13
|
+
|
14
|
+
event :remove do
|
15
|
+
transition active: :remove
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
scope :active, -> { where state: :active }
|
20
|
+
|
21
|
+
# FIXME detect inhertited locales
|
22
|
+
class << self
|
23
|
+
def human_attribute_name(attribute_name)
|
24
|
+
excepted_attributes = %w( created_at updated_at state )
|
25
|
+
if attribute_name.to_s.in? excepted_attributes
|
26
|
+
I18n.t "activerecord.attributes.tramway/core/application_record.#{attribute_name}"
|
27
|
+
else
|
28
|
+
super attribute_name
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
# FIXME detect inhertited locales
|
33
|
+
def human_state_name
|
34
|
+
I18n.t "activerecord.state_machines.tramway/core/application_record.state.states.#{state}"
|
35
|
+
end
|
5
36
|
end
|
6
37
|
end
|
7
38
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module ImageDefaults
|
2
|
+
include CarrierWave::MiniMagick
|
3
|
+
|
4
|
+
def default_url
|
5
|
+
"/images/fallback/#{model.class.model_name.to_s.underscore}/" << [mounted_as, version_name].compact.join("_") << ".gif"
|
6
|
+
end
|
7
|
+
|
8
|
+
def extension_white_list
|
9
|
+
%w(jpg jpeg gif png)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class PhotoUploader < ApplicationUploader
|
2
|
+
include ImageDefaults
|
3
|
+
|
4
|
+
def default_url
|
5
|
+
ActionController::Base.helpers.asset_path("images/default_photo.png")
|
6
|
+
end
|
7
|
+
|
8
|
+
def url
|
9
|
+
if File.exist? file.file
|
10
|
+
file.file.match(/\/system\/uploads\/.*/).to_s
|
11
|
+
else
|
12
|
+
"/assets/tramway/core/mona_lisa_from_prado_square.jpg"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
version :medium do
|
17
|
+
process :resize_to_fill => [400, 400]
|
18
|
+
end
|
19
|
+
|
20
|
+
version :small do
|
21
|
+
process :resize_to_fill => [100, 100]
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_reader :width, :height
|
25
|
+
|
26
|
+
before :cache, :capture_size
|
27
|
+
|
28
|
+
def capture_size(file)
|
29
|
+
if version_name.blank?
|
30
|
+
if file.path.nil?
|
31
|
+
img = ::MiniMagick::Image::read(file.file)
|
32
|
+
@width = img[:width]
|
33
|
+
@height = img[:height]
|
34
|
+
else
|
35
|
+
@width, @height = `identify -format "%wx %h" #{file.path}`.split(/x/).map{|dim| dim.to_i }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
- if object.model.errors.any?
|
2
|
+
.alert.alert-dismissible.alert-danger
|
3
|
+
%h4= t('.some_errors_was_found')
|
4
|
+
%ul
|
5
|
+
- object.errors.full_messages.each do |message|
|
6
|
+
%li= message
|
7
|
+
- object.model.errors.full_messages.each do |message|
|
8
|
+
%li= message
|
9
|
+
- if params[:message]
|
10
|
+
.alert.alert-dismissible.alert-info
|
11
|
+
%h4= t("messages.#{params[:message]}")
|
data/lib/tramway/core/engine.rb
CHANGED
@@ -2,6 +2,12 @@ module Tramway
|
|
2
2
|
module Core
|
3
3
|
class Engine < ::Rails::Engine
|
4
4
|
isolate_namespace Tramway::Core
|
5
|
+
|
6
|
+
config.before_initialize do
|
7
|
+
config.i18n.available_locales = [:ru]
|
8
|
+
config.i18n.default_locale = :ru
|
9
|
+
config.i18n.load_path += Dir["#{config.root}/config/locales/**/*.yml"]
|
10
|
+
end
|
5
11
|
end
|
6
12
|
end
|
7
13
|
end
|
@@ -1,12 +1,25 @@
|
|
1
1
|
require 'rails/generators'
|
2
2
|
|
3
|
-
module Tramway
|
4
|
-
|
5
|
-
|
3
|
+
module Tramway
|
4
|
+
module Core
|
5
|
+
module Generators
|
6
|
+
class InstallGenerator < ::Rails::Generators::Base
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
|
9
|
+
def run_other_generators
|
10
|
+
generate 'audited:install'
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.next_migration_number(path)
|
14
|
+
next_migration_number = current_migration_number(path) + 1
|
15
|
+
ActiveRecord::Migration.next_migration_number next_migration_number
|
16
|
+
end
|
17
|
+
|
18
|
+
def copy_initializer
|
19
|
+
copy_file "/#{File.dirname __dir__}/generators/templates/initializers/simple_form.rb", 'config/initializers/simple_form.rb'
|
20
|
+
copy_file "/#{File.dirname __dir__}/generators/templates/initializers/simple_form_bootstrap.rb", 'config/initializers/simple_form_bootstrap.rb'
|
21
|
+
end
|
22
|
+
end
|
10
23
|
end
|
11
24
|
end
|
12
25
|
end
|
data/lib/tramway/core/version.rb
CHANGED
data/lib/tramway/core.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Tramway
|
4
|
+
module Core
|
5
|
+
module Generators
|
6
|
+
class InstallGenerator < ::Rails::Generators::Base
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
|
9
|
+
def run_other_generators
|
10
|
+
generate 'audited:install'
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.next_migration_number(path)
|
14
|
+
next_migration_number = current_migration_number(path) + 1
|
15
|
+
ActiveRecord::Migration.next_migration_number next_migration_number
|
16
|
+
end
|
17
|
+
|
18
|
+
def copy_initializer
|
19
|
+
copy_file "/#{File.dirname __dir__}/generators/templates/initializers/simple_form.rb", 'config/initializers/simple_form.rb'
|
20
|
+
copy_file "/#{File.dirname __dir__}/generators/templates/initializers/simple_form_bootstrap.rb", 'config/initializers/simple_form_bootstrap.rb'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
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: 0.
|
4
|
+
version: '0.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: 2018-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -49,18 +49,31 @@ files:
|
|
49
49
|
- README.md
|
50
50
|
- Rakefile
|
51
51
|
- app/assets/config/tramway_core_manifest.js
|
52
|
-
- app/assets/
|
52
|
+
- app/assets/images/tramway/core/mona_lisa_from_prado.jpg
|
53
|
+
- app/assets/images/tramway/core/mona_lisa_from_prado_square.jpg
|
54
|
+
- app/assets/javascripts/tramway/core/application.js.coffee
|
53
55
|
- app/assets/javascripts/tramway/core/web/application.js
|
54
56
|
- app/assets/stylesheets/tramway/core/application.css.sass
|
55
57
|
- app/controllers/tramway/core/application_controller.rb
|
56
58
|
- app/controllers/tramway/core/web/application_controller.rb
|
59
|
+
- app/decorators/tramway/core/application_decorated_collection.rb
|
60
|
+
- app/decorators/tramway/core/application_decorator.rb
|
57
61
|
- app/forms/tramway/core/application_form.rb
|
58
62
|
- app/helpers/tramway/core/application_helper.rb
|
59
63
|
- app/helpers/tramway/core/web/application_helper.rb
|
60
64
|
- app/jobs/tramway/core/application_job.rb
|
61
65
|
- app/mailers/tramway/core/application_mailer.rb
|
62
66
|
- app/models/tramway/core/application_record.rb
|
67
|
+
- app/uploaders/application_uploader.rb
|
68
|
+
- app/uploaders/file_uploader.rb
|
69
|
+
- app/uploaders/image_defaults.rb
|
70
|
+
- app/uploaders/photo_uploader.rb
|
63
71
|
- app/views/layouts/tramway/core/application.html.erb
|
72
|
+
- app/views/tramway/core/shared/_messages.html.haml
|
73
|
+
- config/locales/ru/dates.yml
|
74
|
+
- config/locales/ru/helpers.yml
|
75
|
+
- config/locales/ru/models.yml
|
76
|
+
- config/locales/ru/state_machines.yml
|
64
77
|
- config/routes.rb
|
65
78
|
- lib/tasks/tramway/core_tasks.rake
|
66
79
|
- lib/tramway/core.rb
|
@@ -69,6 +82,7 @@ files:
|
|
69
82
|
- lib/tramway/core/generators/templates/initializers/simple_form.rb
|
70
83
|
- lib/tramway/core/generators/templates/initializers/simple_form_bootstrap.rb
|
71
84
|
- lib/tramway/core/version.rb
|
85
|
+
- lib/tramway/generators/install_generator.rb
|
72
86
|
homepage: https://github.com/kalashnikovisme/tramway-core
|
73
87
|
licenses:
|
74
88
|
- MIT
|
@@ -89,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
103
|
version: '0'
|
90
104
|
requirements: []
|
91
105
|
rubyforge_project:
|
92
|
-
rubygems_version: 2.
|
106
|
+
rubygems_version: 2.7.3
|
93
107
|
signing_key:
|
94
108
|
specification_version: 4
|
95
109
|
summary: Core for all Tramway Rails Engines
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
-
// listed below.
|
3
|
-
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
-
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
-
//
|
7
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
-
// compiled file. JavaScript code in this file should be added after the last require_* statement.
|
9
|
-
//
|
10
|
-
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
-
// about supported directives.
|
12
|
-
//
|
13
|
-
//= require_tree .
|