crowdblog 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -4
- data/README.md +2 -2
- data/app/controllers/crowdblog/admin/transitions_controller.rb +2 -0
- data/app/models/crowdblog/post.rb +1 -0
- data/app/models/crowdblog/status_change_record.rb +6 -0
- data/app/views/crowdblog/admin/posts/_post.html.slim +1 -1
- data/config/initializers/state_machine.rb +4 -0
- data/crowdblog.gemspec +10 -8
- data/db/migrate/20140501164642_create_crowdblog_status_change_records.rb +11 -0
- data/lib/crowdblog/rspec/crowdblog_shared_examples.rb +19 -11
- data/lib/crowdblog/version.rb +1 -1
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config/application.rb +3 -36
- data/spec/dummy/config/boot.rb +3 -9
- data/spec/dummy/config/environment.rb +3 -3
- data/spec/dummy/config/environments/development.rb +20 -12
- data/spec/dummy/config/environments/production.rb +43 -29
- data/spec/dummy/config/environments/test.rb +17 -11
- data/spec/dummy/config/initializers/assets.rb +8 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +6 -5
- data/spec/dummy/config/initializers/mime_types.rb +0 -1
- data/spec/dummy/config/initializers/session_store.rb +1 -6
- data/spec/dummy/config/initializers/wrap_parameters.rb +6 -6
- data/spec/dummy/config/locales/en.yml +20 -2
- data/spec/dummy/config/routes.rb +0 -1
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/schema.rb +10 -2
- data/spec/models/post_spec.rb +4 -4
- data/spec/spec_helper.rb +4 -0
- metadata +90 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3701a773b898934896fd813b3c38491a1d83799
|
4
|
+
data.tar.gz: 04c0e66460f5f20d02af64869cf79eed521c9421
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0037b0d43dea9095378013770c3b16405b59a06282af0170c2fce507b3e36f5fb5b4c2b2aa592cfbb26a801f724edd736d1320c6866e8e4dcd85521a37b7674b
|
7
|
+
data.tar.gz: e8768d740c137d629a9ba0fed5a305746eed54b3df9207895f53f5fe48eb04ad18f03e95de7845f15b97a3fc88d6d734e7537e0426f6ccf650827453d424b331
|
data/Gemfile
CHANGED
@@ -3,15 +3,15 @@ source "http://rubygems.org"
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
gem "jquery-rails"
|
6
|
+
gem 'nokogiri', '= 1.6.3'
|
6
7
|
|
7
8
|
group :assets do
|
8
|
-
gem 'coffee-rails', '~> 4.0.
|
9
|
-
gem 'sass-rails' , '~> 4.0.
|
10
|
-
gem 'uglifier' , '~> 2.
|
9
|
+
gem 'coffee-rails', '~> 4.0.0'
|
10
|
+
gem 'sass-rails' , '~> 4.0.0'
|
11
|
+
gem 'uglifier' , '~> 2.5.0'
|
11
12
|
end
|
12
13
|
|
13
14
|
group :development, :test do
|
14
15
|
gem 'rake' # needed for Travis CI: http://bit.ly/xEgH8j
|
15
16
|
gem 'launchy'
|
16
|
-
gem 'database_cleaner', :github => 'bmabey/database_cleaner'
|
17
17
|
end
|
data/README.md
CHANGED
@@ -6,8 +6,8 @@ CI:
|
|
6
6
|
Code Climate:
|
7
7
|
[![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/crowdint/crowdblog)
|
8
8
|
|
9
|
-
Generic Blog engine, currently in use by [blog.crowdint.com](blog.crowdint.com)
|
10
|
-
and [crowdint.com/careers](crowdint.com/careers), among others.
|
9
|
+
Generic Blog engine, currently in use by [blog.crowdint.com](http://blog.crowdint.com)
|
10
|
+
and [crowdint.com/careers](http://crowdint.com/careers), among others.
|
11
11
|
|
12
12
|
## Installation
|
13
13
|
|
@@ -7,6 +7,8 @@ module Crowdblog
|
|
7
7
|
def create
|
8
8
|
namespace = '_as_publisher' if current_user.is_publisher?
|
9
9
|
@post.send "#{params[:transition]}#{namespace}"
|
10
|
+
status = @post.status_change_records.build(user: current_user, state: params[:transition])
|
11
|
+
status.save
|
10
12
|
respond_with @post, location: admin_post_url(@post)
|
11
13
|
end
|
12
14
|
|
@@ -3,6 +3,7 @@ module Crowdblog
|
|
3
3
|
belongs_to :author, :class_name => Crowdblog.author_user_class_name
|
4
4
|
belongs_to :publisher, :class_name => Crowdblog.publisher_user_class_name
|
5
5
|
has_many :assets
|
6
|
+
has_many :status_change_records
|
6
7
|
|
7
8
|
delegate :name, to: :author, prefix: true, allow_nil: true
|
8
9
|
delegate :email, to: :author, prefix: true, allow_nil: true
|
@@ -15,6 +15,6 @@
|
|
15
15
|
- if current_user.is_publisher?
|
16
16
|
button.btn.btn-small.review Reviewed
|
17
17
|
td.span1
|
18
|
-
= link_to 'Delete', crowdblog.admin_post_path(post), :method => :delete, :confirm => 'Are you sure?', :class => "btn btn-small"
|
18
|
+
= link_to 'Delete', crowdblog.admin_post_path(post), :method => :delete, :data => { :confirm => 'Are you sure?' }, :class => "btn btn-small"
|
19
19
|
td.span1
|
20
20
|
= link_to 'Edit', crowdblog.edit_admin_post_path(post), :class => "btn btn-small"
|
data/crowdblog.gemspec
CHANGED
@@ -5,33 +5,35 @@ require 'crowdblog/version'
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = 'crowdblog'
|
7
7
|
s.version = Crowdblog::VERSION
|
8
|
-
s.authors = ['Crowd Interactive', 'David Padilla', 'Chalo Fernandez', 'Ignacio Galindo', 'Nora Alvarado']
|
9
|
-
s.email = %w(opensource@crowdint.com david@crowdint.com chalofa@crowdint.com ignacio@crowdint.com nora@crowdint.com)
|
8
|
+
s.authors = ['Crowd Interactive', 'David Padilla', 'Chalo Fernandez', 'Ignacio Galindo', 'Nora Alvarado', 'Mario Chavez']
|
9
|
+
s.email = %w(opensource@crowdint.com david@crowdint.com chalofa@crowdint.com ignacio@crowdint.com nora@crowdint.com mario.chavez@crowdint.com)
|
10
10
|
s.homepage = 'http://github.com/crowdint/crowdblog'
|
11
11
|
s.summary = 'CrowdBlog base functionality and backend'
|
12
12
|
s.description = 'This mountable engine has the basic functionality to manage Posts'
|
13
|
+
s.license = 'MIT'
|
13
14
|
|
14
15
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
15
16
|
s.files = `git ls-files`.split("\n")
|
16
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
18
|
s.require_paths = %w(lib app)
|
18
19
|
|
19
|
-
s.add_dependency 'rails', '~> 4.
|
20
|
+
s.add_dependency 'rails', '~> 4.1.0'
|
20
21
|
|
21
|
-
s.add_dependency 'carrierwave', '~> 0.
|
22
|
+
s.add_dependency 'carrierwave', '~> 0.10.0'
|
22
23
|
s.add_dependency 'gravtastic', '~> 3.2.6'
|
23
24
|
s.add_dependency 'jquery-rails'
|
24
25
|
s.add_dependency 'jbuilder'
|
25
|
-
s.add_dependency 'redcarpet', '~> 3.
|
26
|
-
s.add_dependency 'slim', '~> 2.0.
|
26
|
+
s.add_dependency 'redcarpet', '~> 3.1.0'
|
27
|
+
s.add_dependency 'slim', '~> 2.0.0'
|
27
28
|
s.add_dependency 'state_machine', '~> 1.2.0'
|
28
29
|
|
29
30
|
s.add_development_dependency 'capybara-webkit', '~> 1.0.0'
|
30
|
-
s.add_development_dependency 'database_cleaner'
|
31
|
+
s.add_development_dependency 'database_cleaner', '~> 1.3.0'
|
31
32
|
s.add_development_dependency 'fuubar'
|
32
33
|
s.add_development_dependency 'rspec-rails'
|
34
|
+
s.add_development_dependency 'rspec-activemodel-mocks'
|
33
35
|
s.add_development_dependency 'selenium-webdriver'
|
34
|
-
s.add_development_dependency 'simplecov'
|
36
|
+
s.add_development_dependency 'simplecov', '~> 0.9.0'
|
35
37
|
s.add_development_dependency 'simplecov-rcov-text'
|
36
38
|
s.add_development_dependency 'sqlite3'
|
37
39
|
end
|
@@ -8,7 +8,7 @@ shared_examples_for "a crowdblog", :type => :feature do
|
|
8
8
|
post.save!
|
9
9
|
post.publish_as_publisher
|
10
10
|
|
11
|
-
visit
|
11
|
+
visit root_path
|
12
12
|
|
13
13
|
within "#post_#{post.id}" do
|
14
14
|
page.should have_content post.title
|
@@ -20,14 +20,14 @@ shared_examples_for "a crowdblog", :type => :feature do
|
|
20
20
|
describe "Admin" do
|
21
21
|
describe "manage posts" do
|
22
22
|
it "creates a post", :js => true do
|
23
|
-
visit
|
23
|
+
visit admin_posts_path
|
24
24
|
click_link 'New Post'
|
25
25
|
|
26
26
|
fill_in 'Title', :with => 'A post title'
|
27
27
|
fill_in 'Body' , :with => 'A post body'
|
28
28
|
click_button 'Update'
|
29
29
|
|
30
|
-
page.current_path.should ==
|
30
|
+
page.current_path.should == admin_posts_path
|
31
31
|
page.should have_content 'A post title'
|
32
32
|
end
|
33
33
|
|
@@ -38,7 +38,7 @@ shared_examples_for "a crowdblog", :type => :feature do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it "edits a post" do
|
41
|
-
visit
|
41
|
+
visit admin_posts_path
|
42
42
|
within "#post_#{post.id}" do
|
43
43
|
click_link 'Edit'
|
44
44
|
end
|
@@ -47,22 +47,22 @@ shared_examples_for "a crowdblog", :type => :feature do
|
|
47
47
|
fill_in 'Body' , :with => 'A NEW post body'
|
48
48
|
click_button 'Update'
|
49
49
|
|
50
|
-
page.current_path.should ==
|
50
|
+
page.current_path.should == admin_posts_path
|
51
51
|
page.should have_content 'A NEW post title'
|
52
52
|
end
|
53
53
|
|
54
54
|
it "deletes a post" do
|
55
|
-
visit
|
55
|
+
visit admin_posts_path
|
56
56
|
|
57
57
|
within "#post_#{post.id}" do
|
58
58
|
click_link 'Delete'
|
59
59
|
end
|
60
|
-
page.current_path.should ==
|
60
|
+
page.current_path.should == admin_posts_path
|
61
61
|
page.should_not have_content 'A post title'
|
62
62
|
end
|
63
63
|
|
64
64
|
it "publishes a post", :js => true do
|
65
|
-
visit
|
65
|
+
visit admin_posts_path
|
66
66
|
|
67
67
|
within "#post_#{post.id}" do
|
68
68
|
button = find_link 'Publish'
|
@@ -71,13 +71,15 @@ shared_examples_for "a crowdblog", :type => :feature do
|
|
71
71
|
page.should have_css '.publish-btn.btn-success'
|
72
72
|
page.should have_css '.review.active'
|
73
73
|
post.reload.state.should eq 'published'
|
74
|
+
post.status_change_records.last.state.should == 'publish'
|
75
|
+
post.status_change_records.last.user.should == ::User.last
|
74
76
|
end
|
75
77
|
end
|
76
78
|
|
77
79
|
it "draftes a post", :js => true do
|
78
80
|
post.publish_as_publisher!
|
79
81
|
|
80
|
-
visit
|
82
|
+
visit admin_posts_path
|
81
83
|
|
82
84
|
within "#post_#{post.id}" do
|
83
85
|
button = find_link 'Publish'
|
@@ -86,12 +88,14 @@ shared_examples_for "a crowdblog", :type => :feature do
|
|
86
88
|
page.should have_css '.publish-btn.btn-danger'
|
87
89
|
page.should have_css '.draft.active'
|
88
90
|
post.reload.state.should eq 'drafted'
|
91
|
+
post.status_change_records.last.state.should == 'draft'
|
92
|
+
post.status_change_records.last.user.should == ::User.last
|
89
93
|
end
|
90
94
|
end
|
91
95
|
|
92
96
|
it "marks the post as reviewed", :js => true do
|
93
97
|
post.finish!
|
94
|
-
visit
|
98
|
+
visit admin_posts_path
|
95
99
|
|
96
100
|
within "#post_#{post.id}" do
|
97
101
|
button = find_button 'Reviewed'
|
@@ -99,11 +103,13 @@ shared_examples_for "a crowdblog", :type => :feature do
|
|
99
103
|
|
100
104
|
page.should have_css '.review.active'
|
101
105
|
post.reload.state.should eq 'reviewed'
|
106
|
+
post.status_change_records.last.state.should == 'review'
|
107
|
+
post.status_change_records.last.user.should == ::User.last
|
102
108
|
end
|
103
109
|
end
|
104
110
|
|
105
111
|
it "marks the post as finished", :js => true do
|
106
|
-
visit
|
112
|
+
visit admin_posts_path
|
107
113
|
|
108
114
|
within "#post_#{post.id}" do
|
109
115
|
button = find_button 'Finished'
|
@@ -111,6 +117,8 @@ shared_examples_for "a crowdblog", :type => :feature do
|
|
111
117
|
|
112
118
|
page.should have_css '.finish.active'
|
113
119
|
post.reload.state.should eq 'finished'
|
120
|
+
post.status_change_records.last.state.should == 'finish'
|
121
|
+
post.status_change_records.last.user.should == ::User.last
|
114
122
|
end
|
115
123
|
end
|
116
124
|
end
|
data/lib/crowdblog/version.rb
CHANGED
data/spec/dummy/bin/rake
ADDED
@@ -1,13 +1,13 @@
|
|
1
1
|
require File.expand_path('../boot', __FILE__)
|
2
2
|
|
3
|
-
# Pick the frameworks you want:
|
4
3
|
require "active_record/railtie"
|
5
4
|
require "action_controller/railtie"
|
6
5
|
require "action_mailer/railtie"
|
7
6
|
require "sprockets/railtie"
|
8
|
-
# require "rails/test_unit/railtie"
|
9
7
|
|
10
|
-
|
8
|
+
# Require the gems listed in Gemfile, including any gems
|
9
|
+
# you've limited to :test, :development, or :production.
|
10
|
+
Bundler.require(*Rails.groups)
|
11
11
|
require "crowdblog"
|
12
12
|
|
13
13
|
module Dummy
|
@@ -16,16 +16,6 @@ module Dummy
|
|
16
16
|
# Application configuration should go into files in config/initializers
|
17
17
|
# -- all .rb files in that directory are automatically loaded.
|
18
18
|
|
19
|
-
# Custom directories with classes and modules you want to be autoloadable.
|
20
|
-
# config.autoload_paths += %W(#{config.root}/extras)
|
21
|
-
|
22
|
-
# Only load the plugins named here, in the order given (default is alphabetical).
|
23
|
-
# :all can be used as a placeholder for all plugins not explicitly named.
|
24
|
-
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
25
|
-
|
26
|
-
# Activate observers that should always be running.
|
27
|
-
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
28
|
-
|
29
19
|
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
30
20
|
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
31
21
|
# config.time_zone = 'Central Time (US & Canada)'
|
@@ -33,28 +23,5 @@ module Dummy
|
|
33
23
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
34
24
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
35
25
|
# config.i18n.default_locale = :de
|
36
|
-
|
37
|
-
# Configure the default encoding used in templates for Ruby 1.9.
|
38
|
-
config.encoding = "utf-8"
|
39
|
-
|
40
|
-
# Configure sensitive parameters which will be filtered from the log file.
|
41
|
-
config.filter_parameters += [:password]
|
42
|
-
|
43
|
-
# Use SQL instead of Active Record's schema dumper when creating the database.
|
44
|
-
# This is necessary if your schema can't be completely dumped by the schema dumper,
|
45
|
-
# like if you have constraints or database-specific column types
|
46
|
-
# config.active_record.schema_format = :sql
|
47
|
-
|
48
|
-
# Enforce whitelist mode for mass assignment.
|
49
|
-
# This will create an empty whitelist of attributes available for mass-assignment for all models
|
50
|
-
# in your app. As such, your models will need to explicitly whitelist or blacklist accessible
|
51
|
-
# parameters by using an attr_accessible or attr_protected declaration.
|
52
|
-
# config.active_record.whitelist_attributes = true
|
53
|
-
|
54
|
-
# Enable the asset pipeline
|
55
|
-
config.assets.enabled = true
|
56
|
-
|
57
|
-
# Version of your assets, change this if you want to expire all your assets
|
58
|
-
config.assets.version = '1.0'
|
59
26
|
end
|
60
27
|
end
|
data/spec/dummy/config/boot.rb
CHANGED
@@ -1,10 +1,4 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Set up gems listed in the Gemfile.
|
2
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
|
3
3
|
|
4
|
-
if File.exist?(
|
5
|
-
ENV['BUNDLE_GEMFILE'] = gemfile
|
6
|
-
require 'bundler'
|
7
|
-
Bundler.setup
|
8
|
-
end
|
9
|
-
|
10
|
-
$:.unshift File.expand_path('../../../../lib', __FILE__)
|
4
|
+
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
|
@@ -1,29 +1,37 @@
|
|
1
|
-
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
1
|
+
Rails.application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
3
|
|
4
4
|
# In the development environment your application's code is reloaded on
|
5
5
|
# every request. This slows down response time but is perfect for development
|
6
6
|
# since you don't have to restart the web server when you make code changes.
|
7
7
|
config.cache_classes = false
|
8
8
|
|
9
|
-
#
|
9
|
+
# Do not eager load code on boot.
|
10
|
+
config.eager_load = false
|
11
|
+
|
12
|
+
# Show full error reports and disable caching.
|
10
13
|
config.consider_all_requests_local = true
|
11
14
|
config.action_controller.perform_caching = false
|
12
15
|
|
13
|
-
# Don't care if the mailer can't send
|
16
|
+
# Don't care if the mailer can't send.
|
14
17
|
config.action_mailer.raise_delivery_errors = false
|
15
18
|
|
16
|
-
# Print deprecation notices to the Rails logger
|
19
|
+
# Print deprecation notices to the Rails logger.
|
17
20
|
config.active_support.deprecation = :log
|
18
21
|
|
19
|
-
#
|
20
|
-
config.
|
21
|
-
|
22
|
-
# Do not compress assets
|
23
|
-
config.assets.compress = false
|
22
|
+
# Raise an error on page load if there are pending migrations.
|
23
|
+
config.active_record.migration_error = :page_load
|
24
24
|
|
25
|
-
#
|
25
|
+
# Debug mode disables concatenation and preprocessing of assets.
|
26
|
+
# This option may cause significant delays in view rendering with a large
|
27
|
+
# number of complex assets.
|
26
28
|
config.assets.debug = true
|
27
29
|
|
28
|
-
|
30
|
+
# Adds additional error checking when serving assets at runtime.
|
31
|
+
# Checks for improperly declared sprockets dependencies.
|
32
|
+
# Raises helpful error messages.
|
33
|
+
config.assets.raise_runtime_errors = true
|
34
|
+
|
35
|
+
# Raises error for missing translations
|
36
|
+
# config.action_view.raise_on_missing_translations = true
|
29
37
|
end
|
@@ -1,68 +1,82 @@
|
|
1
|
-
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
1
|
+
Rails.application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
3
|
|
4
|
-
# Code is not reloaded between requests
|
4
|
+
# Code is not reloaded between requests.
|
5
5
|
config.cache_classes = true
|
6
6
|
|
7
|
-
#
|
7
|
+
# Eager load code on boot. This eager loads most of Rails and
|
8
|
+
# your application in memory, allowing both threaded web servers
|
9
|
+
# and those relying on copy on write to perform better.
|
10
|
+
# Rake tasks automatically ignore this option for performance.
|
11
|
+
config.eager_load = true
|
12
|
+
|
13
|
+
# Full error reports are disabled and caching is turned on.
|
8
14
|
config.consider_all_requests_local = false
|
9
15
|
config.action_controller.perform_caching = true
|
10
16
|
|
11
|
-
#
|
17
|
+
# Enable Rack::Cache to put a simple HTTP cache in front of your application
|
18
|
+
# Add `rack-cache` to your Gemfile before enabling this.
|
19
|
+
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
|
20
|
+
# config.action_dispatch.rack_cache = true
|
21
|
+
|
22
|
+
# Disable Rails's static asset server (Apache or nginx will already do this).
|
12
23
|
config.serve_static_assets = false
|
13
24
|
|
14
|
-
# Compress JavaScripts and CSS
|
15
|
-
config.assets.
|
25
|
+
# Compress JavaScripts and CSS.
|
26
|
+
config.assets.js_compressor = :uglifier
|
27
|
+
# config.assets.css_compressor = :sass
|
16
28
|
|
17
|
-
#
|
29
|
+
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
18
30
|
config.assets.compile = false
|
19
31
|
|
20
|
-
# Generate digests for assets URLs
|
32
|
+
# Generate digests for assets URLs.
|
21
33
|
config.assets.digest = true
|
22
34
|
|
23
|
-
#
|
24
|
-
# config.assets.manifest = YOUR_PATH
|
35
|
+
# `config.assets.precompile` has moved to config/initializers/assets.rb
|
25
36
|
|
26
|
-
# Specifies the header that your server uses for sending files
|
37
|
+
# Specifies the header that your server uses for sending files.
|
27
38
|
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
|
28
39
|
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
|
29
40
|
|
30
41
|
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
31
42
|
# config.force_ssl = true
|
32
43
|
|
33
|
-
#
|
34
|
-
|
44
|
+
# Set to :debug to see everything in the log.
|
45
|
+
config.log_level = :info
|
35
46
|
|
36
|
-
# Prepend all log lines with the following tags
|
47
|
+
# Prepend all log lines with the following tags.
|
37
48
|
# config.log_tags = [ :subdomain, :uuid ]
|
38
49
|
|
39
|
-
# Use a different logger for distributed setups
|
50
|
+
# Use a different logger for distributed setups.
|
40
51
|
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
|
41
52
|
|
42
|
-
# Use a different cache store in production
|
53
|
+
# Use a different cache store in production.
|
43
54
|
# config.cache_store = :mem_cache_store
|
44
55
|
|
45
|
-
# Enable serving of images, stylesheets, and JavaScripts from an asset server
|
56
|
+
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
46
57
|
# config.action_controller.asset_host = "http://assets.example.com"
|
47
58
|
|
48
|
-
# Precompile additional assets
|
59
|
+
# Precompile additional assets.
|
60
|
+
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
49
61
|
# config.assets.precompile += %w( search.js )
|
50
62
|
|
51
|
-
#
|
63
|
+
# Ignore bad email addresses and do not raise email delivery errors.
|
64
|
+
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
52
65
|
# config.action_mailer.raise_delivery_errors = false
|
53
66
|
|
54
|
-
# Enable threaded mode
|
55
|
-
# config.threadsafe!
|
56
|
-
|
57
67
|
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
58
|
-
# the I18n.default_locale when a translation
|
68
|
+
# the I18n.default_locale when a translation cannot be found).
|
59
69
|
config.i18n.fallbacks = true
|
60
70
|
|
61
|
-
# Send deprecation notices to registered listeners
|
71
|
+
# Send deprecation notices to registered listeners.
|
62
72
|
config.active_support.deprecation = :notify
|
63
73
|
|
64
|
-
#
|
65
|
-
#
|
66
|
-
|
67
|
-
|
74
|
+
# Disable automatic flushing of the log to improve performance.
|
75
|
+
# config.autoflush_log = false
|
76
|
+
|
77
|
+
# Use default logging formatter so that PID and timestamp are not suppressed.
|
78
|
+
config.log_formatter = ::Logger::Formatter.new
|
79
|
+
|
80
|
+
# Do not dump schema after migrations.
|
81
|
+
config.active_record.dump_schema_after_migration = false
|
68
82
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
1
|
+
Rails.application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
3
|
|
4
4
|
# The test environment is used exclusively to run your application's
|
5
5
|
# test suite. You never need to work with it otherwise. Remember that
|
@@ -7,27 +7,33 @@ Dummy::Application.configure do
|
|
7
7
|
# and recreated between test runs. Don't rely on the data there!
|
8
8
|
config.cache_classes = true
|
9
9
|
|
10
|
-
#
|
11
|
-
|
12
|
-
|
10
|
+
# Do not eager load code on boot. This avoids loading your whole application
|
11
|
+
# just for the purpose of running a single test. If you are using a tool that
|
12
|
+
# preloads Rails for running tests, you may have to set it to true.
|
13
|
+
config.eager_load = false
|
14
|
+
|
15
|
+
# Configure static asset server for tests with Cache-Control for performance.
|
16
|
+
config.serve_static_assets = true
|
17
|
+
config.static_cache_control = 'public, max-age=3600'
|
13
18
|
|
14
|
-
# Show full error reports and disable caching
|
19
|
+
# Show full error reports and disable caching.
|
15
20
|
config.consider_all_requests_local = true
|
16
21
|
config.action_controller.perform_caching = false
|
17
22
|
|
18
|
-
# Raise exceptions instead of rendering exception templates
|
23
|
+
# Raise exceptions instead of rendering exception templates.
|
19
24
|
config.action_dispatch.show_exceptions = false
|
20
25
|
|
21
|
-
# Disable request forgery protection in test environment
|
22
|
-
config.action_controller.allow_forgery_protection
|
26
|
+
# Disable request forgery protection in test environment.
|
27
|
+
config.action_controller.allow_forgery_protection = false
|
23
28
|
|
24
29
|
# Tell Action Mailer not to deliver emails to the real world.
|
25
30
|
# The :test delivery method accumulates sent emails in the
|
26
31
|
# ActionMailer::Base.deliveries array.
|
27
32
|
config.action_mailer.delivery_method = :test
|
28
33
|
|
29
|
-
# Print deprecation notices to the stderr
|
34
|
+
# Print deprecation notices to the stderr.
|
30
35
|
config.active_support.deprecation = :stderr
|
31
36
|
|
32
|
-
|
37
|
+
# Raises error for missing translations
|
38
|
+
# config.action_view.raise_on_missing_translations = true
|
33
39
|
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Version of your assets, change this if you want to expire all your assets.
|
4
|
+
Rails.application.config.assets.version = '1.0'
|
5
|
+
|
6
|
+
# Precompile additional assets.
|
7
|
+
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
8
|
+
# Rails.application.config.assets.precompile += %w( search.js )
|
@@ -1,15 +1,16 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
2
2
|
|
3
|
-
# Add new inflection rules using the following format
|
4
|
-
#
|
5
|
-
#
|
3
|
+
# Add new inflection rules using the following format. Inflections
|
4
|
+
# are locale specific, and you may define rules for as many different
|
5
|
+
# locales as you wish. All of these examples are active by default:
|
6
|
+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
6
7
|
# inflect.plural /^(ox)$/i, '\1en'
|
7
8
|
# inflect.singular /^(ox)en/i, '\1'
|
8
9
|
# inflect.irregular 'person', 'people'
|
9
10
|
# inflect.uncountable %w( fish sheep )
|
10
11
|
# end
|
11
|
-
|
12
|
+
|
12
13
|
# These inflection rules are supported but not enabled by default:
|
13
|
-
# ActiveSupport::Inflector.inflections do |inflect|
|
14
|
+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
14
15
|
# inflect.acronym 'RESTful'
|
15
16
|
# end
|
@@ -1,8 +1,3 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
# Use the database for sessions instead of the cookie-based default,
|
6
|
-
# which shouldn't be used to store highly confidential information
|
7
|
-
# (create the session table with "rails generate session_migration")
|
8
|
-
# Dummy::Application.config.session_store :active_record_store
|
3
|
+
Rails.application.config.session_store :cookie_store, key: '_dummy_session'
|
@@ -1,14 +1,14 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
2
|
-
|
2
|
+
|
3
3
|
# This file contains settings for ActionController::ParamsWrapper which
|
4
4
|
# is enabled by default.
|
5
5
|
|
6
6
|
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
7
7
|
ActiveSupport.on_load(:action_controller) do
|
8
|
-
wrap_parameters format: [:json]
|
8
|
+
wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
|
9
9
|
end
|
10
10
|
|
11
|
-
#
|
12
|
-
ActiveSupport.on_load(:active_record) do
|
13
|
-
self.include_root_in_json =
|
14
|
-
end
|
11
|
+
# To enable root element in JSON for ActiveRecord objects.
|
12
|
+
# ActiveSupport.on_load(:active_record) do
|
13
|
+
# self.include_root_in_json = true
|
14
|
+
# end
|
@@ -1,5 +1,23 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# Files in the config/locales directory are used for internationalization
|
2
|
+
# and are automatically loaded by Rails. If you want to use locales other
|
3
|
+
# than English, add the necessary files in this directory.
|
4
|
+
#
|
5
|
+
# To use the locales, use `I18n.t`:
|
6
|
+
#
|
7
|
+
# I18n.t 'hello'
|
8
|
+
#
|
9
|
+
# In views, this is aliased to just `t`:
|
10
|
+
#
|
11
|
+
# <%= t('hello') %>
|
12
|
+
#
|
13
|
+
# To use a different locale, set it with `I18n.locale`:
|
14
|
+
#
|
15
|
+
# I18n.locale = :es
|
16
|
+
#
|
17
|
+
# This would use the information in config/locales/es.yml.
|
18
|
+
#
|
19
|
+
# To learn more, please read the Rails Internationalization guide
|
20
|
+
# available at http://guides.rubyonrails.org/i18n.html.
|
3
21
|
|
4
22
|
en:
|
5
23
|
hello: "Hello world"
|
data/spec/dummy/config/routes.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Your secret key is used for verifying the integrity of signed cookies.
|
4
|
+
# If you change this key, all old signed cookies will become invalid!
|
5
|
+
|
6
|
+
# Make sure the secret is at least 30 characters and all random,
|
7
|
+
# no regular words or you'll be exposed to dictionary attacks.
|
8
|
+
# You can use `rake secret` to generate a secure secret key.
|
9
|
+
|
10
|
+
# Make sure the secrets in this file are kept private
|
11
|
+
# if you're sharing your code publicly.
|
12
|
+
|
13
|
+
development:
|
14
|
+
secret_key_base: 6a441d70d11746af3ab8ec4ae145c09a7075323d768af04fe6bd1abc477f85840b4d734bffb833e045178d03e883b3650bf3bfe2a9995ce6efdaf1bd4900a0c1
|
15
|
+
|
16
|
+
test:
|
17
|
+
secret_key_base: a21663c921f987339b3f60d00605da9f7243405e6d0e1fa89ac0aa6de255cfb9488bfe3742cef8d2b1aef436cd0c2b73d528ab502bf3d531dca74f7185ea67b8
|
18
|
+
|
19
|
+
# Do not keep production secrets in the repository,
|
20
|
+
# instead read values from the environment.
|
21
|
+
production:
|
22
|
+
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version
|
14
|
+
ActiveRecord::Schema.define(:version => 20140501164642) do
|
15
15
|
|
16
16
|
create_table "crowdblog_assets", force: true do |t|
|
17
17
|
t.integer "post_id"
|
@@ -34,7 +34,15 @@ ActiveRecord::Schema.define(version: 20121016063750) do
|
|
34
34
|
t.datetime "updated_at"
|
35
35
|
end
|
36
36
|
|
37
|
-
create_table "
|
37
|
+
create_table "crowdblog_status_change_records", :force => true do |t|
|
38
|
+
t.integer "user_id"
|
39
|
+
t.integer "post_id"
|
40
|
+
t.string "state"
|
41
|
+
t.datetime "created_at", :null => false
|
42
|
+
t.datetime "updated_at", :null => false
|
43
|
+
end
|
44
|
+
|
45
|
+
create_table "users", :force => true do |t|
|
38
46
|
t.string "email"
|
39
47
|
t.string "name"
|
40
48
|
end
|
data/spec/models/post_spec.rb
CHANGED
@@ -42,11 +42,11 @@ module Crowdblog
|
|
42
42
|
end
|
43
43
|
|
44
44
|
describe '#self.scoped_for' do
|
45
|
-
let(:user) {
|
45
|
+
let(:user) { double(is_publisher?: true) }
|
46
46
|
|
47
47
|
context 'user is publisher' do
|
48
48
|
it 'should see all the Posts' do
|
49
|
-
Post.scoped_for(user).should == Post.
|
49
|
+
Post.scoped_for(user).should == Post.all
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -68,7 +68,7 @@ module Crowdblog
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it "returns false" do
|
71
|
-
subject.allowed_to_update_permalink?.should
|
71
|
+
subject.allowed_to_update_permalink?.should be_falsey
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
@@ -78,7 +78,7 @@ module Crowdblog
|
|
78
78
|
end
|
79
79
|
|
80
80
|
it "returns true" do
|
81
|
-
subject.allowed_to_update_permalink?.should
|
81
|
+
subject.allowed_to_update_permalink?.should be_truthy
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,9 +5,11 @@ ENV["RAILS_ENV"] ||= 'test'
|
|
5
5
|
require File.expand_path("../dummy/config/environment", __FILE__)
|
6
6
|
require 'rspec/rails'
|
7
7
|
require 'rspec/autorun'
|
8
|
+
require 'rspec/active_model/mocks'
|
8
9
|
require 'capybara/rspec'
|
9
10
|
require 'crowdblog/rspec'
|
10
11
|
require 'database_cleaner'
|
12
|
+
require 'coffee_script'
|
11
13
|
|
12
14
|
ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
|
13
15
|
|
@@ -40,6 +42,8 @@ RSpec.configure do |config|
|
|
40
42
|
# Include Engine routes (needed for Controller specs)
|
41
43
|
config.include Crowdblog::Engine.routes.url_helpers
|
42
44
|
|
45
|
+
config.include Capybara::DSL
|
46
|
+
|
43
47
|
config.before(:suite) do
|
44
48
|
DatabaseCleaner.strategy = :truncation
|
45
49
|
DatabaseCleaner.clean_with(:truncation)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crowdblog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Crowd Interactive
|
@@ -9,233 +9,248 @@ authors:
|
|
9
9
|
- Chalo Fernandez
|
10
10
|
- Ignacio Galindo
|
11
11
|
- Nora Alvarado
|
12
|
+
- Mario Chavez
|
12
13
|
autorequire:
|
13
14
|
bindir: bin
|
14
15
|
cert_chain: []
|
15
|
-
date:
|
16
|
+
date: 2014-09-01 00:00:00.000000000 Z
|
16
17
|
dependencies:
|
17
18
|
- !ruby/object:Gem::Dependency
|
18
19
|
name: rails
|
19
20
|
requirement: !ruby/object:Gem::Requirement
|
20
21
|
requirements:
|
21
|
-
- - ~>
|
22
|
+
- - "~>"
|
22
23
|
- !ruby/object:Gem::Version
|
23
|
-
version: 4.
|
24
|
+
version: 4.1.0
|
24
25
|
type: :runtime
|
25
26
|
prerelease: false
|
26
27
|
version_requirements: !ruby/object:Gem::Requirement
|
27
28
|
requirements:
|
28
|
-
- - ~>
|
29
|
+
- - "~>"
|
29
30
|
- !ruby/object:Gem::Version
|
30
|
-
version: 4.
|
31
|
+
version: 4.1.0
|
31
32
|
- !ruby/object:Gem::Dependency
|
32
33
|
name: carrierwave
|
33
34
|
requirement: !ruby/object:Gem::Requirement
|
34
35
|
requirements:
|
35
|
-
- - ~>
|
36
|
+
- - "~>"
|
36
37
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.
|
38
|
+
version: 0.10.0
|
38
39
|
type: :runtime
|
39
40
|
prerelease: false
|
40
41
|
version_requirements: !ruby/object:Gem::Requirement
|
41
42
|
requirements:
|
42
|
-
- - ~>
|
43
|
+
- - "~>"
|
43
44
|
- !ruby/object:Gem::Version
|
44
|
-
version: 0.
|
45
|
+
version: 0.10.0
|
45
46
|
- !ruby/object:Gem::Dependency
|
46
47
|
name: gravtastic
|
47
48
|
requirement: !ruby/object:Gem::Requirement
|
48
49
|
requirements:
|
49
|
-
- - ~>
|
50
|
+
- - "~>"
|
50
51
|
- !ruby/object:Gem::Version
|
51
52
|
version: 3.2.6
|
52
53
|
type: :runtime
|
53
54
|
prerelease: false
|
54
55
|
version_requirements: !ruby/object:Gem::Requirement
|
55
56
|
requirements:
|
56
|
-
- - ~>
|
57
|
+
- - "~>"
|
57
58
|
- !ruby/object:Gem::Version
|
58
59
|
version: 3.2.6
|
59
60
|
- !ruby/object:Gem::Dependency
|
60
61
|
name: jquery-rails
|
61
62
|
requirement: !ruby/object:Gem::Requirement
|
62
63
|
requirements:
|
63
|
-
- -
|
64
|
+
- - ">="
|
64
65
|
- !ruby/object:Gem::Version
|
65
66
|
version: '0'
|
66
67
|
type: :runtime
|
67
68
|
prerelease: false
|
68
69
|
version_requirements: !ruby/object:Gem::Requirement
|
69
70
|
requirements:
|
70
|
-
- -
|
71
|
+
- - ">="
|
71
72
|
- !ruby/object:Gem::Version
|
72
73
|
version: '0'
|
73
74
|
- !ruby/object:Gem::Dependency
|
74
75
|
name: jbuilder
|
75
76
|
requirement: !ruby/object:Gem::Requirement
|
76
77
|
requirements:
|
77
|
-
- -
|
78
|
+
- - ">="
|
78
79
|
- !ruby/object:Gem::Version
|
79
80
|
version: '0'
|
80
81
|
type: :runtime
|
81
82
|
prerelease: false
|
82
83
|
version_requirements: !ruby/object:Gem::Requirement
|
83
84
|
requirements:
|
84
|
-
- -
|
85
|
+
- - ">="
|
85
86
|
- !ruby/object:Gem::Version
|
86
87
|
version: '0'
|
87
88
|
- !ruby/object:Gem::Dependency
|
88
89
|
name: redcarpet
|
89
90
|
requirement: !ruby/object:Gem::Requirement
|
90
91
|
requirements:
|
91
|
-
- - ~>
|
92
|
+
- - "~>"
|
92
93
|
- !ruby/object:Gem::Version
|
93
|
-
version: 3.
|
94
|
+
version: 3.1.0
|
94
95
|
type: :runtime
|
95
96
|
prerelease: false
|
96
97
|
version_requirements: !ruby/object:Gem::Requirement
|
97
98
|
requirements:
|
98
|
-
- - ~>
|
99
|
+
- - "~>"
|
99
100
|
- !ruby/object:Gem::Version
|
100
|
-
version: 3.
|
101
|
+
version: 3.1.0
|
101
102
|
- !ruby/object:Gem::Dependency
|
102
103
|
name: slim
|
103
104
|
requirement: !ruby/object:Gem::Requirement
|
104
105
|
requirements:
|
105
|
-
- - ~>
|
106
|
+
- - "~>"
|
106
107
|
- !ruby/object:Gem::Version
|
107
|
-
version: 2.0.
|
108
|
+
version: 2.0.0
|
108
109
|
type: :runtime
|
109
110
|
prerelease: false
|
110
111
|
version_requirements: !ruby/object:Gem::Requirement
|
111
112
|
requirements:
|
112
|
-
- - ~>
|
113
|
+
- - "~>"
|
113
114
|
- !ruby/object:Gem::Version
|
114
|
-
version: 2.0.
|
115
|
+
version: 2.0.0
|
115
116
|
- !ruby/object:Gem::Dependency
|
116
117
|
name: state_machine
|
117
118
|
requirement: !ruby/object:Gem::Requirement
|
118
119
|
requirements:
|
119
|
-
- - ~>
|
120
|
+
- - "~>"
|
120
121
|
- !ruby/object:Gem::Version
|
121
122
|
version: 1.2.0
|
122
123
|
type: :runtime
|
123
124
|
prerelease: false
|
124
125
|
version_requirements: !ruby/object:Gem::Requirement
|
125
126
|
requirements:
|
126
|
-
- - ~>
|
127
|
+
- - "~>"
|
127
128
|
- !ruby/object:Gem::Version
|
128
129
|
version: 1.2.0
|
129
130
|
- !ruby/object:Gem::Dependency
|
130
131
|
name: capybara-webkit
|
131
132
|
requirement: !ruby/object:Gem::Requirement
|
132
133
|
requirements:
|
133
|
-
- - ~>
|
134
|
+
- - "~>"
|
134
135
|
- !ruby/object:Gem::Version
|
135
136
|
version: 1.0.0
|
136
137
|
type: :development
|
137
138
|
prerelease: false
|
138
139
|
version_requirements: !ruby/object:Gem::Requirement
|
139
140
|
requirements:
|
140
|
-
- - ~>
|
141
|
+
- - "~>"
|
141
142
|
- !ruby/object:Gem::Version
|
142
143
|
version: 1.0.0
|
143
144
|
- !ruby/object:Gem::Dependency
|
144
145
|
name: database_cleaner
|
145
146
|
requirement: !ruby/object:Gem::Requirement
|
146
147
|
requirements:
|
147
|
-
- -
|
148
|
+
- - "~>"
|
148
149
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
150
|
+
version: 1.3.0
|
150
151
|
type: :development
|
151
152
|
prerelease: false
|
152
153
|
version_requirements: !ruby/object:Gem::Requirement
|
153
154
|
requirements:
|
154
|
-
- -
|
155
|
+
- - "~>"
|
155
156
|
- !ruby/object:Gem::Version
|
156
|
-
version:
|
157
|
+
version: 1.3.0
|
157
158
|
- !ruby/object:Gem::Dependency
|
158
159
|
name: fuubar
|
159
160
|
requirement: !ruby/object:Gem::Requirement
|
160
161
|
requirements:
|
161
|
-
- -
|
162
|
+
- - ">="
|
162
163
|
- !ruby/object:Gem::Version
|
163
164
|
version: '0'
|
164
165
|
type: :development
|
165
166
|
prerelease: false
|
166
167
|
version_requirements: !ruby/object:Gem::Requirement
|
167
168
|
requirements:
|
168
|
-
- -
|
169
|
+
- - ">="
|
169
170
|
- !ruby/object:Gem::Version
|
170
171
|
version: '0'
|
171
172
|
- !ruby/object:Gem::Dependency
|
172
173
|
name: rspec-rails
|
173
174
|
requirement: !ruby/object:Gem::Requirement
|
174
175
|
requirements:
|
175
|
-
- -
|
176
|
+
- - ">="
|
176
177
|
- !ruby/object:Gem::Version
|
177
178
|
version: '0'
|
178
179
|
type: :development
|
179
180
|
prerelease: false
|
180
181
|
version_requirements: !ruby/object:Gem::Requirement
|
181
182
|
requirements:
|
182
|
-
- -
|
183
|
+
- - ">="
|
183
184
|
- !ruby/object:Gem::Version
|
184
185
|
version: '0'
|
185
186
|
- !ruby/object:Gem::Dependency
|
186
|
-
name:
|
187
|
+
name: rspec-activemodel-mocks
|
187
188
|
requirement: !ruby/object:Gem::Requirement
|
188
189
|
requirements:
|
189
|
-
- -
|
190
|
+
- - ">="
|
190
191
|
- !ruby/object:Gem::Version
|
191
192
|
version: '0'
|
192
193
|
type: :development
|
193
194
|
prerelease: false
|
194
195
|
version_requirements: !ruby/object:Gem::Requirement
|
195
196
|
requirements:
|
196
|
-
- -
|
197
|
+
- - ">="
|
197
198
|
- !ruby/object:Gem::Version
|
198
199
|
version: '0'
|
199
200
|
- !ruby/object:Gem::Dependency
|
200
|
-
name:
|
201
|
+
name: selenium-webdriver
|
201
202
|
requirement: !ruby/object:Gem::Requirement
|
202
203
|
requirements:
|
203
|
-
- -
|
204
|
+
- - ">="
|
204
205
|
- !ruby/object:Gem::Version
|
205
206
|
version: '0'
|
206
207
|
type: :development
|
207
208
|
prerelease: false
|
208
209
|
version_requirements: !ruby/object:Gem::Requirement
|
209
210
|
requirements:
|
210
|
-
- -
|
211
|
+
- - ">="
|
211
212
|
- !ruby/object:Gem::Version
|
212
213
|
version: '0'
|
214
|
+
- !ruby/object:Gem::Dependency
|
215
|
+
name: simplecov
|
216
|
+
requirement: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - "~>"
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: 0.9.0
|
221
|
+
type: :development
|
222
|
+
prerelease: false
|
223
|
+
version_requirements: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - "~>"
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: 0.9.0
|
213
228
|
- !ruby/object:Gem::Dependency
|
214
229
|
name: simplecov-rcov-text
|
215
230
|
requirement: !ruby/object:Gem::Requirement
|
216
231
|
requirements:
|
217
|
-
- -
|
232
|
+
- - ">="
|
218
233
|
- !ruby/object:Gem::Version
|
219
234
|
version: '0'
|
220
235
|
type: :development
|
221
236
|
prerelease: false
|
222
237
|
version_requirements: !ruby/object:Gem::Requirement
|
223
238
|
requirements:
|
224
|
-
- -
|
239
|
+
- - ">="
|
225
240
|
- !ruby/object:Gem::Version
|
226
241
|
version: '0'
|
227
242
|
- !ruby/object:Gem::Dependency
|
228
243
|
name: sqlite3
|
229
244
|
requirement: !ruby/object:Gem::Requirement
|
230
245
|
requirements:
|
231
|
-
- -
|
246
|
+
- - ">="
|
232
247
|
- !ruby/object:Gem::Version
|
233
248
|
version: '0'
|
234
249
|
type: :development
|
235
250
|
prerelease: false
|
236
251
|
version_requirements: !ruby/object:Gem::Requirement
|
237
252
|
requirements:
|
238
|
-
- -
|
253
|
+
- - ">="
|
239
254
|
- !ruby/object:Gem::Version
|
240
255
|
version: '0'
|
241
256
|
description: This mountable engine has the basic functionality to manage Posts
|
@@ -245,16 +260,17 @@ email:
|
|
245
260
|
- chalofa@crowdint.com
|
246
261
|
- ignacio@crowdint.com
|
247
262
|
- nora@crowdint.com
|
263
|
+
- mario.chavez@crowdint.com
|
248
264
|
executables: []
|
249
265
|
extensions: []
|
250
266
|
extra_rdoc_files: []
|
251
267
|
files:
|
252
|
-
- .autotest
|
253
|
-
- .gitignore
|
254
|
-
- .rspec
|
255
|
-
- .rvmrc
|
256
|
-
- .simplecov
|
257
|
-
- .travis.yml
|
268
|
+
- ".autotest"
|
269
|
+
- ".gitignore"
|
270
|
+
- ".rspec"
|
271
|
+
- ".rvmrc"
|
272
|
+
- ".simplecov"
|
273
|
+
- ".travis.yml"
|
258
274
|
- Gemfile
|
259
275
|
- MIT-LICENSE
|
260
276
|
- README.md
|
@@ -277,6 +293,7 @@ files:
|
|
277
293
|
- app/helpers/crowdblog/application_helper.rb
|
278
294
|
- app/models/crowdblog/asset.rb
|
279
295
|
- app/models/crowdblog/post.rb
|
296
|
+
- app/models/crowdblog/status_change_record.rb
|
280
297
|
- app/models/crowdblog/user.rb
|
281
298
|
- app/presenters/crowdblog/post_presenter.rb
|
282
299
|
- app/uploaders/attachment_uploader.rb
|
@@ -296,12 +313,14 @@ files:
|
|
296
313
|
- app/views/layouts/crowdblog/application.html.slim
|
297
314
|
- config/cucumber.yml
|
298
315
|
- config/initializers/date_formats.rb
|
316
|
+
- config/initializers/state_machine.rb
|
299
317
|
- config/locales/devise.en.yml
|
300
318
|
- config/routes.rb
|
301
319
|
- crowdblog.gemspec
|
302
320
|
- db/migrate/20120217213920_create_crowdblog_posts.rb
|
303
321
|
- db/migrate/20120219071614_create_crowdblog_assets.rb
|
304
322
|
- db/migrate/20121016063750_create_crowdblog_users.rb
|
323
|
+
- db/migrate/20140501164642_create_crowdblog_status_change_records.rb
|
305
324
|
- lib/crowdblog.rb
|
306
325
|
- lib/crowdblog/devise/failure_app.rb
|
307
326
|
- lib/crowdblog/engine.rb
|
@@ -325,6 +344,9 @@ files:
|
|
325
344
|
- spec/dummy/app/models/user.rb
|
326
345
|
- spec/dummy/app/views/home/show.html.slim
|
327
346
|
- spec/dummy/app/views/layouts/application.html.erb
|
347
|
+
- spec/dummy/bin/bundle
|
348
|
+
- spec/dummy/bin/rails
|
349
|
+
- spec/dummy/bin/rake
|
328
350
|
- spec/dummy/config.ru
|
329
351
|
- spec/dummy/config/application.rb
|
330
352
|
- spec/dummy/config/boot.rb
|
@@ -333,9 +355,12 @@ files:
|
|
333
355
|
- spec/dummy/config/environments/development.rb
|
334
356
|
- spec/dummy/config/environments/production.rb
|
335
357
|
- spec/dummy/config/environments/test.rb
|
358
|
+
- spec/dummy/config/initializers/assets.rb
|
336
359
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
337
360
|
- spec/dummy/config/initializers/carrierwave.rb
|
361
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
338
362
|
- spec/dummy/config/initializers/crowdblog.rb
|
363
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
339
364
|
- spec/dummy/config/initializers/inflections.rb
|
340
365
|
- spec/dummy/config/initializers/mime_types.rb
|
341
366
|
- spec/dummy/config/initializers/secret_token.rb
|
@@ -343,6 +368,7 @@ files:
|
|
343
368
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
344
369
|
- spec/dummy/config/locales/en.yml
|
345
370
|
- spec/dummy/config/routes.rb
|
371
|
+
- spec/dummy/config/secrets.yml
|
346
372
|
- spec/dummy/db/schema.rb
|
347
373
|
- spec/dummy/db/seed.rb
|
348
374
|
- spec/dummy/lib/assets/.gitkeep
|
@@ -368,7 +394,8 @@ files:
|
|
368
394
|
- vendor/assets/javascripts/markdown.js
|
369
395
|
- vendor/assets/javascripts/uploader/jquery.html5uploader.js
|
370
396
|
homepage: http://github.com/crowdint/crowdblog
|
371
|
-
licenses:
|
397
|
+
licenses:
|
398
|
+
- MIT
|
372
399
|
metadata: {}
|
373
400
|
post_install_message:
|
374
401
|
rdoc_options: []
|
@@ -377,17 +404,17 @@ require_paths:
|
|
377
404
|
- app
|
378
405
|
required_ruby_version: !ruby/object:Gem::Requirement
|
379
406
|
requirements:
|
380
|
-
- -
|
407
|
+
- - ">="
|
381
408
|
- !ruby/object:Gem::Version
|
382
409
|
version: '0'
|
383
410
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
384
411
|
requirements:
|
385
|
-
- -
|
412
|
+
- - ">="
|
386
413
|
- !ruby/object:Gem::Version
|
387
414
|
version: '0'
|
388
415
|
requirements: []
|
389
416
|
rubyforge_project:
|
390
|
-
rubygems_version: 2.0
|
417
|
+
rubygems_version: 2.2.0
|
391
418
|
signing_key:
|
392
419
|
specification_version: 4
|
393
420
|
summary: CrowdBlog base functionality and backend
|
@@ -404,6 +431,9 @@ test_files:
|
|
404
431
|
- spec/dummy/app/models/user.rb
|
405
432
|
- spec/dummy/app/views/home/show.html.slim
|
406
433
|
- spec/dummy/app/views/layouts/application.html.erb
|
434
|
+
- spec/dummy/bin/bundle
|
435
|
+
- spec/dummy/bin/rails
|
436
|
+
- spec/dummy/bin/rake
|
407
437
|
- spec/dummy/config.ru
|
408
438
|
- spec/dummy/config/application.rb
|
409
439
|
- spec/dummy/config/boot.rb
|
@@ -412,9 +442,12 @@ test_files:
|
|
412
442
|
- spec/dummy/config/environments/development.rb
|
413
443
|
- spec/dummy/config/environments/production.rb
|
414
444
|
- spec/dummy/config/environments/test.rb
|
445
|
+
- spec/dummy/config/initializers/assets.rb
|
415
446
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
416
447
|
- spec/dummy/config/initializers/carrierwave.rb
|
448
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
417
449
|
- spec/dummy/config/initializers/crowdblog.rb
|
450
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
418
451
|
- spec/dummy/config/initializers/inflections.rb
|
419
452
|
- spec/dummy/config/initializers/mime_types.rb
|
420
453
|
- spec/dummy/config/initializers/secret_token.rb
|
@@ -422,6 +455,7 @@ test_files:
|
|
422
455
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
423
456
|
- spec/dummy/config/locales/en.yml
|
424
457
|
- spec/dummy/config/routes.rb
|
458
|
+
- spec/dummy/config/secrets.yml
|
425
459
|
- spec/dummy/db/schema.rb
|
426
460
|
- spec/dummy/db/seed.rb
|
427
461
|
- spec/dummy/lib/assets/.gitkeep
|