inverter 0.3.2 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -1
  3. data/Gemfile +5 -0
  4. data/Gemfile.lock +202 -0
  5. data/README.md +1 -1
  6. data/Rakefile +16 -2
  7. data/app/assets/javascripts/{input-inverter-image.coffee → inputs/inverter-image.coffee} +8 -3
  8. data/app/assets/javascripts/{input-inverter-link.coffee → inputs/inverter-link.coffee} +35 -11
  9. data/app/assets/javascripts/{input-inverter-version.coffee → inputs/inverter-version.coffee} +1 -1
  10. data/app/assets/javascripts/{input-inverter.coffee → inputs/inverter.coffee} +0 -0
  11. data/app/assets/javascripts/inverter.coffee +4 -4
  12. data/app/assets/stylesheets/inverter.scss +11 -0
  13. data/inverter.gemspec +17 -5
  14. data/lib/inverter.rb +2 -0
  15. data/lib/inverter/concerns/inverter.rb +26 -42
  16. data/lib/inverter/controller_helper.rb +8 -2
  17. data/lib/inverter/middleware.rb +0 -4
  18. data/lib/inverter/object.rb +5 -0
  19. data/lib/inverter/parser.rb +8 -3
  20. data/lib/inverter/tags.rb +52 -0
  21. data/lib/inverter/template_renderer_helper.rb +9 -9
  22. data/lib/inverter/version.rb +1 -1
  23. data/lib/tasks/inverter.rake +3 -7
  24. data/test/controllers/.keep +0 -0
  25. data/test/fixtures/.keep +0 -0
  26. data/test/helpers/template_helper.rb +9 -0
  27. data/test/integration/meta_tags_test.rb +13 -0
  28. data/test/integration/sync_test.rb +96 -0
  29. data/test/mailers/.keep +0 -0
  30. data/test/models/parser_test.rb +31 -0
  31. data/test/models/renderer_test.rb +15 -0
  32. data/test/rails_app/Rakefile +6 -0
  33. data/test/rails_app/app/assets/images/.keep +0 -0
  34. data/test/rails_app/app/assets/javascripts/application.js +0 -0
  35. data/test/rails_app/app/assets/stylesheets/application.css +15 -0
  36. data/test/rails_app/app/controllers/application_controller.rb +5 -0
  37. data/test/rails_app/app/controllers/concerns/.keep +0 -0
  38. data/test/rails_app/app/controllers/meta_tags_controller.rb +2 -0
  39. data/test/rails_app/app/controllers/pages_controller.rb +2 -0
  40. data/test/rails_app/app/helpers/application_helper.rb +2 -0
  41. data/test/rails_app/app/mailers/.keep +0 -0
  42. data/test/rails_app/app/models/concerns/.keep +0 -0
  43. data/test/rails_app/app/models/page.rb +19 -0
  44. data/test/rails_app/app/views/layouts/application.html.erb +14 -0
  45. data/test/rails_app/app/views/meta_tags/index.html.erb +5 -0
  46. data/test/rails_app/bin/bundle +3 -0
  47. data/test/rails_app/bin/rails +8 -0
  48. data/test/rails_app/bin/rake +8 -0
  49. data/test/rails_app/bin/setup +29 -0
  50. data/test/rails_app/bin/spring +15 -0
  51. data/test/rails_app/config.ru +4 -0
  52. data/test/rails_app/config/application.rb +31 -0
  53. data/test/rails_app/config/boot.rb +2 -0
  54. data/test/rails_app/config/environment.rb +5 -0
  55. data/test/rails_app/config/environments/development.rb +38 -0
  56. data/test/rails_app/config/environments/production.rb +76 -0
  57. data/test/rails_app/config/environments/test.rb +42 -0
  58. data/test/rails_app/config/initializers/assets.rb +11 -0
  59. data/test/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  60. data/test/rails_app/config/initializers/cookies_serializer.rb +3 -0
  61. data/test/rails_app/config/initializers/filter_parameter_logging.rb +4 -0
  62. data/test/rails_app/config/initializers/inflections.rb +16 -0
  63. data/test/rails_app/config/initializers/inverter.rb +7 -0
  64. data/test/rails_app/config/initializers/mime_types.rb +4 -0
  65. data/test/rails_app/config/initializers/session_store.rb +3 -0
  66. data/test/rails_app/config/initializers/wrap_parameters.rb +9 -0
  67. data/test/rails_app/config/locales/en.yml +23 -0
  68. data/test/rails_app/config/mongoid.yml +9 -0
  69. data/test/rails_app/config/routes.rb +5 -0
  70. data/test/rails_app/config/secrets.yml +22 -0
  71. data/test/rails_app/db/seeds.rb +7 -0
  72. data/test/rails_app/lib/assets/.keep +0 -0
  73. data/test/rails_app/lib/tasks/.keep +0 -0
  74. data/test/rails_app/public/404.html +67 -0
  75. data/test/rails_app/public/422.html +67 -0
  76. data/test/rails_app/public/500.html +66 -0
  77. data/test/rails_app/public/favicon.ico +0 -0
  78. data/test/rails_app/public/robots.txt +5 -0
  79. data/test/rails_app/vendor/assets/javascripts/.keep +0 -0
  80. data/test/rails_app/vendor/assets/stylesheets/.keep +0 -0
  81. data/test/test_helper.rb +16 -0
  82. metadata +197 -8
  83. data/app/assets/stylesheets/_inverter.scss +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a12fcc4aa0c6147bbcc747c703bc98547dba6765
