tags are double-mustached now
Oleg
committed Nov 01, 2010
commit 210db58f4f1cfdf50590528e215188a584ca4cf2
Showing 33
changed files with
155 additions
and 164 deletions
README.md
+18
-26
| @@ | @@ -9,13 +9,6 @@ This CMS also allows high level of integration. You can easily use page content |
| Installation | |
| ------------ | |
| - | |
| - | ### Stand-alone |
| - | TODO: Need to create some sort of setup, so you can simply run: |
| - | |
| - | $ comfortable_mexican_sofa my_new_app |
| - | |
| - | ### Engine |
| Add gem definition to your Gemfile: | |
| config.gem 'comfortable_mexican_sofa' | |
| @@ | @@ -39,7 +32,6 @@ At this point you should have database structure created, some assets copied to |
| Usage | |
| ----- | |
| - | |
| Now you should be able to navigate to http://yoursite/cms-admin | |
| ### Step 1: Create Site | |
| @@ | @@ -51,46 +43,46 @@ Before creating pages and populating them with content we need to create a layou |
| <html> | |
| <body> | |
| <h1>My Awesome Site</h1> | |
| - | { cms:page:content } |
| + | {{ cms:page:content }} |
| </body> | |
| </html> | |
| - | So there's your layout and the `{cms:page:content}` defines a place where renderable `content` will go. There's just a handful of tags that you can use. |
| + | So there's your layout and the `{{cms:page:content}}` defines a place where renderable `content` will go. There's just a handful of tags that you can use. |
| #### Page Blocks | |
| pieces of content that will be output on the page: | |
| - | { cms:page:some_label:text } # will render a text area during page creation |
| - | # alternatively you may use: { cms:page:some_label } |
| - | { cms:page:some_label:string } # will render a text field during page creation |
| - | { cms:page:some_label:datetime } # datetime select widget |
| - | { cms:page:some_label:integer } # a number field |
| + | {{ cms:page:some_label:text }} # will render a text area during page creation |
| + | # alternatively you may use: {{ cms:page:some_label }} |
| + | {{ cms:page:some_label:string }} # will render a text field during page creation |
| + | {{ cms:page:some_label:datetime }} # datetime select widget |
| + | {{ cms:page:some_label:integer }} # a number field |
| #### Page Fields | |
| pieces of content that are not rendered. They are useful for hidden values you want to use inside your app. `@cms_page` instance variable is available when you need to access field values. | |
| - | { cms:field:some_label:text } # text area for the page creation form</dd> |
| - | { cms:field:some_label:string } # same as { cms:field:some_label }, this is a text field |
| - | { cms:field:some_label:datetime } # datetime |
| - | { cms:field:some_label:integer } # a number field |
| + | {{ cms:field:some_label:text }} # text area for the page creation form |
| + | {{ cms:field:some_label:string }} # same as {{ cms:field:some_label }}, this is a text field |
| + | {{ cms:field:some_label:datetime }} # datetime |
| + | {{ cms:field:some_label:integer }} # a number field |
| #### Snippets | |
| bits of reusable content that can be used in pages and layouts | |
| - | { cms:snippet:snippet_slug } |
| + | {{ cms:snippet:snippet_slug }} |
| #### Helpers | |
| are tags that map to your view helpers methods | |
| - | { cms:helper:method_name } # gets translated to <%= method_name( ) %> |
| - | { cms:helper:method_name:x:y:z } # gets translated to <%= method_name('x', 'y', 'z') %> |
| + | {{ cms:helper:method_name }} # gets translated to <%= method_name( ) %> |
| + | {{ cms:helper:method_name:x:y:z }} # gets translated to <%= method_name('x', 'y', 'z') %> |
| #### Partials | |
| are exactly that. You don't want to do IRB inside CMS so there's a handy tag: | |
| - | |
| - | { cms:partial:path/to/partial } # gets translated to <%= render :partial => 'path/to/partial' %> |
| - | { cms:partial:path/to/partial:x:y } # gets translated to <%= render :partial => 'path/to/partial', |
| - | # :locals => { :param_1 => 'x', :param_2 => 'y'} %> |
| + | |
| + | {{ cms:partial:path/to/partial }} # gets translated to <%= render :partial => 'path/to/partial' %> |
| + | {{ cms:partial:path/to/partial:x:y }} # gets translated to <%= render :partial => 'path/to/partial', |
| + | # :locals => { :param_1 => 'x', :param_2 => 'y'} %> |
| You don't have to define entire html layout, however. You can simply re-use your application one. Page content will be yielded into it like any normal view. | |
comfortable_mexican_sofa/cms_tag.rb b/lib/comfortable_mexican_sofa/cms_tag.rb
+3
-3
| @@ | @@ -6,7 +6,7 @@ |
| # end | |
| module CmsTag | |
| - | TOKENIZER_REGEX = /(\{\s*cms:.*?\})|((?:[^\{]|\{(?!\s*cms:.*?\}))+)/ |
| + | TOKENIZER_REGEX = /(\{\{\s*cms:.*?\}\})|((?:[^\{\{]|\{\{(?!\s*cms:.*?\}\}))+)/ |
| attr_accessor :params, | |
| :parent | |
| @@ | @@ -14,9 +14,9 @@ module CmsTag |
| module ClassMethods | |
| # Regex that is used to match tags in the content | |
| # Example: | |
| - | # /\{\s*?cms:page:(\w+)\}/ |
| + | # /\{\{\s*?cms:page:(\w+)\}\}/ |
| # will match tags like these: | |
| - | # {cms:page:my_label} |
| + | # {{cms:page:my_label}} |
| def regex_tag_signature | |
| nil | |
| end | |
comfortable_mexican_sofa/cms_tag/field_datetime.rb b/lib/comfortable_mexican_sofa/cms_tag/field_datetime.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsTag::FieldDateTime < CmsBlock |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:field:(#{label}):datetime\s*\}/ |
| + | /\{\{\s*cms:field:(#{label}):datetime\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/field_integer.rb b/lib/comfortable_mexican_sofa/cms_tag/field_integer.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsTag::FieldInteger < CmsBlock |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:field:(#{label}):integer\s*\}/ |
| + | /\{\{\s*cms:field:(#{label}):integer\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/field_string.rb b/lib/comfortable_mexican_sofa/cms_tag/field_string.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsTag::FieldString < CmsBlock |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:field:(#{label}):?(?:string)?\s*\}/ |
| + | /\{\{\s*cms:field:(#{label}):?(?:string)?\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/field_text.rb b/lib/comfortable_mexican_sofa/cms_tag/field_text.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsTag::FieldText < CmsBlock |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:field:(#{label}):?(?:text)?\s*?\}/ |
| + | /\{\{\s*cms:field:(#{label}):?(?:text)?\s*?\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/helper.rb b/lib/comfortable_mexican_sofa/cms_tag/helper.rb
+1
-1
| @@ | @@ -6,7 +6,7 @@ class CmsTag::Helper |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:helper:(#{label}):?(.*?)\s*\}/ |
| + | /\{\{\s*cms:helper:(#{label}):?(.*?)\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/page_datetime.rb b/lib/comfortable_mexican_sofa/cms_tag/page_datetime.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsTag::PageDateTime < CmsBlock |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:page:(#{label}):datetime\s*\}/ |
| + | /\{\{\s*cms:page:(#{label}):datetime\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/page_integer.rb b/lib/comfortable_mexican_sofa/cms_tag/page_integer.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsTag::PageInteger < CmsBlock |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:page:(#{label}):integer\s*\}/ |
| + | /\{\{\s*cms:page:(#{label}):integer\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/page_string.rb b/lib/comfortable_mexican_sofa/cms_tag/page_string.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsTag::PageString < CmsBlock |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:page:(#{label}):string\s*\}/ |
| + | /\{\{\s*cms:page:(#{label}):string\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/page_text.rb b/lib/comfortable_mexican_sofa/cms_tag/page_text.rb
+1
-1
| @@ | @@ -4,7 +4,7 @@ class CmsTag::PageText < CmsBlock |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:page:(#{label}):?(?:text)?\s*\}/ |
| + | /\{\{\s*cms:page:(#{label}):?(?:text)?\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/partial.rb b/lib/comfortable_mexican_sofa/cms_tag/partial.rb
+1
-1
| @@ | @@ -6,7 +6,7 @@ class CmsTag::Partial |
| def self.regex_tag_signature(label = nil) | |
| label ||= /[\w\/]+/ | |
| - | /\{\s*cms:partial:(#{label}):?(.*?)\s*\}/ |
| + | /\{\{\s*cms:partial:(#{label}):?(.*?)\s*\}\}/ |
| end | |
| def regex_tag_signature | |
comfortable_mexican_sofa/cms_tag/snippet.rb b/lib/comfortable_mexican_sofa/cms_tag/snippet.rb
+1
-1
| @@ | @@ -10,7 +10,7 @@ class CmsTag::Snippet < CmsSnippet |
| def self.regex_tag_signature(label = nil) | |
| label ||= /\w+/ | |
| - | /\{\s*cms:snippet:(#{label})\s*\}/ |
| + | /\{\{\s*cms:snippet:(#{label})\s*\}\}/ |
| end | |
| def regex_tag_signature | |
test/cms_seeds/test.host/layouts/default.yml
+1
-1
| @@ | @@ -1,2 +1,2 @@ |
| label: Default Layout | |
| - | content: <html>{cms:page:content}</html> |
| \ No newline at end of file | |
| + | content: <html>{{cms:page:content}}</html> |
| \ No newline at end of file | |
test/cms_seeds/test.host/layouts/nested.yml
+1
-1
| @@ | @@ -1,3 +1,3 @@ |
| label: Nested Layout | |
| parent: default | |
| - | content: <div>{cms:page:content}</div> |
| \ No newline at end of file | |
| + | content: <div>{{cms:page:content}}</div> |
| \ No newline at end of file | |
test/cms_seeds/test.host/pages/child/subchild.yml
+1
-1
| @@ | @@ -7,4 +7,4 @@ cms_blocks_attributes: |
| label: content | |
| type: CmsTag::PageText | |
| content: |- | |
| - | Sub Child Page Content {cms:snippet:default} |
| \ No newline at end of file | |
| + | Sub Child Page Content {{cms:snippet:default}} |
| \ No newline at end of file | |
test/fixtures/cms_blocks.yml
+1
-1
| @@ | @@ -10,5 +10,5 @@ default_page_text: |
| label: default_page_text | |
| content_text: |- | |
| default_page_text_content_a | |
| - | {cms:snippet:default} |
| + | {{cms:snippet:default}} |
| default_page_text_content_b | |
test/fixtures/cms_layouts.yml
+7
-7
| @@ | @@ -4,11 +4,11 @@ default: |
| slug: default | |
| parent: | |
| content: |- | |
| - | {cms:field:default_field_text:text} |
| + | {{cms:field:default_field_text:text}} |
| layout_content_a | |
| - | {cms:page:default_page_text:text} |
| + | {{cms:page:default_page_text:text}} |
| layout_content_b | |
| - | {cms:snippet:default} |
| + | {{cms:snippet:default}} |
| layout_content_c | |
| css: default_css | |
| js: default_js | |
| @@ | @@ -19,8 +19,8 @@ nested: |
| slug: nested | |
| parent: | |
| content: |- | |
| - | {cms:page:header} |
| - | {cms:page:content} |
| + | {{cms:page:header}} |
| + | {{cms:page:content}} |
| css: nested_css | |
| js: nested_js | |
| @@ | @@ -30,7 +30,7 @@ child: |
| slug: child | |
| parent: nested | |
| content: |- | |
| - | {cms:page:left_column} |
| - | {cms:page:right_column} |
| + | {{cms:page:left_column}} |
| + | {{cms:page:right_column}} |
| css: child_css | |
| js: child_js | |
| \ No newline at end of file | |
test/functional/cms_admin/layouts_controller_test.rb
+3
-3
| @@ | @@ -45,7 +45,7 @@ class CmsAdmin::LayoutsControllerTest < ActionController::TestCase |
| post :create, :cms_layout => { | |
| :label => 'Test Layout', | |
| :slug => 'test', | |
| - | :content => 'Test {cms:page:content}' |
| + | :content => 'Test {{cms:page:content}}' |
| } | |
| assert_response :redirect | |
| layout = CmsLayout.last | |
| @@ | @@ -68,14 +68,14 @@ class CmsAdmin::LayoutsControllerTest < ActionController::TestCase |
| layout = cms_layouts(:default) | |
| put :update, :id => layout, :cms_layout => { | |
| :label => 'New Label', | |
| - | :content => 'New {cms:page:content}' |
| + | :content => 'New {{cms:page:content}}' |
| } | |
| assert_response :redirect | |
| assert_redirected_to :action => :edit, :id => layout | |
| assert_equal 'Layout updated', flash[:notice] | |
| layout.reload | |
| assert_equal 'New Label', layout.label | |
| - | assert_equal 'New {cms:page:content}', layout.content |
| + | assert_equal 'New {{cms:page:content}}', layout.content |
| end | |
| def test_update_failure | |
test/functional/cms_admin/pages_controller_test.rb
+8
-8
| @@ | @@ -27,7 +27,7 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase |
| end | |
| def test_get_new_with_field_datetime | |
| - | cms_layouts(:default).update_attribute(:content, '{cms:field:test_label:datetime}') |
| + | cms_layouts(:default).update_attribute(:content, '{{cms:field:test_label:datetime}}') |
| get :new | |
| assert_select "input[type='datetime'][name='cms_page[cms_blocks_attributes][][content]']" | |
| assert_select "input[type='hidden'][name='cms_page[cms_blocks_attributes][][label]'][value='test_label']" | |
| @@ | @@ -35,7 +35,7 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase |
| end | |
| def test_get_new_with_field_integer | |
| - | cms_layouts(:default).update_attribute(:content, '{cms:field:test_label:integer}') |
| + | cms_layouts(:default).update_attribute(:content, '{{cms:field:test_label:integer}}') |
| get :new | |
| assert_select "input[type='number'][name='cms_page[cms_blocks_attributes][][content]']" | |
| assert_select "input[type='hidden'][name='cms_page[cms_blocks_attributes][][label]'][value='test_label']" | |
| @@ | @@ -43,7 +43,7 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase |
| end | |
| def test_get_new_with_field_string | |
| - | cms_layouts(:default).update_attribute(:content, '{cms:field:test_label}') |
| + | cms_layouts(:default).update_attribute(:content, '{{cms:field:test_label}}') |
| get :new | |
| assert_select "input[type='text'][name='cms_page[cms_blocks_attributes][][content]']" | |
| assert_select "input[type='hidden'][name='cms_page[cms_blocks_attributes][][label]'][value='test_label']" | |
| @@ | @@ -51,7 +51,7 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase |
| end | |
| def test_get_new_with_field_text | |
| - | cms_layouts(:default).update_attribute(:content, '{cms:field:test_label:text}') |
| + | cms_layouts(:default).update_attribute(:content, '{{cms:field:test_label:text}}') |
| get :new | |
| assert_select "textarea[name='cms_page[cms_blocks_attributes][][content]']" | |
| assert_select "input[type='hidden'][name='cms_page[cms_blocks_attributes][][label]'][value='test_label']" | |
| @@ | @@ -59,7 +59,7 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase |
| end | |
| def test_get_new_with_page_datetime | |
| - | cms_layouts(:default).update_attribute(:content, '{cms:page:test_label:datetime}') |
| + | cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label:datetime}}') |
| get :new | |
| assert_select "input[type='datetime'][name='cms_page[cms_blocks_attributes][][content]']" | |
| assert_select "input[type='hidden'][name='cms_page[cms_blocks_attributes][][label]'][value='test_label']" | |
| @@ | @@ -67,7 +67,7 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase |
| end | |
| def test_get_new_with_page_integer | |
| - | cms_layouts(:default).update_attribute(:content, '{cms:page:test_label:integer}') |
| + | cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label:integer}}') |
| get :new | |
| assert_select "input[type='number'][name='cms_page[cms_blocks_attributes][][content]']" | |
| assert_select "input[type='hidden'][name='cms_page[cms_blocks_attributes][][label]'][value='test_label']" | |
| @@ | @@ -75,7 +75,7 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase |
| end | |
| def test_get_new_with_page_string | |
| - | cms_layouts(:default).update_attribute(:content, '{cms:page:test_label:string}') |
| + | cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label:string}}') |
| get :new | |
| assert_select "input[type='text'][name='cms_page[cms_blocks_attributes][][content]']" | |
| assert_select "input[type='hidden'][name='cms_page[cms_blocks_attributes][][label]'][value='test_label']" | |
| @@ | @@ -83,7 +83,7 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase |
| end | |
| def test_get_new_with_page_text | |
| - | cms_layouts(:default).update_attribute(:content, '{cms:page:test_label}') |
| + | cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label}}') |
| get :new | |
| assert_select "textarea[name='cms_page[cms_blocks_attributes][][content]']" | |
| assert_select "input[type='hidden'][name='cms_page[cms_blocks_attributes][][label]'][value='test_label']" | |
test/unit/cms_layout_test.rb
+9
-9
| @@ | @@ -24,14 +24,14 @@ class CmsLayoutTest < ActiveSupport::TestCase |
| layout = cms_sites(:default).cms_layouts.new( | |
| :label => 'test', | |
| :slug => 'test', | |
| - | :content => '{cms:page:blah}' |
| + | :content => '{{cms:page:blah}}' |
| ) | |
| assert layout.valid? | |
| layout = cms_sites(:default).cms_layouts.new( | |
| :label => 'test', | |
| :slug => 'test', | |
| - | :content => '{cms:field:blah}' |
| + | :content => '{{cms:field:blah}}' |
| ) | |
| assert layout.valid? | |
| end | |
| @@ | @@ -52,12 +52,12 @@ class CmsLayoutTest < ActiveSupport::TestCase |
| def test_merged_content | |
| parent_layout = cms_layouts(:nested) | |
| layout = cms_layouts(:child) | |
| - | assert_equal "{cms:page:header}\n{cms:page:left_column}\n{cms:page:right_column}", layout.merged_content |
| - | assert_equal "{cms:page:left_column}\n{cms:page:right_column}", layout.content |
| + | assert_equal "{{cms:page:header}}\n{{cms:page:left_column}}\n{{cms:page:right_column}}", layout.merged_content |
| + | assert_equal "{{cms:page:left_column}}\n{{cms:page:right_column}}", layout.content |
| - | parent_layout.update_attribute(:content, '{cms:page:whatever}') |
| + | parent_layout.update_attribute(:content, '{{cms:page:whatever}}') |
| layout.reload | |
| - | assert_equal "{cms:page:left_column}\n{cms:page:right_column}", layout.merged_content |
| + | assert_equal "{{cms:page:left_column}}\n{{cms:page:right_column}}", layout.merged_content |
| end | |
| def test_merged_css | |
| @@ | @@ -77,12 +77,12 @@ class CmsLayoutTest < ActiveSupport::TestCase |
| assert layout = CmsLayout.load_from_file(cms_sites(:default), 'default') | |
| assert_equal 'Default Layout', layout.label | |
| - | assert_equal '<html>{cms:page:content}</html>', layout.content |
| + | assert_equal '<html>{{cms:page:content}}</html>', layout.content |
| assert layout = CmsLayout.load_from_file(cms_sites(:default), 'nested') | |
| assert_equal 'Nested Layout', layout.label | |
| - | assert_equal '<div>{cms:page:content}</div>', layout.content |
| - | assert_equal '<html><div>{cms:page:content}</div></html>', layout.merged_content |
| + | assert_equal '<div>{{cms:page:content}}</div>', layout.content |
| + | assert_equal '<html><div>{{cms:page:content}}</div></html>', layout.merged_content |
| end | |
| end | |
test/unit/cms_tag_test.rb
+15
-15
| @@ | @@ -5,42 +5,42 @@ class CmsTagTest < ActiveSupport::TestCase |
| def test_tokenizer_regex | |
| regex = CmsTag::TOKENIZER_REGEX | |
| - | tokens = 'content<{cms:some_tag content'.scan(regex) |
| + | tokens = 'content<{{cms:some_tag content'.scan(regex) |
| assert_equal nil, tokens[0][0] | |
| - | assert_equal 'content<{cms:some_tag content', tokens[0][1] |
| + | assert_equal 'content<{{cms:some_tag content', tokens[0][1] |
| - | tokens = 'content<{cms some_tag}>content'.scan(regex) |
| + | tokens = 'content<{{cms some_tag}}>content'.scan(regex) |
| assert_equal nil, tokens[0][0] | |
| - | assert_equal 'content<{cms some_tag}>content', tokens[0][1] |
| + | assert_equal 'content<{{cms some_tag}}>content', tokens[0][1] |
| - | tokens = 'content<{cms:some_tag}>content'.scan(regex) |
| + | tokens = 'content<{{cms:some_tag}}>content'.scan(regex) |
| assert_equal nil, tokens[0][0] | |
| assert_equal 'content<', tokens[0][1] | |
| - | assert_equal '{cms:some_tag}', tokens[1][0] |
| + | assert_equal '{{cms:some_tag}}', tokens[1][0] |
| assert_equal nil, tokens[1][1] | |
| assert_equal nil, tokens[2][0] | |
| assert_equal '>content', tokens[2][1] | |
| - | tokens = 'content<{cms:type:label}>content'.scan(regex) |
| + | tokens = 'content<{{cms:type:label}}>content'.scan(regex) |
| assert_equal nil, tokens[0][0] | |
| assert_equal 'content<', tokens[0][1] | |
| - | assert_equal '{cms:type:label}', tokens[1][0] |
| + | assert_equal '{{cms:type:label}}', tokens[1][0] |
| assert_equal nil, tokens[1][1] | |
| assert_equal nil, tokens[2][0] | |
| assert_equal '>content', tokens[2][1] | |
| - | tokens = 'content<{cms:type:label }>content'.scan(regex) |
| + | tokens = 'content<{{cms:type:label }}>content'.scan(regex) |
| assert_equal nil, tokens[0][0] | |
| assert_equal 'content<', tokens[0][1] | |
| - | assert_equal '{cms:type:label }', tokens[1][0] |
| + | assert_equal '{{cms:type:label }}', tokens[1][0] |
| assert_equal nil, tokens[1][1] | |
| assert_equal nil, tokens[2][0] | |
| assert_equal '>content', tokens[2][1] | |
| - | tokens = 'content<{ cms:type:la/b el }>content'.scan(regex) |
| + | tokens = 'content<{{ cms:type:la/b el }}>content'.scan(regex) |
| assert_equal nil, tokens[0][0] | |
| assert_equal 'content<', tokens[0][1] | |
| - | assert_equal '{ cms:type:la/b el }', tokens[1][0] |
| + | assert_equal '{{ cms:type:la/b el }}',tokens[1][0] |
| assert_equal nil, tokens[1][1] | |
| assert_equal nil, tokens[2][0] | |
| assert_equal '>content', tokens[2][1] | |
| @@ | @@ -115,7 +115,7 @@ class CmsTagTest < ActiveSupport::TestCase |
| }, | |
| { | |
| :label => 'default_page_text', | |
| - | :content => "new_default_page_text_content\n{cms:snippet:default}", |
| + | :content => "new_default_page_text_content\n{{cms:snippet:default}}", |
| :type => 'CmsTag::PageText' | |
| }, | |
| { | |
| @@ | @@ -146,7 +146,7 @@ class CmsTagTest < ActiveSupport::TestCase |
| def test_content_with_repeated_tags | |
| page = cms_pages(:default) | |
| - | page.cms_layout.content << "\n{cms:page:default_page_text:text}" |
| + | page.cms_layout.content << "\n{{cms:page:default_page_text:text}}" |
| page.cms_layout.save! | |
| assert_equal rendered_content_formatter( | |
| @@ | @@ -177,7 +177,7 @@ class CmsTagTest < ActiveSupport::TestCase |
| def test_content_with_cyclical_tags | |
| page = cms_pages(:default) | |
| snippet = cms_snippets(:default) | |
| - | snippet.update_attribute(:content, "infinite {cms:page:default} loop") |
| + | snippet.update_attribute(:content, "infinite {{cms:page:default}} loop") |
| assert_equal rendered_content_formatter( | |
| ' | |
| layout_content_a | |
test/unit/cms_tags/field_datetime_test.rb
+7
-7
| @@ | @@ -4,8 +4,8 @@ class FieldDateTimeTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:field:content:datetime }', |
| - | '{cms:field:content:datetime}' |
| + | '{{ cms:field:content:datetime }}', |
| + | '{{cms:field:content:datetime}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::FieldDateTime.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'content', tag.label | |
| @@ | @@ -14,17 +14,17 @@ class FieldDateTimeTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:field:content:not_datetime}', |
| - | '{cms:field:content}', |
| - | '{cms:not_field:content}', |
| - | 'not_a_tag' |
| + | '{{cms:field:content:not_datetime}}', |
| + | '{{cms:field:content}}', |
| + | '{{cms:not_field:content}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::FieldDateTime.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::FieldDateTime.initialize_tag(cms_pages(:default), '{cms:field:content:datetime}') |
| + | tag = CmsTag::FieldDateTime.initialize_tag(cms_pages(:default), '{{cms:field:content:datetime}}') |
| assert tag.content.blank? | |
| time = 2.days.ago | |
| tag.content = time | |
test/unit/cms_tags/field_integer_test.rb
+7
-7
| @@ | @@ -4,8 +4,8 @@ class FieldIntegerTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:field:content:integer }', |
| - | '{cms:field:content:integer}' |
| + | '{{ cms:field:content:integer }}', |
| + | '{{cms:field:content:integer}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::FieldInteger.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'content', tag.label | |
| @@ | @@ -14,17 +14,17 @@ class FieldIntegerTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:field:content:not_integer}', |
| - | '{cms:field:content}', |
| - | '{cms:not_field:content}', |
| - | 'not_a_tag' |
| + | '{{cms:field:content:not_integer}}', |
| + | '{{cms:field:content}}', |
| + | '{{cms:not_field:content}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::FieldInteger.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::FieldInteger.initialize_tag(cms_pages(:default), '{cms:field:content:integer}') |
| + | tag = CmsTag::FieldInteger.initialize_tag(cms_pages(:default), '{{cms:field:content:integer}}') |
| assert tag.content.blank? | |
| tag.content = '5' | |
| assert_equal 5, tag.content | |
test/unit/cms_tags/field_string_test.rb
+7
-7
| @@ | @@ -4,9 +4,9 @@ class FieldStringTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:field:content:string }', |
| - | '{cms:field:content:string}', |
| - | '{cms:field:content}' |
| + | '{{ cms:field:content:string }}', |
| + | '{{cms:field:content:string}}', |
| + | '{{cms:field:content}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::FieldString.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'content', tag.label | |
| @@ | @@ -15,16 +15,16 @@ class FieldStringTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:field:content:not_string}', |
| - | '{cms:not_field:content}', |
| - | 'not_a_tag' |
| + | '{{cms:field:content:not_string}}', |
| + | '{{cms:not_field:content}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::FieldString.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::FieldString.initialize_tag(cms_pages(:default), '{cms:field:content}') |
| + | tag = CmsTag::FieldString.initialize_tag(cms_pages(:default), '{{cms:field:content}}') |
| assert tag.content.blank? | |
| tag.content = 'test_content' | |
| assert_equal 'test_content', tag.content | |
test/unit/cms_tags/field_text_test.rb
+6
-6
| @@ | @@ -4,8 +4,8 @@ class FieldTextTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:field:content:text }', |
| - | '{cms:field:content:text}' |
| + | '{{ cms:field:content:text }}', |
| + | '{{cms:field:content:text}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::FieldText.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'content', tag.label | |
| @@ | @@ -14,16 +14,16 @@ class FieldTextTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:field:content:not_text}', |
| - | '{cms:not_field:content:text}', |
| - | 'not_a_tag' |
| + | '{{cms:field:content:not_text}}', |
| + | '{{cms:not_field:content:text}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::FieldText.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::FieldText.initialize_tag(cms_pages(:default), '{cms:field:content:text}') |
| + | tag = CmsTag::FieldText.initialize_tag(cms_pages(:default), '{{cms:field:content:text}}') |
| assert tag.content.blank? | |
| tag.content = 'test_content' | |
| assert_equal 'test_content', tag.content | |
test/unit/cms_tags/helper_test.rb
+7
-7
| @@ | @@ -3,31 +3,31 @@ require File.expand_path('../../test_helper', File.dirname(__FILE__)) |
| class HelperTest < ActiveSupport::TestCase | |
| def test_initialize_tag | |
| - | assert CmsTag::Helper.initialize_tag(cms_pages(:default), '{ cms:helper:method_name }') |
| + | assert CmsTag::Helper.initialize_tag(cms_pages(:default), '{{ cms:helper:method_name }}') |
| end | |
| def test_initialize_tag_with_parameters | |
| - | assert tag = CmsTag::Helper.initialize_tag(cms_pages(:default), '{ cms:helper:method_name:param1:param2 }') |
| + | assert tag = CmsTag::Helper.initialize_tag(cms_pages(:default), '{{ cms:helper:method_name:param1:param2 }}') |
| assert tag.label = 'method_name' | |
| assert tag.params = 'param1:param2' | |
| end | |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:helper}', |
| - | '{cms:not_helper:method_name}', |
| - | 'not_a_tag' |
| + | '{{cms:helper}}', |
| + | '{{cms:not_helper:method_name}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::Helper.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::Helper.initialize_tag(cms_pages(:default), '{cms:helper:method_name}') |
| + | tag = CmsTag::Helper.initialize_tag(cms_pages(:default), '{{cms:helper:method_name}}') |
| assert_equal "<%= method_name() %>", tag.content | |
| assert_equal "<%= method_name() %>", tag.render | |
| - | tag = CmsTag::Helper.initialize_tag(cms_pages(:default), '{cms:helper:method_name:param1:param2}') |
| + | tag = CmsTag::Helper.initialize_tag(cms_pages(:default), '{{cms:helper:method_name:param1:param2}}') |
| assert_equal "<%= method_name('param1', 'param2') %>", tag.content | |
| assert_equal "<%= method_name('param1', 'param2') %>", tag.render | |
| end | |
test/unit/cms_tags/page_datetime_test.rb
+7
-7
| @@ | @@ -4,8 +4,8 @@ class PageDateTimeTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:page:content:datetime }', |
| - | '{cms:page:content:datetime}' |
| + | '{{ cms:page:content:datetime }}', |
| + | '{{cms:page:content:datetime}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::PageDateTime.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'content', tag.label | |
| @@ | @@ -14,17 +14,17 @@ class PageDateTimeTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:page:content:not_datetime}', |
| - | '{cms:page:content}', |
| - | '{cms:not_page:content}', |
| - | 'not_a_tag' |
| + | '{{cms:page:content:not_datetime}}', |
| + | '{{cms:page:content}}', |
| + | '{{cms:not_page:content}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::PageDateTime.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::PageDateTime.initialize_tag(cms_pages(:default), '{cms:page:content:datetime}') |
| + | tag = CmsTag::PageDateTime.initialize_tag(cms_pages(:default), '{{cms:page:content:datetime}}') |
| assert tag.content.blank? | |
| time = 2.days.ago | |
| tag.content = time | |
test/unit/cms_tags/page_integer_test.rb
+7
-7
| @@ | @@ -4,8 +4,8 @@ class PageIntegerTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:page:content:integer }', |
| - | '{cms:page:content:integer}' |
| + | '{{ cms:page:content:integer }}', |
| + | '{{cms:page:content:integer}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::PageInteger.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'content', tag.label | |
| @@ | @@ -14,17 +14,17 @@ class PageIntegerTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:page:content:not_integer}', |
| - | '{cms:page:content}', |
| - | '{cms:not_page:content}', |
| - | 'not_a_tag' |
| + | '{{cms:page:content:not_integer}}', |
| + | '{{cms:page:content}}', |
| + | '{{cms:not_page:content}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::PageInteger.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::PageInteger.initialize_tag(cms_pages(:default), '{cms:page:content:integer}') |
| + | tag = CmsTag::PageInteger.initialize_tag(cms_pages(:default), '{{cms:page:content:integer}}') |
| assert tag.content.blank? | |
| tag.content = '5' | |
| assert_equal 5, tag.content | |
test/unit/cms_tags/page_string_test.rb
+7
-7
| @@ | @@ -4,8 +4,8 @@ class PageStringTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:page:content:string }', |
| - | '{cms:page:content:string}' |
| + | '{{ cms:page:content:string }}', |
| + | '{{cms:page:content:string}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::PageString.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'content', tag.label | |
| @@ | @@ -14,17 +14,17 @@ class PageStringTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:page:content:not_string}', |
| - | '{cms:page:content}', |
| - | '{cms:not_page:content}', |
| - | 'not_a_tag' |
| + | '{{cms:page:content:not_string}}', |
| + | '{{cms:page:content}}', |
| + | '{{cms:not_page:content}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::PageString.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::PageString.initialize_tag(cms_pages(:default), '{cms:page:content:string}') |
| + | tag = CmsTag::PageString.initialize_tag(cms_pages(:default), '{{cms:page:content:string}}') |
| assert tag.content.blank? | |
| tag.content = 'test_content' | |
| assert_equal 'test_content', tag.content | |
test/unit/cms_tags/page_text_test.rb
+7
-8
| @@ | @@ -4,10 +4,9 @@ class PageTextTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | ' {cms:page:content:text} ', |
| - | '{cms:page:content}', |
| - | '{cms:page:content}', |
| - | '{cms:page:content:text}' |
| + | '{{ cms:page:content:text }}', |
| + | '{{cms:page:content}}', |
| + | '{{cms:page:content:text}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::PageText.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'content', tag.label | |
| @@ | @@ -16,16 +15,16 @@ class PageTextTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:page:content:not_text}', |
| - | '{cms:not_page:content}', |
| - | 'not_a_tag' |
| + | '{{cms:page:content:not_text}}', |
| + | '{{cms:not_page:content}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::PageText.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::PageText.initialize_tag(cms_pages(:default), '{cms:page:content}') |
| + | tag = CmsTag::PageText.initialize_tag(cms_pages(:default), '{{cms:page:content}}') |
| assert tag.content.blank? | |
| tag.content = 'test_content' | |
| assert_equal 'test_content', tag.content | |
test/unit/cms_tags/partial_test.rb
+8
-8
| @@ | @@ -4,35 +4,35 @@ class PartialTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:partial:partial_name }', |
| - | '{cms:partial:path/to/partial}' |
| + | '{{ cms:partial:partial_name }}', |
| + | '{{cms:partial:path/to/partial}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::Partial.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_initialize_tag_with_parameters | |
| - | assert tag = CmsTag::Partial.initialize_tag(cms_pages(:default), '{cms:partial:path/to/partial:param1:param2}') |
| + | assert tag = CmsTag::Partial.initialize_tag(cms_pages(:default), '{{cms:partial:path/to/partial:param1:param2}}') |
| assert tag.label = 'path/to/partial' | |
| assert tag.params = 'param1:param2' | |
| end | |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:partial}', |
| - | '{cms:not_partial:label}', |
| - | 'not_a_tag' |
| + | '{{cms:partial}}', |
| + | '{{cms:not_partial:label}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::Partial.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::Partial.initialize_tag(cms_pages(:default), '{cms:partial:path/to/partial}') |
| + | tag = CmsTag::Partial.initialize_tag(cms_pages(:default), '{{cms:partial:path/to/partial}}') |
| assert_equal "<%= render :partial => 'path/to/partial' %>", tag.content | |
| assert_equal "<%= render :partial => 'path/to/partial' %>", tag.render | |
| - | tag = CmsTag::Partial.initialize_tag(cms_pages(:default), '{cms:partial:path/to/partial:param1:param2}') |
| + | tag = CmsTag::Partial.initialize_tag(cms_pages(:default), '{{cms:partial:path/to/partial:param1:param2}}') |
| assert_equal "<%= render :partial => 'path/to/partial', :locals => {:param_1 => 'param1', :param_2 => 'param2'} %>", tag.content | |
| assert_equal "<%= render :partial => 'path/to/partial', :locals => {:param_1 => 'param1', :param_2 => 'param2'} %>", tag.render | |
| end | |
test/unit/cms_tags/snippet_test.rb
+7
-7
| @@ | @@ -4,8 +4,8 @@ class SnippetTest < ActiveSupport::TestCase |
| def test_initialize_tag | |
| [ | |
| - | '{ cms:snippet:label }', |
| - | '{cms:snippet:label}' |
| + | '{{ cms:snippet:label }}', |
| + | '{{cms:snippet:label}}' |
| ].each do |tag_signature| | |
| assert tag = CmsTag::Snippet.initialize_tag(cms_pages(:default), tag_signature) | |
| assert_equal 'label', tag.slug | |
| @@ | @@ -14,20 +14,20 @@ class SnippetTest < ActiveSupport::TestCase |
| def test_initialize_tag_failure | |
| [ | |
| - | '{cms:snippet}', |
| - | '{cms:not_snippet:label}', |
| - | 'not_a_tag' |
| + | '{{cms:snippet}}', |
| + | '{{cms:not_snippet:label}}', |
| + | '{not_a_tag}' |
| ].each do |tag_signature| | |
| assert_nil CmsTag::Snippet.initialize_tag(cms_pages(:default), tag_signature) | |
| end | |
| end | |
| def test_content_and_render | |
| - | tag = CmsTag::Snippet.initialize_tag(cms_pages(:default), '{cms:snippet:default}') |
| + | tag = CmsTag::Snippet.initialize_tag(cms_pages(:default), '{{cms:snippet:default}}') |
| assert_equal 'default_snippet_content', tag.content | |
| assert_equal 'default_snippet_content', tag.render | |
| - | tag = CmsTag::Snippet.initialize_tag(cms_pages(:default), "{cms:snippet:doesnot_exist}") |
| + | tag = CmsTag::Snippet.initialize_tag(cms_pages(:default), "{{cms:snippet:doesnot_exist}}") |
| assert_equal nil, tag.content | |
| assert_equal '', tag.render | |
| end | |