rad_kit 0.0.8 → 0.0.9
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.
- data/lib/components/captcha.rb +4 -4
- data/lib/components/kit.rb +5 -5
- data/lib/components/kit.yml +0 -2
- data/lib/components/models.rb +2 -5
- data/lib/components/models.yml +3 -0
- data/lib/kit/controller/authorized.rb +9 -8
- data/lib/kit/controller/captcha.rb +6 -6
- data/lib/kit/controller/localized.rb +2 -2
- data/lib/kit/gems.rb +12 -8
- data/lib/kit/i18n.rb +3 -3
- data/lib/kit/i18n/locales/ru/pluralization.rb +3 -3
- data/lib/kit/kit.rb +7 -7
- data/lib/kit/kit_text_utils.rb +6 -6
- data/lib/kit/misc/prepare_model.rb +4 -4
- data/lib/kit/models.rb +22 -5
- data/lib/kit/models/attachment_file.rb +27 -0
- data/lib/kit/models/{attachments_uploader_helper.rb → attachments_helper.rb} +34 -28
- data/lib/kit/models/authorized.rb +64 -63
- data/lib/kit/models/authorized_object.rb +70 -73
- data/lib/kit/models/base_file.rb +37 -0
- data/lib/kit/models/config.rb +30 -0
- data/lib/kit/models/indexes.rb +30 -0
- data/lib/kit/models/miscellaneous.rb +7 -1
- data/lib/kit/models/role.rb +17 -17
- data/lib/kit/models/tags.rb +71 -0
- data/lib/kit/models/tags_mixin.rb +39 -0
- data/lib/kit/mongodb_model.rb +13 -0
- data/lib/kit/mongodb_model/text_processor.rb +32 -0
- data/lib/kit/spec.rb +30 -30
- data/lib/kit/spec/items_controller_crud.rb +9 -9
- data/lib/kit/support.rb +1 -1
- data/lib/kit/tasks.rb +3 -7
- data/lib/text_utils.rb +2 -2
- data/lib/text_utils/code_highlighter.rb +17 -17
- data/lib/text_utils/custom_markdown.rb +7 -7
- data/lib/text_utils/ensure_utf.rb +3 -3
- data/lib/text_utils/format_qualifier.rb +2 -2
- data/lib/text_utils/html_sanitizer.rb +9 -9
- data/lib/text_utils/markdown.rb +9 -9
- data/lib/text_utils/pipe.rb +1 -1
- data/lib/text_utils/processor.rb +3 -3
- data/lib/text_utils/support.rb +3 -3
- data/lib/text_utils/truncate.rb +4 -4
- data/readme.md +3 -1
- data/spec/controller/authorization_spec.rb +45 -45
- data/spec/controller/captcha_spec.rb +18 -18
- data/spec/controller/comments_spec.rb +16 -14
- data/spec/controller/items_spec.rb +16 -17
- data/spec/i18n/i18n_spec.rb +5 -5
- data/spec/misc/kit_text_utils_spec.rb +5 -5
- data/spec/misc/prepare_model_spec.rb +6 -6
- data/spec/misc/user_error_spec.rb +8 -8
- data/spec/models/{attachments_uploader_helper_spec.rb → attachments_helper_spec.rb} +46 -50
- data/spec/models/{attachments_uploader_helper_spec → attachments_helper_spec}/v1/a.txt +0 -0
- data/spec/models/{attachments_uploader_helper_spec → attachments_helper_spec}/v1/b.txt +0 -0
- data/spec/models/{attachments_uploader_helper_spec → attachments_helper_spec}/v2/a.txt +0 -0
- data/spec/models/attachments_spec.rb +4 -7
- data/spec/models/authorization_spec.rb +15 -15
- data/spec/models/authorized_object_spec.rb +75 -75
- data/spec/models/item_spec.rb +44 -40
- data/spec/models/role_spec.rb +4 -4
- data/spec/models/tags_spec.rb +47 -21
- data/spec/models/uploader_spec.rb +13 -23
- data/spec/mongodb_model/text_processor_spec.rb +26 -0
- data/spec/spec_helper.rb +6 -4
- data/spec/spec_helper/factories.rb +3 -3
- data/spec/spec_helper/user.rb +4 -7
- data/spec/text_utils/code_highlighter_spec.rb +7 -7
- data/spec/text_utils/custom_markdown_spec.rb +14 -14
- data/spec/text_utils/format_qualifier_spec.rb +6 -6
- data/spec/text_utils/html_sanitizer_spec.rb +15 -15
- data/spec/text_utils/markdown_spec.rb +17 -17
- data/spec/text_utils/pipe_spec.rb +5 -5
- data/spec/text_utils/spec_helper.rb +1 -1
- data/spec/text_utils/text_processor_shared.rb +1 -1
- data/spec/text_utils/truncate_spec.rb +5 -5
- metadata +118 -114
- data/lib/kit/models/attachment_uploader.rb +0 -15
- data/lib/kit/models/file_uploader.rb +0 -26
- data/lib/kit/models_after.rb +0 -27
- data/lib/kit/mongoid.rb +0 -22
- data/lib/kit/mongoid/rad_miscellaneous.rb +0 -36
- data/lib/kit/mongoid/text_processor.rb +0 -44
- data/spec/mongoid/basic_spec.rb +0 -36
@@ -1,15 +0,0 @@
|
|
1
|
-
class Models::AttachmentUploader < Models::FileUploader
|
2
|
-
rad.extension :attachment_file_path, self do
|
3
|
-
define_method :file_path do
|
4
|
-
"#{rad.kit.fs_prefix}/#{model.item.id}"
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
version :icon do
|
9
|
-
process resize_to_fit: [50, 50]
|
10
|
-
end
|
11
|
-
|
12
|
-
version :thumb do
|
13
|
-
process resize_to_fit: [150, 150]
|
14
|
-
end
|
15
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'carrierwave/processing/mini_magick'
|
2
|
-
|
3
|
-
class Models::FileUploader < CarrierWave::Uploader::Base
|
4
|
-
include CarrierWave::MiniMagick
|
5
|
-
|
6
|
-
storage rad.config.fs_type
|
7
|
-
|
8
|
-
# def sanitize_regexp
|
9
|
-
# /[^[:word:]\.\-\+\s_]/i
|
10
|
-
# end
|
11
|
-
|
12
|
-
def file_path
|
13
|
-
"#{rad.config.fs_prefix}/system/#{model.class.model_name.underscore}/#{model.id}"
|
14
|
-
end
|
15
|
-
|
16
|
-
def store_dir
|
17
|
-
"#{root}#{file_path}"
|
18
|
-
end
|
19
|
-
|
20
|
-
def extension_white_list
|
21
|
-
[/.*/]
|
22
|
-
end
|
23
|
-
|
24
|
-
def cache_dir; rad.config.fs_cache_path end
|
25
|
-
def root; rad.config.fs_path end
|
26
|
-
end
|
data/lib/kit/models_after.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# use database config if provided
|
2
|
-
if rad.models.config
|
3
|
-
b = lambda do
|
4
|
-
Mongoid.configure do |config|
|
5
|
-
config.logger = rad.logger
|
6
|
-
end
|
7
|
-
Mongoid.from_hash rad.models.config
|
8
|
-
end
|
9
|
-
|
10
|
-
# hiding MongoDB connecting messages
|
11
|
-
rad.logger.respond_to?(:silence) ? rad.logger.silence(&b) : b.call
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
%w(
|
16
|
-
miscellaneous
|
17
|
-
role
|
18
|
-
authorized
|
19
|
-
authorized_object
|
20
|
-
file_uploader
|
21
|
-
attachments_uploader_helper
|
22
|
-
attachment_uploader
|
23
|
-
).each{|n| require "kit/models/#{n}"}
|
24
|
-
|
25
|
-
Mongoid::Document.class_eval do
|
26
|
-
include Mongoid::AttachmentsUploaderHelper
|
27
|
-
end
|
data/lib/kit/mongoid.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'mongoid_misc'
|
2
|
-
require 'carrierwave_ext'
|
3
|
-
require 'rad'
|
4
|
-
|
5
|
-
#
|
6
|
-
# Attribute protection
|
7
|
-
#
|
8
|
-
Mongoid::Document.included do
|
9
|
-
attr_protected :id, :_id, :_type, :created_at, :updated_at
|
10
|
-
end
|
11
|
-
|
12
|
-
module Models
|
13
|
-
end
|
14
|
-
|
15
|
-
%w(
|
16
|
-
text_processor
|
17
|
-
rad_miscellaneous
|
18
|
-
).each{|n| require "kit/mongoid/#{n}"}
|
19
|
-
|
20
|
-
(rad.extension(:mm_plugins){[]} + [Mongoid::RadMiscellaneous]).each do |plugin|
|
21
|
-
Mongoid::Document.include plugin
|
22
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
module Mongoid::RadMiscellaneous
|
2
|
-
extend ActiveSupport::Concern
|
3
|
-
|
4
|
-
delegate :t, to: I18n
|
5
|
-
|
6
|
-
def to_rson options = {}
|
7
|
-
with_errors = if options.include?('errors')
|
8
|
-
options.delete 'errors'
|
9
|
-
elsif options.include?(:errors)
|
10
|
-
options.delete :errors
|
11
|
-
else
|
12
|
-
true
|
13
|
-
end
|
14
|
-
|
15
|
-
# standard MongoMaper as_json conversion
|
16
|
-
hash = as_json(options)
|
17
|
-
|
18
|
-
# MongoMaper fix
|
19
|
-
hash['id'] = hash.delete('_id').to_s if hash.include? '_id'
|
20
|
-
|
21
|
-
# adding errors
|
22
|
-
if with_errors
|
23
|
-
errors = {}
|
24
|
-
errors.each do |name, list|
|
25
|
-
errors[name.to_s] = list
|
26
|
-
end
|
27
|
-
hash['errors'] = errors unless errors.empty?
|
28
|
-
end
|
29
|
-
|
30
|
-
hash
|
31
|
-
end
|
32
|
-
|
33
|
-
module ClassMethods
|
34
|
-
delegate :t, to: I18n
|
35
|
-
end
|
36
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module Mongoid::TextProcessor
|
2
|
-
extend ActiveSupport::Concern
|
3
|
-
|
4
|
-
module ClassMethods
|
5
|
-
def markup_field attr_name, opt = {}
|
6
|
-
attr_name = attr_name.to_s
|
7
|
-
opt = opt.to_openobject
|
8
|
-
original_attr_name = "original_#{attr_name}"
|
9
|
-
|
10
|
-
field original_attr_name, type: String, default: ''
|
11
|
-
field attr_name, type: String, protected: true, default: '' unless fields.include? attr_name
|
12
|
-
|
13
|
-
validates_presence_of attr_name, original_attr_name if opt.required?
|
14
|
-
|
15
|
-
alias_method "#{attr_name}_without_markup=", "#{attr_name}="
|
16
|
-
alias_method "#{original_attr_name}_without_markup=", "#{original_attr_name}="
|
17
|
-
|
18
|
-
define_method "#{attr_name}=" do |value|
|
19
|
-
send "#{original_attr_name}_without_markup=", value
|
20
|
-
send "#{attr_name}_without_markup=", value
|
21
|
-
end
|
22
|
-
|
23
|
-
define_method "#{original_attr_name}=" do |value|
|
24
|
-
send "#{original_attr_name}_without_markup=", value
|
25
|
-
send "#{attr_name}_without_markup=", TextUtils.markup(value)
|
26
|
-
end
|
27
|
-
|
28
|
-
define_method "#{attr_name}_as_text" do
|
29
|
-
value = send(attr_name)
|
30
|
-
return "" if value.blank?
|
31
|
-
Nokogiri::XML(value).content
|
32
|
-
end
|
33
|
-
|
34
|
-
ce_method_name = "copy_errors_for_#{attr_name}"
|
35
|
-
define_method ce_method_name do
|
36
|
-
if !errors.include?(original_attr_name) and errors.include?(attr_name)
|
37
|
-
errors.add original_attr_name, errors[attr_name]
|
38
|
-
end
|
39
|
-
end
|
40
|
-
after_validation ce_method_name
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
data/spec/mongoid/basic_spec.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Rad Mongoid basics" do
|
4
|
-
with_mongoid
|
5
|
-
|
6
|
-
after(:all){remove_constants :ToRsonTest}
|
7
|
-
|
8
|
-
it "to_rson" do
|
9
|
-
class ToRsonTest
|
10
|
-
include Mongoid::Document
|
11
|
-
|
12
|
-
field :name, type: String
|
13
|
-
field :text, type: String
|
14
|
-
validates_presence_of :name
|
15
|
-
end
|
16
|
-
ToRsonTest.delete_all
|
17
|
-
|
18
|
-
ToRsonTest.create! name: 'a'
|
19
|
-
ToRsonTest.create! name: 'b'
|
20
|
-
|
21
|
-
# model.to_rson
|
22
|
-
o = ToRsonTest.first
|
23
|
-
r = o.to_rson
|
24
|
-
r.delete 'id'
|
25
|
-
r.should == {"name" => "a"}
|
26
|
-
|
27
|
-
o.to_rson(only: :name).should == {"name" => "a"}
|
28
|
-
|
29
|
-
# collections.to_rson
|
30
|
-
r = ToRsonTest.all.to_rson
|
31
|
-
r.collect!{|h| h.delete('id'); h}
|
32
|
-
r.should == [{"name" => "a"}, {"name" => "b"}]
|
33
|
-
|
34
|
-
ToRsonTest.all.to_rson(only: :name).should == [{"name" => "a"}, {"name" => "b"}]
|
35
|
-
end
|
36
|
-
end
|