4
- data.tar.gz: de490871d8ec0d0030b0a3028d9055cb1b587b80
3
+ metadata.gz: 8889aebd44139a8bbb71705fbdb5f7bbc3b61263
4
+ data.tar.gz: 159e1c25527168c21c7fe2e6d392ff6d973b4168
5
5
  SHA512:
6
- metadata.gz: 166ec4a8bcac10ee30dfcfce766c2f0aa521f1712344f5a9b9a76cb3ee761cf645d56eec16393a41e19beabd0df9f482974e75fbd0e4078500cee44c3d46da3a
7
- data.tar.gz: 9b1870192eaa8a9b1dec2ecb394f03505a71b98350a25685e8ec575348cb5435b09e87ab2a0bbb4f74af603bb9ec618d68068601c9a4bfcfba326d1071691275
6
+ metadata.gz: 8640c9db7899e299edf6c992c15cfffd4caeb2f26a1f74f954fc3c6591c7b8c30ff227f0d7451d9fa85ee187a40b99bcf35bce0710fdf9bec75cc774cadce99f
7
+ data.tar.gz: a2a7f93099c40dfc998e174de12b25407a55eb7ed1bf572a8549b16706e81363b8f6b07cd4c81e809a8d6b539610520d63b570cb537cdb1ba9d8ed153f141cab
data/.gitignore CHANGED
@@ -1 +1,7 @@
1
- .DS_Store
1
+ .DS_Store
2
+
3
+ test/rails_app/tmp
4
+ test/rails_app/log
5
+ test/rails_app/app/views/pages
6
+ log
7
+ pkg/
data/Gemfile CHANGED
@@ -1,3 +1,8 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gemspec
4
+
5
+ gem 'rails', '4.2.0'
6
+ gem 'coffee-rails', '~> 4.1.0'
7
+ gem 'minitest-rails-capybara'
8
+ gem 'capybara-webkit'
data/Gemfile.lock ADDED
@@ -0,0 +1,202 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ inverter (0.4.2)
5
+ ants (>= 0.1.4)
6
+ awesome_print (>= 1.6.1)
7
+ meta-tags (>= 2.0)
8
+ mongoid-history (>= 0.4.7)
9
+ mongoid-slug (>= 4.0.0)
10
+ redcarpet (>= 3.2.3)
11
+ render_anywhere (>= 0.0.10)
12
+
13
+ GEM
14
+ remote: http://rubygems.org/
15
+ specs:
16
+ actionmailer (4.2.0)
17
+ actionpack (= 4.2.0)
18
+ actionview (= 4.2.0)
19
+ activejob (= 4.2.0)
20
+ mail (~> 2.5, >= 2.5.4)
21
+ rails-dom-testing (~> 1.0, >= 1.0.5)
22
+ actionpack (4.2.0)
23
+ actionview (= 4.2.0)
24
+ activesupport (= 4.2.0)
25
+ rack (~> 1.6.0)
26
+ rack-test (~> 0.6.2)
27
+ rails-dom-testing (~> 1.0, >= 1.0.5)
28
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
29
+ actionview (4.2.0)
30
+ activesupport (= 4.2.0)
31
+ builder (~> 3.1)
32
+ erubis (~> 2.7.0)
33
+ rails-dom-testing (~> 1.0, >= 1.0.5)
34
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
35
+ activejob (4.2.0)
36
+ activesupport (= 4.2.0)
37
+ globalid (>= 0.3.0)
38
+ activemodel (4.2.0)
39
+ activesupport (= 4.2.0)
40
+ builder (~> 3.1)
41
+ activerecord (4.2.0)
42
+ activemodel (= 4.2.0)
43
+ activesupport (= 4.2.0)
44
+ arel (~> 6.0)
45
+ activesupport (4.2.0)
46
+ i18n (~> 0.7)
47
+ json (~> 1.7, >= 1.7.7)
48
+ minitest (~> 5.1)
49
+ thread_safe (~> 0.3, >= 0.3.4)
50
+ tzinfo (~> 1.1)
51
+ ansi (1.5.0)
52
+ ants (0.1.4)
53
+ mongoid (>= 4.0)
54
+ mongoid-slug (>= 4.0.0)
55
+ arel (6.0.0)
56
+ awesome_print (1.6.1)
57
+ bson (3.1.2)
58
+ builder (3.2.2)
59
+ capybara (2.4.4)
60
+ mime-types (>= 1.16)
61
+ nokogiri (>= 1.3.3)
62
+ rack (>= 1.0.0)
63
+ rack-test (>= 0.5.4)
64
+ xpath (~> 2.0)
65
+ capybara-webkit (1.4.1)
66
+ capybara (>= 2.3.0, < 2.5.0)
67
+ json
68
+ coffee-rails (4.1.0)
69
+ coffee-script (>= 2.2.0)
70
+ railties (>= 4.0.0, < 5.0)
71
+ coffee-script (2.4.1)
72
+ coffee-script-source
73
+ execjs
74
+ coffee-script-source (1.9.1.1)
75
+ connection_pool (2.2.0)
76
+ database_cleaner (1.4.1)
77
+ easy_diff (0.0.4)
78
+ erubis (2.7.0)
79
+ execjs (2.5.2)
80
+ factory_girl (4.5.0)
81
+ activesupport (>= 3.0.0)
82
+ factory_girl_rails (4.5.0)
83
+ factory_girl (~> 4.5.0)
84
+ railties (>= 3.0.0)
85
+ globalid (0.3.5)
86
+ activesupport (>= 4.1.0)
87
+ i18n (0.7.0)
88
+ json (1.8.2)
89
+ loofah (2.0.2)
90
+ nokogiri (>= 1.5.9)
91
+ mail (2.6.3)
92
+ mime-types (>= 1.16, < 3)
93
+ meta-tags (2.0.0)
94
+ actionpack (>= 3.0.0)
95
+ mime-types (2.6.1)
96
+ mini_portile (0.6.2)
97
+ minitest (5.7.0)
98
+ minitest-capybara (0.7.1)
99
+ capybara (~> 2.2)
100
+ minitest (~> 5.0)
101
+ rake
102
+ minitest-focus (1.1.1)
103
+ minitest (>= 4, < 6)
104
+ minitest-metadata (0.5.3)
105
+ minitest (>= 4.7, < 6.0)
106
+ minitest-rails (2.2.0)
107
+ minitest (~> 5.7)
108
+ railties (~> 4.1)
109
+ minitest-rails-capybara (2.1.1)
110
+ capybara (~> 2.0)
111
+ minitest-capybara (~> 0.7.0)
112
+ minitest-metadata (~> 0.5.0)
113
+ minitest-rails (~> 2.1)
114
+ minitest-reporters (1.0.16)
115
+ ansi
116
+ builder
117
+ minitest (>= 5.0)
118
+ ruby-progressbar
119
+ mongoid (4.0.2)
120
+ activemodel (~> 4.0)
121
+ moped (~> 2.0.0)
122
+ origin (~> 2.1)
123
+ tzinfo (>= 0.3.37)
124
+ mongoid-history (0.4.7)
125
+ activesupport
126
+ easy_diff
127
+ mongoid (>= 3.0)
128
+ mongoid-slug (4.0.0)
129
+ mongoid (>= 3.0)
130
+ stringex (~> 2.0)
131
+ moped (2.0.6)
132
+ bson (~> 3.0)
133
+ connection_pool (~> 2.0)
134
+ optionable (~> 0.2.0)
135
+ nokogiri (1.6.6.2)
136
+ mini_portile (~> 0.6.0)
137
+ optionable (0.2.0)
138
+ origin (2.1.1)
139
+ rack (1.6.1)
140
+ rack-test (0.6.3)
141
+ rack (>= 1.0)
142
+ rails (4.2.0)
143
+ actionmailer (= 4.2.0)
144
+ actionpack (= 4.2.0)
145
+ actionview (= 4.2.0)
146
+ activejob (= 4.2.0)
147
+ activemodel (= 4.2.0)
148
+ activerecord (= 4.2.0)
149
+ activesupport (= 4.2.0)
150
+ bundler (>= 1.3.0, < 2.0)
151
+ railties (= 4.2.0)
152
+ sprockets-rails
153
+ rails-deprecated_sanitizer (1.0.3)
154
+ activesupport (>= 4.2.0.alpha)
155
+ rails-dom-testing (1.0.6)
156
+ activesupport (>= 4.2.0.beta, < 5.0)
157
+ nokogiri (~> 1.6.0)
158
+ rails-deprecated_sanitizer (>= 1.0.1)
159
+ rails-html-sanitizer (1.0.2)
160
+ loofah (~> 2.0)
161
+ railties (4.2.0)
162
+ actionpack (= 4.2.0)
163
+ activesupport (= 4.2.0)
164
+ rake (>= 0.8.7)
165
+ thor (>= 0.18.1, < 2.0)
166
+ rake (10.4.2)
167
+ redcarpet (3.3.2)
168
+ render_anywhere (0.0.11)
169
+ rails (>= 3.0.7)
170
+ ruby-progressbar (1.7.5)
171
+ sprockets (3.1.0)
172
+ rack (~> 1.0)
173
+ sprockets-rails (2.3.1)
174
+ actionpack (>= 3.0)
175
+ activesupport (>= 3.0)
176
+ sprockets (>= 2.8, < 4.0)
177
+ stringex (2.5.2)
178
+ thor (0.19.1)
179
+ thread_safe (0.3.5)
180
+ tzinfo (1.2.2)
181
+ thread_safe (~> 0.1)
182
+ xpath (2.0.0)
183
+ nokogiri (~> 1.3)
184
+
185
+ PLATFORMS
186
+ ruby
187
+
188
+ DEPENDENCIES
189
+ bundler (~> 1.9)
190
+ capybara-webkit
191
+ coffee-rails (~> 4.1.0)
192
+ database_cleaner
193
+ factory_girl_rails
194
+ inverter!
195
+ minitest-focus
196
+ minitest-rails-capybara
197
+ minitest-reporters
198
+ rails (= 4.2.0)
199
+ rake (~> 10.0)
200
+
201
+ BUNDLED WITH
202
+ 1.10.4
data/README.md CHANGED
@@ -36,6 +36,7 @@ class Page
36
36
  include Mongoid::Document
