card-mod-content 0.14.2 → 0.15.1
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 +4 -4
- data/data/real.yml +27 -0
- data/data/test.yml +32 -0
- data/lib/card/content/chunk/link.rb +0 -1
- data/lib/card/content/chunk/nest.rb +0 -2
- data/lib/card/content/chunk/uri.rb +17 -17
- data/set/abstract/01_code_content.rb +19 -0
- data/set/abstract/02_code_file.rb +32 -0
- data/set/abstract/read_only.rb +1 -1
- data/set/all/chunk.rb +12 -9
- metadata +10 -8
- data/db/migrate_core_cards/20201115133753_add_asset_file_card.rb +0 -7
- data/set/abstract/01_code_file.rb +0 -85
- data/set/abstract/vendor_code_file.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af70b2c7dd6325fddf41719756af50e5c495b579e5f07d8b6099aa97df929135
|
4
|
+
data.tar.gz: 478c8eb7b8df2e7a1482cbc31422c2c9f55b34c1e19e37343c0380405797cb25
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23920a9f1ce7783de6e6fc29a69235b2e04b5c3fafba390279e9e646c31095a7472513d55ca701aa8dd5b67d5efb3aa1a202a5474fb389e89da28327dcfe3f62
|
7
|
+
data.tar.gz: 9eb909a81cd2e2dd4eb38f14e6fd3d6d135882e3765b27ad9814f3a48e3f09c911d60fb7a7f060bb4a386f4560d50c3df61b8f4a9e0003b9278f0b26d68c07b0
|
data/data/real.yml
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
- :name: "*default"
|
2
|
+
:type: :setting
|
3
|
+
:codename: default
|
4
|
+
- :name: "*structure"
|
5
|
+
:type: :setting
|
6
|
+
:codename: structure
|
7
|
+
- :name:
|
8
|
+
- :all
|
9
|
+
- :default
|
10
|
+
|
11
|
+
- :name:
|
12
|
+
- :cardtype
|
13
|
+
- :type
|
14
|
+
- :structure
|
15
|
+
:content: |
|
16
|
+
{{+:description|content}}
|
17
|
+
{{_|add_button}}{{_|configure_button}}
|
18
|
+
{{+:type+:by_name|content}}
|
19
|
+
|
20
|
+
- :name:
|
21
|
+
- :cardtype
|
22
|
+
- :self
|
23
|
+
- :structure
|
24
|
+
:content: |-
|
25
|
+
{{+description|content}}
|
26
|
+
{{_|add_button}}{{_|configure_button}}\n
|
27
|
+
{{_|grouped_list}}\n"
|
data/data/test.yml
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
---
|
2
|
+
- :name: UserForm
|
3
|
+
:type: :cardtype
|
4
|
+
- :name: Book
|
5
|
+
:type: :cardtype
|
6
|
+
- :name: Author
|
7
|
+
:type: :cardtype
|
8
|
+
|
9
|
+
- :name:
|
10
|
+
- UserForm
|
11
|
+
- :type
|
12
|
+
- :structure
|
13
|
+
:type: :nest_list
|
14
|
+
:content: "{{+name}} {{+age}} {{+description}}"
|
15
|
+
- :name:
|
16
|
+
- Book
|
17
|
+
- :type
|
18
|
+
- :structure
|
19
|
+
:type: :nest_list
|
20
|
+
:content: by {{+author}}, design by {{+illustrator}}
|
21
|
+
|
22
|
+
- :name: Stam Broker
|
23
|
+
:type: Author
|
24
|
+
- :name: Darles Chickens
|
25
|
+
:type: Author
|
26
|
+
|
27
|
+
- :name: Iliad
|
28
|
+
:type: Book
|
29
|
+
- :name: Parry Hotter
|
30
|
+
:type: Book
|
31
|
+
- :name: 50 grades of shy
|
32
|
+
:type: Book
|
@@ -2,26 +2,26 @@
|
|
2
2
|
|
3
3
|
require "uri"
|
4
4
|
|
5
|
-
# This wiki chunk matches arbitrary URIs, using patterns from the Ruby URI
|
6
|
-
# modules.
|
7
|
-
# It parses out a variety of fields that could be used by formats to format
|
8
|
-
# the links in various ways (shortening domain names, hiding email addresses)
|
9
|
-
# It matches email addresses and host.com.au domains without schemes (http://)
|
10
|
-
# but adds these on as required.
|
11
|
-
#
|
12
|
-
# The heuristic used to match a URI is designed to err on the side of caution.
|
13
|
-
# That is, it is more likely to not autolink a URI than it is to accidently
|
14
|
-
# autolink something that is not a URI. The reason behind this is it is easier
|
15
|
-
# to force a URI link by prefixing 'http://' to it than it is to escape and
|
16
|
-
# incorrectly marked up non-URI.
|
17
|
-
#
|
18
|
-
# I'm using a part of the [ISO 3166-1 Standard][iso3166] for country name
|
19
|
-
# suffixes.
|
20
|
-
# The generic names are from www.bnoack.com/data/countrycode2.html)
|
21
|
-
# [iso3166]: http://geotags.com/iso3166/
|
22
5
|
class Card
|
23
6
|
class Content
|
24
7
|
module Chunk
|
8
|
+
# This wiki chunk matches arbitrary URIs, using patterns from the Ruby URI
|
9
|
+
# modules.
|
10
|
+
# It parses out a variety of fields that could be used by formats to format
|
11
|
+
# the links in various ways (shortening domain names, hiding email addresses)
|
12
|
+
# It matches email addresses and host.com.au domains without schemes (http://)
|
13
|
+
# but adds these on as required.
|
14
|
+
#
|
15
|
+
# The heuristic used to match a URI is designed to err on the side of caution.
|
16
|
+
# That is, it is more likely to not autolink a URI than it is to accidently
|
17
|
+
# autolink something that is not a URI. The reason behind this is it is easier
|
18
|
+
# to force a URI link by prefixing 'http://' to it than it is to escape and
|
19
|
+
# incorrectly marked up non-URI.
|
20
|
+
#
|
21
|
+
# I'm using a part of the [ISO 3166-1 Standard][iso3166] for country name
|
22
|
+
# suffixes.
|
23
|
+
# The generic names are from www.bnoack.com/data/countrycode2.html)
|
24
|
+
# [iso3166]: http://geotags.com/iso3166/
|
25
25
|
class Uri < Abstract
|
26
26
|
SCHEMES = %w[irc http https ftp ssh git sftp file ldap ldaps mailto].freeze
|
27
27
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
format :html do
|
2
|
+
view :input do
|
3
|
+
# Localize
|
4
|
+
"Content is stored in file and can't be edited."
|
5
|
+
end
|
6
|
+
|
7
|
+
view :bar_middle do
|
8
|
+
short_content
|
9
|
+
end
|
10
|
+
|
11
|
+
def short_content
|
12
|
+
icon_tag(:warning, class: "text-muted pe-2") +
|
13
|
+
wrap_with(:span, "file", class: "text-muted")
|
14
|
+
end
|
15
|
+
|
16
|
+
def standard_submit_button
|
17
|
+
multi_card_editor? ? super : ""
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
include_set Abstract::Sources
|
2
|
+
include_set Abstract::CodeContent
|
3
|
+
|
4
|
+
class << self
|
5
|
+
def included host_class
|
6
|
+
track_mod_name host_class, caller
|
7
|
+
end
|
8
|
+
|
9
|
+
def track_mod_name host_class, caller
|
10
|
+
host_class.mattr_accessor :file_content_mod_name
|
11
|
+
host_class.file_content_mod_name = Card::Set.mod_name(caller)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def source_paths
|
16
|
+
# OVERRIDE to use paths for content
|
17
|
+
end
|
18
|
+
|
19
|
+
def content
|
20
|
+
Array.wrap(source_paths).map do |path|
|
21
|
+
if (source_path = find_file path)
|
22
|
+
Rails.logger.debug "reading file: #{source_path}"
|
23
|
+
::File.read source_path
|
24
|
+
end
|
25
|
+
end.compact.join "\n"
|
26
|
+
end
|
27
|
+
|
28
|
+
format :html do
|
29
|
+
view :file_size do
|
30
|
+
"#{card.name}: #{number_to_human_size card.content.bytesize}"
|
31
|
+
end
|
32
|
+
end
|
data/set/abstract/read_only.rb
CHANGED
data/set/all/chunk.rb
CHANGED
@@ -124,21 +124,24 @@ format do
|
|
124
124
|
|
125
125
|
def explicit_edit_fields_config
|
126
126
|
edit_fields.map do |cardish, options|
|
127
|
-
|
128
|
-
options = normalized_edit_field_options options, Card::Name[field_mark]
|
129
|
-
[field_mark, options]
|
127
|
+
normalized_edit_field_config cardish, options
|
130
128
|
end
|
131
129
|
end
|
132
130
|
|
133
|
-
def
|
134
|
-
options ||=
|
135
|
-
|
131
|
+
def normalized_edit_field_config cardish, options={}
|
132
|
+
options ||= {}
|
133
|
+
field_mark = normalized_edit_field_mark cardish, options
|
134
|
+
options[:title] ||= Card::Name[field_mark]
|
135
|
+
[field_mark, options]
|
136
136
|
end
|
137
137
|
|
138
|
-
def normalized_edit_field_mark cardish, options
|
139
|
-
return cardish if
|
140
|
-
(options.is_a?(Hash) && options.delete(:absolute))
|
138
|
+
def normalized_edit_field_mark cardish, options={}
|
139
|
+
return cardish if options.delete(:absolute) || normalized_edit_field_mark?(cardish)
|
141
140
|
|
142
141
|
card.name.field cardish
|
143
142
|
end
|
143
|
+
|
144
|
+
def normalized_edit_field_mark? cardish
|
145
|
+
cardish.is_a?(Card) || (cardish.is_a?(String) && cardish.to_name.compound?)
|
146
|
+
end
|
144
147
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: card-mod-content
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-03-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: card
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.105.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1.
|
28
|
+
version: 1.105.1
|
29
29
|
description: ''
|
30
30
|
email:
|
31
31
|
- info@decko.org
|
@@ -33,7 +33,8 @@ executables: []
|
|
33
33
|
extensions: []
|
34
34
|
extra_rdoc_files: []
|
35
35
|
files:
|
36
|
-
-
|
36
|
+
- data/real.yml
|
37
|
+
- data/test.yml
|
37
38
|
- lib/card/content/chunk/escaped_literal.rb
|
38
39
|
- lib/card/content/chunk/link.rb
|
39
40
|
- lib/card/content/chunk/nest.rb
|
@@ -42,12 +43,12 @@ files:
|
|
42
43
|
- lib/card/content/chunk/uri.rb
|
43
44
|
- lib/card/content/chunk/view_stub.rb
|
44
45
|
- set/abstract/00_sources.rb
|
45
|
-
- set/abstract/
|
46
|
+
- set/abstract/01_code_content.rb
|
47
|
+
- set/abstract/02_code_file.rb
|
46
48
|
- set/abstract/haml_file.rb
|
47
49
|
- set/abstract/lock.rb
|
48
50
|
- set/abstract/read_only.rb
|
49
51
|
- set/abstract/templated_nests.rb
|
50
|
-
- set/abstract/vendor_code_file.rb
|
51
52
|
- set/all/chunk.rb
|
52
53
|
- set/all/contextual_content.rb
|
53
54
|
- set/all/templating.rb
|
@@ -65,6 +66,7 @@ metadata:
|
|
65
66
|
wiki_uri: https://decko.org
|
66
67
|
documentation_url: http://docs.decko.org/
|
67
68
|
card-mod: content
|
69
|
+
card-mod-group: gem-defaults
|
68
70
|
post_install_message:
|
69
71
|
rdoc_options: []
|
70
72
|
require_paths:
|
@@ -80,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
82
|
- !ruby/object:Gem::Version
|
81
83
|
version: '0'
|
82
84
|
requirements: []
|
83
|
-
rubygems_version: 3.
|
85
|
+
rubygems_version: 3.3.11
|
84
86
|
signing_key:
|
85
87
|
specification_version: 4
|
86
88
|
summary: card content handling
|
@@ -1,85 +0,0 @@
|
|
1
|
-
include_set Abstract::Sources
|
2
|
-
|
3
|
-
class << self
|
4
|
-
def included host_class
|
5
|
-
track_mod_name host_class, caller
|
6
|
-
end
|
7
|
-
|
8
|
-
def track_mod_name host_class, caller
|
9
|
-
host_class.mattr_accessor :file_content_mod_name
|
10
|
-
host_class.file_content_mod_name = Card::Set.mod_name(caller)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
# FIXME: these should abstracted and configured on the types
|
15
|
-
# (same codes for `rake card:create:codefile`)
|
16
|
-
|
17
|
-
# @return [Array<String>, String] the name of file(s) to be loaded
|
18
|
-
def source_files
|
19
|
-
case type_id
|
20
|
-
when CoffeeScriptID then "#{codename}.js.coffee"
|
21
|
-
when JavaScriptID then "#{codename}.js"
|
22
|
-
when CssID then "#{codename}.css"
|
23
|
-
when ScssID then "#{codename}.scss"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def source_dir
|
28
|
-
case type_id
|
29
|
-
when CoffeeScriptID, JavaScriptID then "lib/javascript"
|
30
|
-
when CssID, ScssID then "lib/stylesheets"
|
31
|
-
else
|
32
|
-
"lib"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def mod_path
|
37
|
-
modname = file_content_mod_name
|
38
|
-
if (match = modname.match(/^card-mod-(\w*)/))
|
39
|
-
modname = match[1]
|
40
|
-
end
|
41
|
-
Cardio::Mod.dirs.path modname
|
42
|
-
end
|
43
|
-
|
44
|
-
def source_paths
|
45
|
-
Array.wrap(source_files).map do |filename|
|
46
|
-
::File.join mod_path, source_dir, filename
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def content
|
51
|
-
Array.wrap(source_paths).map do |path|
|
52
|
-
if (source_path = find_file path)
|
53
|
-
Rails.logger.debug "reading file: #{source_path}"
|
54
|
-
::File.read source_path
|
55
|
-
end
|
56
|
-
end.compact.join "\n"
|
57
|
-
end
|
58
|
-
|
59
|
-
format :html do
|
60
|
-
view :input do
|
61
|
-
# Localize
|
62
|
-
"Content is stored in file and can't be edited."
|
63
|
-
end
|
64
|
-
|
65
|
-
view :file_size do
|
66
|
-
"#{card.name}: #{number_to_human_size card.content.bytesize}"
|
67
|
-
end
|
68
|
-
|
69
|
-
def short_content
|
70
|
-
fa_icon("exclamation-circle", class: "text-muted pr-2") +
|
71
|
-
wrap_with(:span, "file", class: "text-muted")
|
72
|
-
end
|
73
|
-
|
74
|
-
def standard_submit_button
|
75
|
-
multi_card_editor? ? super : ""
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def coffee_files files
|
80
|
-
files.map { |f| "script_#{f}.js.coffee" }
|
81
|
-
end
|
82
|
-
|
83
|
-
def scss_files files
|
84
|
-
files.map { |f| "style_#{f}.scss" }
|
85
|
-
end
|