tinymce-rails 3.5.8.2 → 3.5.8.3
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/LICENSE +1 -1
- data/README.md +12 -8
- data/lib/tasks/tinymce-assets.rake +3 -1
- data/lib/tinymce/rails.rb +3 -1
- data/lib/tinymce/rails/asset_installer.rb +5 -6
- data/lib/tinymce/rails/configuration.rb +0 -16
- data/lib/tinymce/rails/configuration_file.rb +49 -0
- data/lib/tinymce/rails/helper.rb +7 -3
- data/lib/tinymce/rails/version.rb +1 -1
- metadata +3 -2
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,9 @@ Rails Integration for TinyMCE
|
|
3
3
|
|
4
4
|
The `tinymce-rails` gem integrates the [TinyMCE](http://www.tinymce.com/) editor with the Rails asset pipeline.
|
5
5
|
|
6
|
-
This gem is compatible with Rails 3.1.1 and higher
|
6
|
+
This gem is compatible with Rails 3.1.1 and higher (including Rails 4).
|
7
|
+
|
8
|
+
Support for TinyMCE 4 is currently available in the [tinymce-4 branch](https://github.com/spohlenz/tinymce-rails/tree/tinymce-4). For the time being, parallel versions of TinyMCE (3.5.x and 4.x) will be maintained. However TinyMCE 4 will eventually be promoted to the master branch.
|
7
9
|
|
8
10
|
[](https://travis-ci.org/spohlenz/tinymce-rails)
|
9
11
|
|
@@ -30,6 +32,8 @@ Be sure to add to the global group, not the `assets` group. Then run `bundle ins
|
|
30
32
|
- table
|
31
33
|
- fullscreen
|
32
34
|
|
35
|
+
The Rails server no longer needs to be restarted when this file is updated in development mode.
|
36
|
+
|
33
37
|
To define multiple configuration sets, follow this syntax (a default configuration must be specified):
|
34
38
|
|
35
39
|
default:
|
@@ -47,7 +51,7 @@ To define multiple configuration sets, follow this syntax (a default configurati
|
|
47
51
|
plugins:
|
48
52
|
- table
|
49
53
|
|
50
|
-
See the [TinyMCE Documentation](http://www.tinymce.com/wiki.php/
|
54
|
+
See the [TinyMCE 3 Documentation](http://www.tinymce.com/wiki.php/Configuration3x) for a full list of configuration options.
|
51
55
|
|
52
56
|
|
53
57
|
**3. Include the TinyMCE assets**
|
@@ -87,12 +91,6 @@ Alternate configurations defined in 'config/tinymce.yml' can be used with:
|
|
87
91
|
<%= tinymce :alternate %>
|
88
92
|
|
89
93
|
|
90
|
-
Language Packs
|
91
|
-
--------------
|
92
|
-
|
93
|
-
See the [tinymce-rails-langs](https://github.com/spohlenz/tinymce-rails-langs) gem for additional language packs for TinyMCE. The `tinymce` helper will use the current locale as the language if available, falling back to English if the core language files are missing.
|
94
|
-
|
95
|
-
|
96
94
|
Manual Initialization
|
97
95
|
---------------------
|
98
96
|
|
@@ -108,6 +106,12 @@ Using the `tinymce` helper and global configuration file is entirely optional. T
|
|
108
106
|
</script>
|
109
107
|
|
110
108
|
|
109
|
+
Language Packs
|
110
|
+
--------------
|
111
|
+
|
112
|
+
See the [tinymce-rails-langs](https://github.com/spohlenz/tinymce-rails-langs) gem for additional language packs for TinyMCE. The `tinymce` helper will use the current locale as the language if available, falling back to English if the core language files are missing.
|
113
|
+
|
114
|
+
|
111
115
|
Custom Plugins & Skins
|
112
116
|
----------------------
|
113
117
|
|
@@ -3,9 +3,11 @@ assets_task = Rake::Task.task_defined?('assets:precompile:primary') ? 'assets:pr
|
|
3
3
|
Rake::Task[assets_task].enhance do
|
4
4
|
require "tinymce/rails/asset_installer"
|
5
5
|
|
6
|
+
assets = Pathname.new(File.expand_path(File.dirname(__FILE__) + "/../../vendor/assets/javascripts/tinymce"))
|
7
|
+
|
6
8
|
config = Rails.application.config
|
7
9
|
target = File.join(Rails.public_path, config.assets.prefix)
|
8
10
|
manifest = config.assets.manifest
|
9
11
|
|
10
|
-
TinyMCE::Rails::AssetInstaller.new(target, manifest).install
|
12
|
+
TinyMCE::Rails::AssetInstaller.new(assets, target, manifest).install
|
11
13
|
end
|
data/lib/tinymce/rails.rb
CHANGED
@@ -3,10 +3,12 @@ module TinyMCE
|
|
3
3
|
require 'tinymce/rails/engine'
|
4
4
|
require 'tinymce/rails/version'
|
5
5
|
require "tinymce/rails/configuration"
|
6
|
+
require "tinymce/rails/configuration_file"
|
6
7
|
require "tinymce/rails/helper"
|
7
8
|
|
8
9
|
def self.configuration
|
9
|
-
@configuration ||=
|
10
|
+
@configuration ||= ConfigurationFile.new(::Rails.root.join("config/tinymce.yml"))
|
11
|
+
@configuration.respond_to?(:configuration) ? @configuration.configuration : @configuration
|
10
12
|
end
|
11
13
|
|
12
14
|
def self.configuration=(configuration)
|
@@ -3,9 +3,8 @@ require "tinymce/rails/asset_manifest"
|
|
3
3
|
module TinyMCE
|
4
4
|
module Rails
|
5
5
|
class AssetInstaller
|
6
|
-
|
7
|
-
|
8
|
-
def initialize(target, manifest_path)
|
6
|
+
def initialize(assets, target, manifest_path)
|
7
|
+
@assets = assets
|
9
8
|
@target = target
|
10
9
|
@manifest_path = manifest_path || target
|
11
10
|
end
|
@@ -34,7 +33,7 @@ module TinyMCE
|
|
34
33
|
end
|
35
34
|
|
36
35
|
def copy_assets
|
37
|
-
FileUtils.cp_r(
|
36
|
+
FileUtils.cp_r(@assets, @target, :preserve => true)
|
38
37
|
end
|
39
38
|
|
40
39
|
def append_to_manifest
|
@@ -44,11 +43,11 @@ module TinyMCE
|
|
44
43
|
end
|
45
44
|
|
46
45
|
def asset_files
|
47
|
-
Pathname.glob("#{
|
46
|
+
Pathname.glob("#{@assets}/**/*").select(&:file?)
|
48
47
|
end
|
49
48
|
|
50
49
|
def logical_path(file)
|
51
|
-
file.relative_path_from(
|
50
|
+
file.relative_path_from(@assets.parent).to_s
|
52
51
|
end
|
53
52
|
|
54
53
|
def move_asset(src, dest)
|
@@ -50,18 +50,6 @@ module TinyMCE::Rails
|
|
50
50
|
self.class.new(self.options.merge(options))
|
51
51
|
end
|
52
52
|
|
53
|
-
def self.load(filename)
|
54
|
-
return new_with_defaults if !File.exists?(filename)
|
55
|
-
|
56
|
-
options = load_yaml(filename)
|
57
|
-
|
58
|
-
if options.has_key?('default')
|
59
|
-
MultipleConfiguration.new(options)
|
60
|
-
else
|
61
|
-
new_with_defaults(options)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
53
|
# Default language falls back to English if current locale is not available.
|
66
54
|
def self.default_language
|
67
55
|
available_languages.include?(I18n.locale.to_s) ? I18n.locale.to_s : "en"
|
@@ -81,10 +69,6 @@ module TinyMCE::Rails
|
|
81
69
|
def self.assets
|
82
70
|
Rails.application.assets
|
83
71
|
end
|
84
|
-
|
85
|
-
def self.load_yaml(filename)
|
86
|
-
YAML::load(ERB.new(IO.read(filename)).result)
|
87
|
-
end
|
88
72
|
end
|
89
73
|
|
90
74
|
class MultipleConfiguration < ActiveSupport::HashWithIndifferentAccess
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module TinyMCE::Rails
|
2
|
+
class ConfigurationFile
|
3
|
+
attr_reader :path
|
4
|
+
|
5
|
+
def initialize(path)
|
6
|
+
@path = path
|
7
|
+
end
|
8
|
+
|
9
|
+
def configuration
|
10
|
+
@configuration = load_configuration if reload?
|
11
|
+
@configuration
|
12
|
+
end
|
13
|
+
|
14
|
+
def reload?
|
15
|
+
@configuration.nil? || (reloadable? && changed?)
|
16
|
+
end
|
17
|
+
|
18
|
+
def changed?
|
19
|
+
@last_loaded != last_updated
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def reloadable?
|
24
|
+
!::Rails.application.config.cache_classes
|
25
|
+
end
|
26
|
+
|
27
|
+
def last_updated
|
28
|
+
File.exists?(path) && File.mtime(path)
|
29
|
+
end
|
30
|
+
|
31
|
+
def load_configuration
|
32
|
+
@last_loaded = last_updated
|
33
|
+
|
34
|
+
return Configuration.new_with_defaults if !File.exists?(path)
|
35
|
+
|
36
|
+
options = load_yaml(path)
|
37
|
+
|
38
|
+
if options && options.has_key?('default')
|
39
|
+
MultipleConfiguration.new(options)
|
40
|
+
else
|
41
|
+
Configuration.new_with_defaults(options)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def load_yaml(path)
|
46
|
+
YAML::load(ERB.new(IO.read(path)).result)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/tinymce/rails/helper.rb
CHANGED
@@ -21,6 +21,12 @@ module TinyMCE::Rails
|
|
21
21
|
|
22
22
|
# Returns the JavaScript code required to initialize TinyMCE.
|
23
23
|
def tinymce_javascript(config=:default, options={})
|
24
|
+
"tinyMCE.init(#{tinymce_configuration(config, options).to_json});".html_safe
|
25
|
+
end
|
26
|
+
|
27
|
+
# Returns the TinyMCE configuration as a hash.
|
28
|
+
# It should be converted to JSON (via #to_json) for use within JavaScript.
|
29
|
+
def tinymce_configuration(config=:default, options={})
|
24
30
|
options, config = config, :default if config.is_a?(Hash)
|
25
31
|
options.stringify_keys!
|
26
32
|
|
@@ -30,9 +36,7 @@ module TinyMCE::Rails
|
|
30
36
|
base_configuration = base_configuration.fetch(config)
|
31
37
|
end
|
32
38
|
|
33
|
-
|
34
|
-
|
35
|
-
"tinyMCE.init(#{configuration.options_for_tinymce.to_json});".html_safe
|
39
|
+
base_configuration.merge(options).options_for_tinymce
|
36
40
|
end
|
37
41
|
|
38
42
|
# Includes TinyMCE javascript assets via a script tag.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tinymce-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.8.
|
4
|
+
version: 3.5.8.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -44,6 +44,7 @@ files:
|
|
44
44
|
- lib/tinymce/rails/asset_installer.rb
|
45
45
|
- lib/tinymce/rails/asset_manifest.rb
|
46
46
|
- lib/tinymce/rails/configuration.rb
|
47
|
+
- lib/tinymce/rails/configuration_file.rb
|
47
48
|
- lib/tinymce/rails/engine.rb
|
48
49
|
- lib/tinymce/rails/helper.rb
|
49
50
|
- lib/tinymce/rails/version.rb
|