37
37
  include Mongoid::Timestamps
38
38
  include Mongoid::Inverter
39
+ include Ants::Id
39
40
  end
40
41
  ```
41
42
 
@@ -44,7 +45,6 @@ Setup admin page controller configuration ```controllers/admin/pages_controller.
44
45
  ```ruby
45
46
  class Admin::PagesController < Admin::BaseController
46
47
  mongosteen
47
- json_config({ methods: [ :list_item_title, :version_options ])
48
48
  end
49
49
  ```
50
50
 
data/Rakefile CHANGED
@@ -1,3 +1,17 @@
1
1
  # encoding: utf-8
2
- require "rubygems"
3
- require "bundler"
2
+ require 'rubygems'
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
+ require 'rdoc/task'
6
+
7
+ desc 'Default: run tests for all ORMs.'
8
+ task default: :test
9
+
10
+ desc 'Run Inverter unit tests.'
11
+ Rake::TestTask.new(:test) do |t|
12
+ t.libs << 'lib'
13
+ t.libs << 'test'
14
+ t.pattern = 'test/**/*_test.rb'
15
+ t.verbose = true
16
+ t.warning = false
17
+ end
@@ -24,8 +24,10 @@ class @InputInverterImage extends InputString
24
24
  @$el.addClass('input-loft-image')
