crowdblog 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/README.md +2 -2
  4. data/app/controllers/crowdblog/admin/transitions_controller.rb +2 -0
  5. data/app/models/crowdblog/post.rb +1 -0
  6. data/app/models/crowdblog/status_change_record.rb +6 -0
  7. data/app/views/crowdblog/admin/posts/_post.html.slim +1 -1
  8. data/config/initializers/state_machine.rb +4 -0
  9. data/crowdblog.gemspec +10 -8
  10. data/db/migrate/20140501164642_create_crowdblog_status_change_records.rb +11 -0
  11. data/lib/crowdblog/rspec/crowdblog_shared_examples.rb +19 -11
  12. data/lib/crowdblog/version.rb +1 -1
  13. data/spec/dummy/bin/bundle +3 -0
  14. data/spec/dummy/bin/rails +4 -0
  15. data/spec/dummy/bin/rake +4 -0
  16. data/spec/dummy/config/application.rb +3 -36
  17. data/spec/dummy/config/boot.rb +3 -9
  18. data/spec/dummy/config/environment.rb +3 -3
  19. data/spec/dummy/config/environments/development.rb +20 -12
  20. data/spec/dummy/config/environments/production.rb +43 -29
  21. data/spec/dummy/config/environments/test.rb +17 -11
  22. data/spec/dummy/config/initializers/assets.rb +8 -0
  23. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  24. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  25. data/spec/dummy/config/initializers/inflections.rb +6 -5
  26. data/spec/dummy/config/initializers/mime_types.rb +0 -1
  27. data/spec/dummy/config/initializers/session_store.rb +1 -6
  28. data/spec/dummy/config/initializers/wrap_parameters.rb +6 -6
  29. data/spec/dummy/config/locales/en.yml +20 -2
  30. data/spec/dummy/config/routes.rb +0 -1
  31. data/spec/dummy/config/secrets.yml +22 -0
  32. data/spec/dummy/db/schema.rb +10 -2
  33. data/spec/models/post_spec.rb +4 -4
  34. data/spec/spec_helper.rb +4 -0
  35. metadata +90 -56
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76037e85488c88a53eba460f16fb8e6c1945c32d
4
- data.tar.gz: 388ff6c283a73c76ce50d25ff32fc7c8d0543665
3
+ metadata.gz: d3701a773b898934896fd813b3c38491a1d83799
4
+ data.tar.gz: 04c0e66460f5f20d02af64869cf79eed521c9421
5
5
  SHA512:
6
- metadata.gz: a6d30f3d1a49bcb2fe9fe219399353a1129099d88b59feb01ddc1dd41a013271d92a70024bac76640742e2cc9106941ddf1ff2765b50a2f50374891ef82cf986
7
- data.tar.gz: 9190b664a30fcefe7c76214a357b26d1ee28b6b9bb188b39f01209acd753e262aef407c4a1173884f3b848c94fd96e326371240c38e64f2921ca369c9e946e88
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.1'
9
- gem 'sass-rails' , '~> 4.0.1'
10
- gem 'uglifier' , '~> 2.3.0'
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
@@ -0,0 +1,6 @@
1
+ module Crowdblog
2
+ class StatusChangeRecord < ActiveRecord::Base
3
+ belongs_to :post
4
+ belongs_to :user, class_name: Crowdblog.publisher_user_class_name
5
+ end
6
+ end
@@ -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"
@@ -0,0 +1,4 @@
1
+ # https://github.com/pluginaweek/state_machine/issues/251
2
+ module StateMachine::Integrations::ActiveModel
3
+ public :around_validation
4
+ end
@@ -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.0.0'
20
+ s.add_dependency 'rails', '~> 4.1.0'
20
21
 
21
- s.add_dependency 'carrierwave', '~> 0.9.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.0.0'
26
- s.add_dependency 'slim', '~> 2.0.2'
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
@@ -0,0 +1,11 @@
1
+ class CreateCrowdblogStatusChangeRecords < ActiveRecord::Migration
2
+ def change
3
+ create_table :crowdblog_status_change_records do |t|
4
+ t.belongs_to :user
5
+ t.belongs_to :post
6
+ t.string :state
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ 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 crowdblog.root_path
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 crowdblog.admin_posts_path
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 == crowdblog.admin_posts_path
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 crowdblog.admin_posts_path
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 == crowdblog.admin_posts_path
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 crowdblog.admin_posts_path
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 == crowdblog.admin_posts_path
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 crowdblog.admin_posts_path
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 crowdblog.admin_posts_path
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 crowdblog.admin_posts_path
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 crowdblog.admin_posts_path
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
@@ -1,3 +1,3 @@
1
1
  module Crowdblog
