noodall-components-gallery 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -0
- data/Gemfile +21 -0
- data/Gemfile.lock +186 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +39 -0
- data/app/models/gallery.rb +13 -0
- data/app/views/admin/components/_gallery.html.erb +49 -0
- data/app/views/components/_gallery.html.erb +23 -0
- data/cucumber.yml +8 -0
- data/features/gallery_component.feature +19 -0
- data/features/step_definitions/asset_steps.rb +66 -0
- data/features/step_definitions/cms_node_steps.rb +126 -0
- data/features/step_definitions/component_steps.rb +138 -0
- data/features/step_definitions/web_steps.rb +219 -0
- data/features/support/env.rb +50 -0
- data/features/support/paths.rb +58 -0
- data/lib/noodall-components-gallery.rb +1 -0
- data/lib/noodall/components/gallery/engine.rb +11 -0
- data/lib/noodall/components/gallery/version.rb +7 -0
- data/noodall-components-gallery.gemspec +22 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +22 -0
- data/spec/dummy/app/helpers/application_helper.rb +3 -0
- data/spec/dummy/app/models/page_a.rb +8 -0
- data/spec/dummy/app/models/user.rb +12 -0
- data/spec/dummy/app/views/admin/nodes/_page_a.html.erb +47 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/nodes/page_a.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +46 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +12 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +26 -0
- data/spec/dummy/config/environments/production.rb +49 -0
- data/spec/dummy/config/environments/test.rb +35 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/dragonfly.rb +1 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/mongo_mapper.rb +13 -0
- data/spec/dummy/config/initializers/noodall.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/javascripts/application.js +2 -0
- data/spec/dummy/public/javascripts/controls.js +965 -0
- data/spec/dummy/public/javascripts/dragdrop.js +974 -0
- data/spec/dummy/public/javascripts/effects.js +1123 -0
- data/spec/dummy/public/javascripts/prototype.js +6001 -0
- data/spec/dummy/public/javascripts/rails.js +175 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/factories/asset.rb +6 -0
- data/spec/factories/node.rb +6 -0
- data/spec/files/beef.png +0 -0
- data/spec/integration/navigation_spec.rb +9 -0
- data/spec/noodall_component_gallery_spec.rb +7 -0
- data/spec/spec_helper.rb +30 -0
- metadata +149 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
2
|
+
# It is recommended to regenerate this file in the future when you upgrade to a
|
3
|
+
# newer version of cucumber-rails. Consider adding your own code to a new file
|
4
|
+
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
5
|
+
# files.
|
6
|
+
|
7
|
+
ENV["RAILS_ENV"] ||= "test"
|
8
|
+
require File.expand_path("../../../spec/dummy/config/environment.rb", __FILE__)
|
9
|
+
|
10
|
+
require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
|
11
|
+
require 'cucumber/rails/rspec'
|
12
|
+
require 'cucumber/rails/world'
|
13
|
+
require 'cucumber/web/tableish'
|
14
|
+
require 'cucumber/rspec/doubles'
|
15
|
+
|
16
|
+
require 'capybara/rails'
|
17
|
+
require 'capybara/cucumber'
|
18
|
+
require 'capybara/session'
|
19
|
+
# Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
|
20
|
+
# order to ease the transition to Capybara we set the default here. If you'd
|
21
|
+
# prefer to use XPath just remove this line and adjust any selectors in your
|
22
|
+
# steps to use the XPath syntax.
|
23
|
+
Capybara.default_selector = :css
|
24
|
+
|
25
|
+
# If you set this to false, any error raised from within your app will bubble
|
26
|
+
# up to your step definition and out to cucumber unless you catch it somewhere
|
27
|
+
# on the way. You can make Rails rescue errors and render error pages on a
|
28
|
+
# per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
|
29
|
+
#
|
30
|
+
# If you set this to true, Rails will rescue all errors and render error
|
31
|
+
# pages, more or less in the same way your application would behave in the
|
32
|
+
# default production environment. It's not recommended to do this for all
|
33
|
+
# of your scenarios, as this makes it hard to discover errors in your application.
|
34
|
+
ActionController::Base.allow_rescue = false
|
35
|
+
|
36
|
+
# How to clean your database when transactions are turned off. See
|
37
|
+
# http://github.com/bmabey/database_cleaner for more info.
|
38
|
+
require 'database_cleaner'
|
39
|
+
require 'database_cleaner/cucumber'
|
40
|
+
DatabaseCleaner.strategy = :truncation
|
41
|
+
|
42
|
+
require 'factory_girl'
|
43
|
+
|
44
|
+
Factory.definition_file_paths = [
|
45
|
+
File.expand_path("../../../spec/factories", __FILE__)
|
46
|
+
]
|
47
|
+
Factory.find_definitions
|
48
|
+
|
49
|
+
require 'factory_girl/step_definitions'
|
50
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'noodall/permalinks'
|
2
|
+
|
3
|
+
module NavigationHelpers
|
4
|
+
# Maps a name to a path. Used by the
|
5
|
+
#
|
6
|
+
# When /^I go to (.+)$/ do |page_name|
|
7
|
+
#
|
8
|
+
# step definition in web_steps.rb
|
9
|
+
#
|
10
|
+
def path_to(page_name)
|
11
|
+
case page_name
|
12
|
+
|
13
|
+
when /the (home\s?page|website)/i
|
14
|
+
root_path
|
15
|
+
when /the CMS/
|
16
|
+
'/admin'
|
17
|
+
when /^the (?:root )?content titled "([^\"]*)" page$/i
|
18
|
+
node = Node.find_by_title($1)
|
19
|
+
node_path(node)
|
20
|
+
when /^the content admin page$/
|
21
|
+
noodall_admin_nodes_path
|
22
|
+
when /^the site ?map page$/
|
23
|
+
noodall_sitemap_path
|
24
|
+
when /^a page that's content is in the "([^\"]*)" template$/
|
25
|
+
node = Node.first(:_type => $1.gsub(' ',''), :order => 'created_at DESC')
|
26
|
+
node_path(node)
|
27
|
+
when /^a page that's content is in the "([^\"]*)" template that does not have published children$/
|
28
|
+
node = Factory($1.gsub(' ','_').tableize.singularize, :publish => true)
|
29
|
+
node.children.each{|c| c.destroy }
|
30
|
+
node_path(node)
|
31
|
+
when /^a page that's content is in the "([^\"]*)" template that has published children$/
|
32
|
+
node = Factory($1.gsub(' ','_').tableize.singularize, :publish => true)
|
33
|
+
3.times do
|
34
|
+
Factory(:page_a, :publish => true, :parent => node)
|
35
|
+
end
|
36
|
+
node_path(node)
|
37
|
+
when /^that page$/
|
38
|
+
node_path(@_content)
|
39
|
+
|
40
|
+
when /^the article list page$/
|
41
|
+
node_path(@_content)
|
42
|
+
when /content titled "([^\"]*)"$/
|
43
|
+
node_path(Node.find_by_title($1))
|
44
|
+
else
|
45
|
+
begin
|
46
|
+
page_name =~ /the (.*) page/
|
47
|
+
path_components = $1.split(/\s+/)
|
48
|
+
self.send(path_components.push('path').join('_').to_sym)
|
49
|
+
rescue Object => e
|
50
|
+
raise "Can't find a mapping from \"#{page_name}\" to a path.\n" +
|
51
|
+
"Please add one to #{__FILE__}"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
World(NavigationHelpers)
|
58
|
+
World(Noodall::Permalinks)
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'noodall/components/gallery/engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path("../lib/noodall/components/gallery/version", __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "noodall-components-gallery"
|
6
|
+
s.version = Noodall::Components::Gallery::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = []
|
9
|
+
s.email = []
|
10
|
+
s.homepage = "http://rubygems.org/gems/noodall-components-gallery"
|
11
|
+
s.summary = "Noodall Components: Gallery"
|
12
|
+
s.description = "A simple gallery component for Noodall"
|
13
|
+
|
14
|
+
s.required_rubygems_version = ">= 1.3.6"
|
15
|
+
# s.rubyforge_project = "noodall-component-gallery"
|
16
|
+
|
17
|
+
s.add_development_dependency "bundler", ">= 1.0.0"
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
21
|
+
s.require_path = 'lib'
|
22
|
+
end
|
data/spec/dummy/Rakefile
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
2
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
3
|
+
|
4
|
+
require File.expand_path('../config/application', __FILE__)
|
5
|
+
require 'rake'
|
6
|
+
|
7
|
+
Dummy::Application.load_tasks
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class ApplicationController < ActionController::Base
|
2
|
+
protect_from_forgery
|
3
|
+
@@current_user = User.find_or_create_by_full_name("Demo User")
|
4
|
+
|
5
|
+
def self.current_user=(user)
|
6
|
+
@@current_user = user
|
7
|
+
end
|
8
|
+
|
9
|
+
def current_user
|
10
|
+
@@current_user
|
11
|
+
end
|
12
|
+
helper_method :current_user
|
13
|
+
|
14
|
+
def destroy_user_session_path
|
15
|
+
''
|
16
|
+
end
|
17
|
+
helper_method :destroy_user_session_path
|
18
|
+
|
19
|
+
def authenticate_user!
|
20
|
+
true
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<%= render :partial => 'body', :locals => { :f => f } %>
|
2
|
+
|
3
|
+
<% content_for :component_table do %>
|
4
|
+
<table class="component-table">
|
5
|
+
<tr>
|
6
|
+
<td rowspan="2" class="content"></td>
|
7
|
+
<td colspan="3"><a href="#main_component_form_0" class="slot_link">1</a></td>
|
8
|
+
</tr>
|
9
|
+
<tr>
|
10
|
+
<td colspan="2" rowspan="4" class="content"></td>
|
11
|
+
<td><a href="#small_component_form_0" class="slot_link">5</a></td>
|
12
|
+
</tr>
|
13
|
+
<tr>
|
14
|
+
<td></td>
|
15
|
+
<td><a href="#small_component_form_1" class="slot_link">6</a></td>
|
16
|
+
</tr>
|
17
|
+
<tr>
|
18
|
+
<td></td>
|
19
|
+
<td><a href="#small_component_form_2" class="slot_link">7</a></td>
|
20
|
+
</tr>
|
21
|
+
<tr>
|
22
|
+
<td></td>
|
23
|
+
<td><a href="#small_component_form_3" class="slot_link">8</a></td>
|
24
|
+
</tr>
|
25
|
+
<tr>
|
26
|
+
<td></td>
|
27
|
+
<td colspan="2"><a href="#wide_component_form_0" class="slot_link">2</a></td>
|
28
|
+
<td></td>
|
29
|
+
</tr>
|
30
|
+
<tr>
|
31
|
+
<td></td>
|
32
|
+
<td colspan="2"><a href="#wide_component_form_1" class="slot_link">3</a></td>
|
33
|
+
<td></td>
|
34
|
+
</tr>
|
35
|
+
<tr>
|
36
|
+
<td></td>
|
37
|
+
<td colspan="2"><a href="#wide_component_form_2" class="slot_link">4</a></td>
|
38
|
+
<td></td>
|
39
|
+
</tr>
|
40
|
+
<tr>
|
41
|
+
<td></td>
|
42
|
+
<td></td>
|
43
|
+
<td></td>
|
44
|
+
<td></td>
|
45
|
+
</tr>
|
46
|
+
</table>
|
47
|
+
<% end -%>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<h1><%=h @node.title %></h1>
|
2
|
+
|
3
|
+
<%= component(@node, 'main_slot_0') %>
|
4
|
+
|
5
|
+
<div id="body"><%= @node.body.html_safe %></div>
|
6
|
+
|
7
|
+
<%= component(@node, 'small_slot_0') %>
|
8
|
+
<%= component(@node, 'small_slot_1') %>
|
9
|
+
<%= component(@node, 'small_slot_2') %>
|
10
|
+
<%= component(@node, 'small_slot_3') %>
|
11
|
+
|
12
|
+
<%= component(@node, 'wide_slot_0') %>
|
13
|
+
<%= component(@node, 'wide_slot_1') %>
|
14
|
+
<%= component(@node, 'wide_slot_2') %>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require "active_model/railtie"
|
4
|
+
require "action_controller/railtie"
|
5
|
+
require "action_view/railtie"
|
6
|
+
require "action_mailer/railtie"
|
7
|
+
|
8
|
+
Bundler.require
|
9
|
+
require "noodall-components-gallery"
|
10
|
+
|
11
|
+
module Dummy
|
12
|
+
class Application < Rails::Application
|
13
|
+
# Settings in config/environments/* take precedence over those specified here.
|
14
|
+
# Application configuration should go into files in config/initializers
|
15
|
+
# -- all .rb files in that directory are automatically loaded.
|
16
|
+
|
17
|
+
# Custom directories with classes and modules you want to be autoloadable.
|
18
|
+
# config.autoload_paths += %W(#{config.root}/extras)
|
19
|
+
|
20
|
+
# Only load the plugins named here, in the order given (default is alphabetical).
|
21
|
+
# :all can be used as a placeholder for all plugins not explicitly named.
|
22
|
+
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
23
|
+
|
24
|
+
# Activate observers that should always be running.
|
25
|
+
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
26
|
+
|
27
|
+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
28
|
+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
29
|
+
# config.time_zone = 'Central Time (US & Canada)'
|
30
|
+
|
31
|
+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
32
|
+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
33
|
+
# config.i18n.default_locale = :de
|
34
|
+
|
35
|
+
# JavaScript files you want as :defaults (application.js is always included).
|
36
|
+
# config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
|
37
|
+
|
38
|
+
# Configure the default encoding used in templates for Ruby 1.9.
|
39
|
+
config.encoding = "utf-8"
|
40
|
+
|
41
|
+
# Configure sensitive parameters which will be filtered from the log file.
|
42
|
+
config.filter_parameters += [:password]
|
43
|
+
|
44
|
+
config.middleware.insert_after 'Rack::Lock', 'Dragonfly::Middleware', :noodall_assets, '/media'
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Dummy::Application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/environment.rb
|
3
|
+
|
4
|
+
# In the development environment your application's code is reloaded on
|
5
|
+
# every request. This slows down response time but is perfect for development
|
6
|
+
# since you don't have to restart the webserver when you make code changes.
|
7
|
+
config.cache_classes = false
|
8
|
+
|
9
|
+
# Log error messages when you accidentally call methods on nil.
|
10
|
+
config.whiny_nils = true
|
11
|
+
|
12
|
+
# Show full error reports and disable caching
|
13
|
+
config.consider_all_requests_local = true
|
14
|
+
config.action_view.debug_rjs = true
|
15
|
+
config.action_controller.perform_caching = false
|
16
|
+
|
17
|
+
# Don't care if the mailer can't send
|
18
|
+
config.action_mailer.raise_delivery_errors = false
|
19
|
+
|
20
|
+
# Print deprecation notices to the Rails logger
|
21
|
+
config.active_support.deprecation = :log
|
22
|
+
|
23
|
+
# Only use best-standards-support built into browsers
|
24
|
+
config.action_dispatch.best_standards_support = :builtin
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
Dummy::Application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/environment.rb
|
3
|
+
|
4
|
+
# The production environment is meant for finished, "live" apps.
|
5
|
+
# Code is not reloaded between requests
|
6
|
+
config.cache_classes = true
|
7
|
+
|
8
|
+
# Full error reports are disabled and caching is turned on
|
9
|
+
config.consider_all_requests_local = false
|
10
|
+
config.action_controller.perform_caching = true
|
11
|
+
|
12
|
+
# Specifies the header that your server uses for sending files
|
13
|
+
config.action_dispatch.x_sendfile_header = "X-Sendfile"
|
14
|
+
|
15
|
+
# For nginx:
|
16
|
+
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
|
17
|
+
|
18
|
+
# If you have no front-end server that supports something like X-Sendfile,
|
19
|
+
# just comment this out and Rails will serve the files
|
20
|
+
|
21
|
+
# See everything in the log (default is :info)
|
22
|
+
# config.log_level = :debug
|
23
|
+
|
24
|
+
# Use a different logger for distributed setups
|
25
|
+
# config.logger = SyslogLogger.new
|
26
|
+
|
27
|
+
# Use a different cache store in production
|
28
|
+
# config.cache_store = :mem_cache_store
|
29
|
+
|
30
|
+
# Disable Rails's static asset server
|
31
|
+
# In production, Apache or nginx will already do this
|
32
|
+
config.serve_static_assets = false
|
33
|
+
|
34
|
+
# Enable serving of images, stylesheets, and javascripts from an asset server
|
35
|
+
# config.action_controller.asset_host = "http://assets.example.com"
|
36
|
+
|
37
|
+
# Disable delivery errors, bad email addresses will be ignored
|
38
|
+
# config.action_mailer.raise_delivery_errors = false
|
39
|
+
|
40
|
+
# Enable threaded mode
|
41
|
+
# config.threadsafe!
|
42
|
+
|
43
|
+
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
44
|
+
# the I18n.default_locale when a translation can not be found)
|
45
|
+
config.i18n.fallbacks = true
|
46
|
+
|
47
|
+
# Send deprecation notices to registered listeners
|
48
|
+
config.active_support.deprecation = :notify
|
49
|
+
end
|