25
25
  @$el.addClass('has-value')
26
26
 
27
- @$input =$ "<input type='hidden' name='#{ @name }' value='#{ @_safe_value() }' />"
27
+ @$input =$ "<input type='hidden' name='#{ @name }' value='' />"
28
28
  @$el.append @$input
29
+ @$input.val(@value)
30
+
29
31
 
30
32
  @_add_image()
31
33
  @_add_choose_button()
@@ -83,8 +85,11 @@ class @InputInverterImage extends InputString
83
85
 
84
86
 
85
87
  _add_choose_button: ->
86
- @$chooseBtn =$ "<a href='#' class='choose'></a><br/>"
87
- @$el.append @$chooseBtn
88
+ @$actions =$ "<span class='input-actions'></span>"
89
+ @$label.append @$actions
90
+
91
+ @$chooseBtn =$ "<a href='#' class='choose'>Choose or upload a file</a>"
92
+ @$actions.append @$chooseBtn
88
93
 
89
94
  @_update_choose_button_title()
90
95
 
@@ -14,23 +14,25 @@ class @InputInverterLink extends InputString
14
14
 
15
15
  # PRIVATE ===============================================
16
16
 
17
+ _has_empty_value: ->
18
+ return ($(@value).attr('href') == '' && $(@value).html() == '')
19
+
20
+
17
21
  _normalize_value: ->