2
- VERSION = '0.4.0'
2
+ VERSION = '0.5.0'
3
3
  end
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run
@@ -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
- Bundler.require
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
@@ -1,10 +1,4 @@
1
- require 'rubygems'
2
- gemfile = File.expand_path('../../../../Gemfile', __FILE__)
1
+ # Set up gems listed in the Gemfile.
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
3
 
4
- if File.exist?(gemfile)
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,5 +1,5 @@
1
- # Load the rails application
1
+ # Load the Rails application.
2
2
  require File.expand_path('../application', __FILE__)
3
3
 
4
- # Initialize the rails application
5
- Dummy::Application.initialize!
4
+ # Initialize the Rails application.
5
+ Rails.application.initialize!
@@ -1,29 +1,37 @@
1
- Dummy::Application.configure do
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
- # Show full error reports and disable caching
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
- # Only use best-standards-support built into browsers
20
- config.action_dispatch.best_standards_support = :builtin
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
- # Expands the lines which load the assets
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
- config.eager_load = false
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
- Dummy::Application.configure do
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
- # Full error reports are disabled and caching is turned on
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
- # Disable Rails's static asset server (Apache or nginx will already do this)
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.compress = true
25
+ # Compress JavaScripts and CSS.
26
+ config.assets.js_compressor = :uglifier
27
+ # config.assets.css_compressor = :sass
16
28
 
17
- # Don't fallback to assets pipeline if a precompiled asset is missed
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
- # Defaults to Rails.root.join("public/assets")
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
- # See everything in the log (default is :info)
34
- # config.log_level = :debug
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 (application.js, application.css, and all non-JS/CSS are already added)
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
- # Disable delivery errors, bad email addresses will be ignored
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 can not be found)
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
- # Log the query plan for queries taking more than this (works
65
- # with SQLite, MySQL, and PostgreSQL)
66
- # config.active_record.auto_explain_threshold_in_seconds = 0.5
67
- config.eager_load = true
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
- Dummy::Application.configure do
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
- # Configure static asset server for tests with Cache-Control for performance
11
- config.serve_static_assets = true
12
- config.static_cache_control = "public, max-age=3600"
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 = false
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
- config.eager_load = false
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 )
@@ -0,0 +1,3 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Rails.application.config.action_dispatch.cookies_serializer = :marshal
@@ -0,0 +1,4 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Configure sensitive parameters which will be filtered from the log file.
4
+ Rails.application.config.filter_parameters += [:password]
@@ -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
- # (all these examples are active by default):
5
- # ActiveSupport::Inflector.inflections do |inflect|
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
@@ -2,4 +2,3 @@
2
2
 
3
3
  # Add new mime types for use in respond_to blocks:
4
4
  # Mime::Type.register "text/richtext", :rtf
5
- # Mime::Type.register_alias "text/html", :iphone
@@ -1,8 +1,3 @@
1
1
  # Be sure to restart your server when you modify this file.
2
2
 
3
- Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
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
- # Disable root element in JSON by default.
12
- ActiveSupport.on_load(:active_record) do
13
- self.include_root_in_json = false
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
- # Sample localization file for English. Add more files in this directory for other locales.
2
- # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
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"
@@ -1,4 +1,3 @@
1
1
  Rails.application.routes.draw do
2
-
3
2
  mount Crowdblog::Engine => '/'
4
3
  end
@@ -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"] %>
@@ -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: 20121016063750) do
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 "users", force: true do |t|
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
@@ -42,11 +42,11 @@ module Crowdblog
42
42
  end
43
43
 
44
44
  describe '#self.scoped_for' do
45
- let(:user) { mock(is_publisher?: true) }
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.scoped
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 be_false
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 be_true
81
+ subject.allowed_to_update_permalink?.should be_truthy
82
82
  end
83
83
  end
84
84
  end
@@ -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.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: 2013-11-06 00:00:00.000000000 Z
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.0.0
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.0.0
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.9.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.9.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.0.0
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.0.0
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.2
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.2
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: '0'
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: '0'
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: selenium-webdriver
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: simplecov
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.3
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