18
22
  if ! (@value.indexOf('<a') > -1)
19
23
  @value = "<a title='' href=''></a>"
20
24
 
21
25
 
22
26
  _add_input: ->
23
- @_normalize_value()
24
-
25
- @$el.addClass('input-loft-image')
26
- @$el.addClass('has-value')
27
-
28
- @$input =$ "<input type='hidden' name='#{ @name }' value='#{ @_safe_value() }' />"
27
+ @$input =$ "<input type='hidden' name='#{ @name }' value='' />"
29
28
  @$el.append @$input
29
+ @$input.val(@value)
30
+
31
+ @_normalize_value()
30
32
 
31
33
  @_add_title()
32
34
  @_add_url()
33
- @_add_choose_button()
35
+ @_add_actions()
34
36
 
35
37
 
36
38
  _update_value: (url, title) ->
@@ -67,9 +69,17 @@ class @InputInverterLink extends InputString
67
69
  @_update_value(newUrl, @_title())
68
70
 
69
71
 
72
+ _add_actions: ->
73
+ @$actions =$ "<span class='input-actions'></span>"
74
+ @$label.append @$actions
75
+
76
+ @_add_choose_button()
77
+ @_add_remove_button()
78
+
79
+
70
80
  _add_choose_button: ->
71
81
  @$chooseBtn =$ "<a href='#' class='choose'>Choose or upload a file</a>"
72
- @$el.append @$chooseBtn
82
+ @$actions.append @$chooseBtn
73
83
 
74
84
  @$chooseBtn.on 'click', (e) =>
75
85
  e.preventDefault()
@@ -79,17 +89,31 @@ class @InputInverterLink extends InputString
79
89
  @_update_value(url, title)
80
90
 
81
91
 
92
+ _add_remove_button: ->
93
+ @$removeBtn =$ "<a href='#' class='remove'>Remove</a>"
94
+ @$actions.append @$removeBtn
95
+
96
+ @$removeBtn.on 'click', (e) =>
97
+ e.preventDefault()
98
+ @_update_value('', '')
99
+
100
+
82
101
  # PUBLIC ================================================
83
102
 
84
103
  updateValue: (@value) ->
85
104
  @_normalize_value()
86
105
 
87
- @$input.val(@value)
88
- @$input.trigger('change')
89
-
90
106
  @$titleInput.val(@_title())
91
107
  @$urlInput.val(@_url())
92
108
 
109
+ if @_has_empty_value()
110
+ @$input.val('')
111
+
112
+ else
113
+ @$input.val(@value)
114
+
115
+ @$input.trigger('change')
116
+
93
117
 
94
118
  chr.formInputs['inverter-link'] = InputInverterLink
95
119
 
@@ -12,7 +12,7 @@
12
12
  class @InputInverterVersion extends InputSelect
13
13
 
14
14
  _create_el: ->
15
- @config.optionsHashFieldName = 'version_options'
15
+ @config.optionsHashFieldName = '_document_versions'
16
16
  @config.ignoreOnSubmission = true
17
17
  @config.default = 0
18
18
  @url = "#{ @config.path }/#{ @object._id }.json"
@@ -1,7 +1,7 @@
1
- #= require ./input-inverter
2
- #= require ./input-inverter-link
3
- #= require ./input-inverter-image
4
- #= require ./input-inverter-version
1
+ #= require ./inputs/inverter
2
+ #= require ./inputs/inverter-link
3
+ #= require ./inputs/inverter-image
4
+ #= require ./inputs/inverter-version
5
5
 
6
6
 
7
7
 
@@ -0,0 +1,11 @@
1
+ //
2
+ // Styles for Inverter Character CMS plugin, this should be included in
3
+ // admin.scss (default)
4
+ //
5
+
6
+ .view.has-unsaved-changes .input-inverter-version .error-message:after { content: 'You have unsaved changes.'; }
7
+ .view.has-unsaved-changes .input-inverter-version select { opacity: .25; }
8
+
9
+
10
+
11
+
data/inverter.gemspec CHANGED
@@ -23,11 +23,23 @@ pulled from databased automatically.
23
23
  s.files = `git ls-files`.split("\n")
24
24
  s.require_paths = ['lib']
25
25
 
26
- s.add_dependency("render_anywhere", ">= 0.0.10")
27
- s.add_dependency("meta-tags", ">= 2.0")
28
- s.add_dependency("mongoid-history", ">= 0.4.7")
29
- s.add_dependency("mongoid-slug", ">= 4.0.0")
30
- s.add_dependency("redcarpet", ">= 3.2.3")
26
+ s.add_dependency('ants', '>= 0.1.4')
27
+ s.add_dependency('render_anywhere', '>= 0.0.10')
28
+ s.add_dependency('meta-tags', '>= 2.0')
29
+ s.add_dependency('mongoid-history', '>= 0.4.7')
30
+ s.add_dependency('mongoid-slug', '>= 4.0.0')
31
+ s.add_dependency('redcarpet', '>= 3.2.3')
32
+ s.add_dependency('awesome_print', '>= 1.6.1')
33
+
34
+ s.add_development_dependency 'bundler', '~> 1.9'
35
+ s.add_development_dependency 'rake', '~> 10.0'
36
+
37
+ # automated tests
38
+ s.add_development_dependency 'rails', '~> 4.1.2'
39
+ s.add_development_dependency 'database_cleaner'
40
+ s.add_development_dependency 'factory_girl_rails'
41
+ s.add_development_dependency 'minitest-reporters'
42
+ s.add_development_dependency 'minitest-focus'
31
43
  end
32
44
 
33
45