drailties 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (25) hide show
  1. checksums.yaml +4 -4
  2. data/lib/drails/server/domain_server.rb +12 -2
  3. data/lib/drails/server/projection_servers.rb +10 -3
  4. data/lib/generators/drails/app/app_generator.rb +4 -0
  5. data/lib/generators/drails/app/templates/build_validations_registry.rb +15 -2
  6. data/lib/generators/drails/app/templates/event_source_controller.rb +16 -0
  7. data/lib/generators/drails/controller/controller_generator.rb +6 -1
  8. data/lib/generators/drails/controller/templates/controller.rb +12 -3
  9. data/lib/generators/drails/controller/templates/controller_test.rb +45 -0
  10. data/lib/generators/drails/model/USAGE +15 -0
  11. data/lib/generators/drails/model/model_generator.rb +43 -0
  12. data/lib/generators/drails/projection/USAGE +3 -7
  13. data/lib/generators/drails/projection/projection_generator.rb +6 -10
  14. data/lib/generators/drails/projection/templates/domain_projection.rb +5 -1
  15. data/lib/generators/drails/projection/templates/domain_projection_test.rb +6 -0
  16. data/lib/generators/drails/projection/templates/projection.rb +5 -1
  17. data/lib/generators/drails/projection/templates/projection_test.rb +6 -0
  18. data/lib/generators/drails/scaffold/USAGE +1 -3
  19. data/lib/generators/drails/scaffold/scaffold_generator.rb +20 -6
  20. data/lib/generators/drails/scaffold/templates/_eventstream.js.erb +16 -0
  21. data/lib/rails-disco/version.rb +1 -1
  22. data/lib/tasks/db.rake +1 -0
  23. metadata +17 -10
  24. /data/lib/generators/drails/{projection → model}/templates/domain_model.rb +0 -0
  25. /data/lib/generators/drails/{projection → model}/templates/model.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65530ec8ee4b4e0bb596565ebc246edd1cf6f098
4
- data.tar.gz: 88187f39270abd6e9b3fa911f5e737ee5cc1196e
3
+ metadata.gz: 8642ab0f98128f69e538d45f9a4debeda51dc9b4
4
+ data.tar.gz: 1e574718dcefb63cdd7aa34a5438471f490ec775
5
5
  SHA512:
6
- metadata.gz: 6069343b46957d55dfaf50b7ebddae0ff364c2a994ad9af6e2a54315ad6ca10e333bbe6047fd2669c66e813738fc8eeb9a668c080935f6ac6bc88147591f9f70
7
- data.tar.gz: 88923b01ba585b115ec286b7def5c8c39994765b23bc73745fe770dd2564671507ee95a69a47f61f82a6f87cf730bab67d9daa0fb9ad9b439cb25068dc9db2c2
6
+ metadata.gz: dfdb7b28db625797316faa897cd402067622a9ebac2294a1ea45ceb753e7a2601e50d44ced3036c01bd09a76c581096e67eccc45bbdf966fb526377089fe81d1
7
+ data.tar.gz: 6d22d2cd7f89a0c8a6987d1b8946f2cd43a269c2c76f5b44b16f49a6a5a14092a2779ca344ca510f673a316faa0b5c286c1f4eed4ea9ebef6492fb76640141e6
@@ -5,8 +5,18 @@ require 'active_record'
5
5
 
6
6
  ROOT_DIR ||= ENV['ROOT_DIR']
7
7
 
8
- ActiveEvent::Autoload.app_path = File.join ROOT_DIR, 'app'
9
- ActiveDomain::Autoload.app_path = File.join ROOT_DIR, 'domain'
8
+ ActiveEvent::Autoload.app_path = ROOT_DIR
9
+ ActiveDomain::Autoload.app_path = ROOT_DIR
10
10
 
11
+ watchable_dirs = ActiveEvent::Autoload.watchable_dirs.merge ActiveDomain::Autoload.watchable_dirs
12
+ RELOADER = ActiveSupport::FileUpdateChecker.new([], watchable_dirs) do
13
+ ActiveEvent::Autoload.reload_module :ValidationsRegistry
14
+ ActiveDomain::Autoload.reload_module :ProjectionRegistry
15
+ ActiveEvent::Autoload.reload
16
+ ActiveDomain::Autoload.reload
17
+ ActiveEvent::ValidationsRegistry.build
18
+ end
19
+
20
+ ActiveEvent::ValidationsRegistry.build
11
21
  ActiveDomain::Server.base_path = ROOT_DIR
12
22
  ActiveDomain::Server.run
@@ -7,9 +7,16 @@ ROOT_DIR ||= ENV['ROOT_DIR']
7
7
  WORKER_COUNT = [ENV['WORKER_COUNT'].to_i, 1].max
8
8
  WORKER_NUMBER = ENV['WORKER_NUMBER'].to_i
9
9
 
10
- ActiveEvent::Autoload.app_path = File.join ROOT_DIR, 'app'
11
- ActiveProjection::Autoload.app_path = File.join(ROOT_DIR, 'app')
12
- ActiveProjection::Autoload.worker_config = {path: File.join(ROOT_DIR, 'app', 'projections'), count: WORKER_COUNT, number: WORKER_NUMBER}
10
+ ActiveEvent::Autoload.app_path = ROOT_DIR
11
+ ActiveProjection::Autoload.app_path = ROOT_DIR
12
+ ActiveProjection::Autoload.worker_config = {path: ROOT_DIR, count: WORKER_COUNT, number: WORKER_NUMBER}
13
13
 
14
+ watchable_dirs = ActiveEvent::Autoload.watchable_dirs.merge ActiveProjection::Autoload.watchable_dirs
15
+ RELOADER = ActiveSupport::FileUpdateChecker.new([], watchable_dirs) do
16
+ ActiveEvent::Autoload.reload_module :ValidationsRegistry
17
+ ActiveProjection::Autoload.reload_module :ProjectionTypeRegistry
18
+ ActiveEvent::Autoload.reload
19
+ ActiveProjection::Autoload.reload
20
+ end
14
21
  ActiveProjection::Server.base_path = ROOT_DIR
15
22
  ActiveProjection::Server.run
@@ -16,6 +16,10 @@ module Drails
16
16
  copy_file 'build_validations_registry.rb', File.join('config', 'initializers', 'build_validations_registry.rb')
17
17
  end
18
18
 
19
+ def copy_sse_controller
20
+ copy_file 'event_source_controller.rb', File.join('app', 'controllers', 'event_source_controller.rb')
21
+ end
22
+
19
23
  def add_drails_to_gemfile
20
24
  gem "rails-disco"
21
25
  end
@@ -1,5 +1,18 @@
1
1
  require 'active_event'
2
2
  require 'active_projection'
3
- ActiveEvent::Autoload.app_path = File.expand_path('../../../app', __FILE__)
4
- ActiveProjection::Autoload.app_path = File.expand_path('../../../app', __FILE__)
3
+ ActiveEvent::Autoload.app_path = File.expand_path('../../..', __FILE__)
4
+ ActiveProjection::Autoload.app_path = File.expand_path('../../..', __FILE__)
5
+
6
+ watchable_dirs = ActiveEvent::Autoload.watchable_dirs.merge ActiveProjection::Autoload.watchable_dirs
7
+ RELOADER = ActiveSupport::FileUpdateChecker.new([], watchable_dirs) do
8
+ ActiveEvent::Autoload.reload_module :ValidationsRegistry
9
+ ActiveEvent::Autoload.reload
10
+ ActiveProjection::Autoload.reload
11
+ ActiveEvent::ValidationsRegistry.build
12
+ end
13
+
14
+ ActionDispatch::Reloader.to_prepare do
15
+ RELOADER.execute_if_updated
16
+ end
17
+
5
18
  ActiveEvent::ValidationsRegistry.build
@@ -0,0 +1,16 @@
1
+ class EventSourceController < ApplicationController
2
+ include ActionController::Live
3
+ include ActiveEvent::EventSourceServer
4
+
5
+ def stream
6
+ event_connection.start
7
+ response.headers['Content-Type'] = 'text/event-stream'
8
+ sse = Reloader::SSE.new(response.stream)
9
+ subscribe_to event_queue do |delivery_info, properties, body|
10
+ sse.write({:id => properties.headers['store_id']}, :event => 'refresh')
11
+ end
12
+ rescue IOError
13
+ ensure
14
+ sse.close
15
+ end
16
+ end
@@ -4,10 +4,15 @@ module Drails
4
4
  class ControllerGenerator < Rails::Generators::ScaffoldControllerGenerator
5
5
  source_root File.expand_path('../templates', __FILE__)
6
6
  hide!
7
+ remove_hook_for :test_framework
8
+
9
+ def create_test_files
10
+ template "controller_test.rb", File.join("test/controllers", controller_class_path, "#{controller_file_name}_controller_test.rb")
11
+ end
7
12
 
8
13
  private
9
14
  def params_string
10
- attributes.map{|x| "#{x.name}: params[:#{singular_table_name}][:#{x.name}]" }.join(', ')
15
+ attributes.map { |x| "#{x.name}: params[:#{singular_table_name}][:#{x.name}]" }.join(', ')
11
16
  end
12
17
  end
13
18
  end
@@ -1,6 +1,7 @@
1
1
  <% module_namespacing do -%>
2
2
  class <%= controller_class_name %>Controller < ApplicationController
3
3
  before_action :set_<%= singular_table_name %>, only: [:show, :edit]
4
+ before_action :set_event_id, only: [:index, :show]
4
5
 
5
6
  def index
6
7
  @<%= plural_table_name %> = <%= orm_class.all(class_name) %>
@@ -19,8 +20,9 @@ class <%= controller_class_name %>Controller < ApplicationController
19
20
  def create
20
21
  <%= singular_table_name %> = <%= "#{human_name}"%>CreateCommand.new({<%= params_string %>})
21
22
  valid = <%= singular_table_name %>.valid?
22
- if valid and Domain.run_command <%= singular_table_name %>
23
+ if valid and id = Domain.run_command(<%= singular_table_name %>)
23
24
  flash[:notice] = <%= "'#{human_name} was successfully created.'" %>
25
+ session[:tmp_event_id] = id
24
26
  redirect_to action: :index
25
27
  else
26
28
  flash[:error] = <%= "'#{human_name} couldn\\'t be created.'" %>
@@ -31,8 +33,9 @@ class <%= controller_class_name %>Controller < ApplicationController
31
33
  def update
32
34
  <%= singular_table_name %> = <%= "#{human_name}"%>UpdateCommand.new({id: params[:id]<%=',' unless params_string == ''%> <%= params_string %>})
33
35
  valid = <%= singular_table_name %>.valid?
34
- if valid and Domain.run_command <%= singular_table_name %>
36
+ if valid and id = Domain.run_command(<%= singular_table_name %>)
35
37
  flash[:notice] = <%= "'#{human_name} was successfully updated.'" %>
38
+ session[:tmp_event_id] = id
36
39
  redirect_to action: :show, id: params[:id]
37
40
  else
38
41
  flash[:error] = <%= "'#{human_name} couldn\\'t be updated.'" %>
@@ -42,7 +45,8 @@ class <%= controller_class_name %>Controller < ApplicationController
42
45
 
43
46
  def destroy
44
47
  <%= singular_table_name %> = <%= "#{human_name}"%>DeleteCommand.new({id: params[:id]})
45
- if Domain.run_command <%= singular_table_name %>
48
+ if id = Domain.run_command(<%= singular_table_name %>)
49
+ session[:tmp_event_id] = id
46
50
  flash[:notice] = <%= "'#{human_name} was successfully deleted.'" %>
47
51
  else
48
52
  flash[:error] = <%= "'#{human_name} couldn\\'t be deleted.'" %>
@@ -54,5 +58,10 @@ class <%= controller_class_name %>Controller < ApplicationController
54
58
  def set_<%= singular_table_name %>
55
59
  @<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
56
60
  end
61
+
62
+ def set_event_id
63
+ @event_id = session[:tmp_event_id]
64
+ session[:tmp_event_id] = nil
65
+ end
57
66
  end
58
67
  <% end -%>
@@ -0,0 +1,45 @@
1
+ require 'test_helper'
2
+
3
+ <% module_namespacing do -%>
4
+ class <%= controller_class_name %>ControllerTest < ActionController::TestCase
5
+ setup do
6
+ @<%= singular_table_name %> = <%= table_name %>(:one)
7
+ end
8
+
9
+ test "should get index" do
10
+ get :index
11
+ assert_response :success
12
+ assert_not_nil assigns(:<%= table_name %>)
13
+ end
14
+
15
+ test "should get new" do
16
+ get :new
17
+ assert_response :success
18
+ end
19
+
20
+ #test "should create <%= singular_table_name %>" do
21
+ # #removed for now, because there is no reason to test the post here, cause the projection creates it
22
+ # #maybe we could test something else here instead
23
+ #end
24
+
25
+ test "should show <%= singular_table_name %>" do
26
+ get :show, id: <%= "@#{singular_table_name}" %>
27
+ assert_response :success
28
+ end
29
+
30
+ test "should get edit" do
31
+ get :edit, id: <%= "@#{singular_table_name}" %>
32
+ assert_response :success
33
+ end
34
+
35
+ #test "should update <%= singular_table_name %>" do
36
+ # #removed for now, because there is no reason to test the update here, cause the projection updates it
37
+ # #maybe we could test something else here instead
38
+ #end
39
+
40
+ #test "should destroy <%= singular_table_name %>" do
41
+ # #removed for now, because there is no reason to test the destroy here, cause the projection destroys it
42
+ # #maybe we could test something else here instead
43
+ #end
44
+ end
45
+ <% end -%>
@@ -0,0 +1,15 @@
1
+ Description:
2
+ Generates a Model and a Projection for it.
3
+
4
+ Example:
5
+ rails generate drails:model Thing [use_domain] [attr1:type, attr2:type]
6
+
7
+ This will create if use_domain is false(standard):
8
+ app/projection/thing_projection.rb
9
+ app/models/thing.rb
10
+ db/migrate/create_thing.rb
11
+
12
+ This will create if use_domain is true:
13
+ domain/projection/thing_projection.rb
14
+ domain/models/thing.rb
15
+ db/migrate_domain/create_thing.rb
@@ -0,0 +1,43 @@
1
+ module Drails
2
+ module Generators
3
+ class ModelGenerator < Rails::Generators::NamedBase
4
+ source_root File.expand_path('../templates', __FILE__)
5
+ argument :use_domain, type: :string, default: 'false'
6
+ argument :attributes, type: :array, default: [], banner: "field[:type] field[:type]"
7
+
8
+ def create_projection_file
9
+ if domain?
10
+ generate 'drails:projection', name, 'true'
11
+ else
12
+ generate 'drails:projection', name
13
+ end
14
+ end
15
+
16
+ def create_model_file
17
+ if domain?
18
+ template 'domain_model.rb', File.join('domain', 'models', domain_ns, "#{file_name}.rb")
19
+ else
20
+ template 'model.rb', File.join('app', 'models', class_path, "#{file_name}.rb")
21
+ end
22
+ end
23
+
24
+ def create_migration
25
+ generate 'drails:migration', "create_#{table_name}", use_domain, attributes.map { |x| "#{x.name}:#{x.type}" }.join(' ')
26
+ end
27
+
28
+ private
29
+ def domain?
30
+ @domain ||= !!(/^(true|t|yes|y|1)$/i).match(use_domain)
31
+ end
32
+
33
+ def domain_ns
34
+ namespace_path = Array.new class_path
35
+ if namespace_path.empty?
36
+ namespace_path[0] = 'domain'
37
+ else
38
+ namespace_path[-1] += '_domain'
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -1,15 +1,11 @@
1
1
  Description:
2
- Generates a Projection and a Model.
2
+ Generates a projection with handlers for the given events.
3
3
 
4
4
  Example:
5
- rails generate drails:projection Thing [use_domain]
5
+ rails generate drails:projection Thing [use_domain] [event1 event2 ...]
6
6
 
7
7
  This will create if use_domain is false(standard):
8
8
  app/projection/thing_projection.rb
9
- app/models/thing.rb
10
- db/migrate/create_thing.rb
11
9
 
12
10
  This will create if use_domain is true:
13
- domain/projection/thing_projection.rb
14
- domain/models/thing.rb
15
- db/migrate_domain/create_thing.rb
11
+ domain/projection/thing_projection.rb
@@ -3,28 +3,24 @@ module Drails
3
3
  class ProjectionGenerator < Rails::Generators::NamedBase
4
4
  source_root File.expand_path('../templates', __FILE__)
5
5
  argument :use_domain, type: :string, default: 'false'
6
- argument :attributes, type: :array, default: [], banner: "field[:type] field[:type]"
6
+ argument :events, type: :array, default: [], banner: "event event"
7
7
 
8
8
  def create_projection_file
9
9
  if domain?
10
- template 'domain_projection.rb', File.join('domain', 'projections', domain_ns, "#{file_name}_projection.rb")
10
+ template 'domain_projection.rb', File.join('domain', 'projections', domain_ns, "#{plural_file_name}_projection.rb")
11
11
  else
12
- template 'projection.rb', File.join('app', 'projections', class_path, "#{file_name}_projection.rb")
12
+ template 'projection.rb', File.join('app', 'projections', class_path, "#{plural_file_name}_projection.rb")
13
13
  end
14
14
  end
15
15
 
16
- def create_model_file
16
+ def create_test_files
17
17
  if domain?
18
- template 'domain_model.rb', File.join('domain', 'models', domain_ns, "#{file_name}.rb")
18
+ template 'domain_projection_test.rb', File.join("test/projections", class_path, "#{plural_file_name}_projection_test.rb")
19
19
  else
20
- template 'model.rb', File.join('app', 'models', class_path, "#{file_name}.rb")
20
+ template 'projection_test.rb', File.join("test/projections", class_path, "#{plural_file_name}_projection_test.rb")
21
21
  end
22
22
  end
23
23
 
24
- def create_migration
25
- generate 'drails:migration', "create_#{table_name}", use_domain, attributes.map { |x| "#{x.name}:#{x.type}" }.join(' ')
26
- end
27
-
28
24
  private
29
25
  def domain?
30
26
  @domain ||= !!(/^(true|t|yes|y|1)$/i).match(use_domain)
@@ -1,5 +1,9 @@
1
1
  module <%=if Rails::Generators.namespace.present? then Rails::Generators.namespace.name end%>Domain
2
- class <%= class_name %>Projection
2
+ class <%= plural_name.camelcase %>Projection
3
3
  include ActiveDomain::Projection
4
+ <% events.each do |event| %>
5
+ def <%=event.underscore%>(event)
6
+ end
7
+ <% end %>
4
8
  end
5
9
  end
@@ -0,0 +1,6 @@
1
+ require 'test_helper'
2
+
3
+ module <%=if Rails::Generators.namespace.present? then Rails::Generators.namespace.name end%>Domain
4
+ class <%= plural_name.camelcase %>ProjectionTest < ActiveSupport::TestCase
5
+ end
6
+ end
@@ -1,5 +1,9 @@
1
1
  <% module_namespacing do -%>
2
- class <%= class_name %>Projection
2
+ class <%= plural_name.camelcase %>Projection
3
3
  include ActiveProjection::ProjectionType
4
+ <% events.each do |event| %>
5
+ def <%=event.underscore%>(event)
6
+ end
7
+ <% end %>
4
8
  end
5
9
  <% end -%>
@@ -0,0 +1,6 @@
1
+ require 'test_helper'
2
+
3
+ <% module_namespacing do -%>
4
+ class <%= plural_name.camelcase %>ProjectionTest < ActiveSupport::TestCase
5
+ end
6
+ <% end -%>
@@ -3,7 +3,7 @@ Description:
3
3
  commands, events and command_processor.
4
4
 
5
5
  Example:
6
- rails generate drails:scaffold Thing
6
+ rails generate drails:scaffold Thing [attr1:type, attr2:type]
7
7
 
8
8
  This will create:
9
9
  app/commands/thing_create_command.rb
@@ -24,6 +24,4 @@ Example:
24
24
  db/migrate/create_thing.rb
25
25
  db/migrate_domain/create_thing.rb
26
26
  domain/command_processors/thing_processor.rb
27
- domain/models/thing.rb
28
- domain/projections/thing_projection.rb
29
27
  a resource route
@@ -4,9 +4,8 @@ module Drails
4
4
  source_root File.expand_path('../templates', __FILE__)
5
5
  argument :attributes, type: :array, default: [], banner: "field[:type] field[:type]"
6
6
 
7
- def create_projections
8
- generate 'drails:projection', name, 'false', attr_string
9
- generate 'drails:projection', name, 'true', attr_string
7
+ def create_models
8
+ generate 'drails:model', name, 'false', attr_string
10
9
  end
11
10
 
12
11
  def create_commands
@@ -18,6 +17,12 @@ module Drails
18
17
  end
19
18
  end
20
19
 
20
+ def add_to_command_processor
21
+ content = "
22
+ command.id = ActiveDomain::UniqueCommandIdRepository.new_for command.class.name"
23
+ inject_into_file File.join('domain', 'command_processors', domain_ns, "#{file_name}_processor.rb"), content, after: /(\s)*process(\s)*(.)*CreateCommand(.)*/
24
+ end
25
+
21
26
  def add_route
22
27
  route "resources :#{plural_name}"
23
28
  end
@@ -26,6 +31,16 @@ module Drails
26
31
  generate 'drails:controller', name, attr_string
27
32
  end
28
33
 
34
+ def copy_event_stream_client
35
+ copy_file '_eventstream.js.erb', File.join('app', 'views', plural_file_name, '_eventstream.js.erb')
36
+ end
37
+
38
+ def add_event_stram_client_to_views
39
+ include_text = '<%= javascript_tag render partial: \'eventstream\', formats: [:js], locals: {event_id: @event_id} %>'
40
+ prepend_to_file File.join('app', 'views', plural_file_name, 'index.html.erb'), include_text
41
+ prepend_to_file File.join('app', 'views', plural_file_name, 'show.html.erb'), include_text
42
+ end
43
+
29
44
  private
30
45
  def attr_string
31
46
  @attr_string ||= attributes.map { |x| "#{x.name}:#{x.type}" }.join(' ')
@@ -34,11 +49,10 @@ module Drails
34
49
  def add_to_projections(action)
35
50
  content = "
36
51
 
37
- def #{name}_#{action}_event(event)
52
+ def #{name.underscore}_#{action}_event(event)
38
53
  #{method_bodies[action]}
39
54
  end"
40
- inject_into_file File.join('app', 'projections', class_path, "#{file_name}_projection.rb"), content, after: /(\s)*include(\s)*ActiveProjection::ProjectionType/
41
- inject_into_file File.join('domain', 'projections', domain_ns, "#{file_name}_projection.rb"), content, after: /(\s)*include(\s)*ActiveDomain::Projection/
55
+ inject_into_file File.join('app', 'projections', class_path, "#{plural_file_name}_projection.rb"), content, after: /(\s)*include(\s)*ActiveProjection::ProjectionType/
42
56
  end
43
57
 
44
58
  def method_bodies
@@ -0,0 +1,16 @@
1
+ <% if event_id.present? %>
2
+ $(document).ready(function () {
3
+ setTimeout(function () {
4
+ var source = new EventSource('/event_stream');
5
+ source.addEventListener('refresh', function (e) {
6
+ var event = JSON.parse(e.data);
7
+ if (<%= event_id %> == event.id){
8
+ window.location.reload();
9
+ }else if (<%= event_id %> < event.id){
10
+ source.removeEventListener('refresh');
11
+ source.close();
12
+ }
13
+ });
14
+ }, 1);
15
+ });
16
+ <% end %>
@@ -1,7 +1,7 @@
1
1
  module RailsDisco
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 1
4
+ MINOR = 2
5
5
  TINY = 0
6
6
  PRE = nil
7
7
 
data/lib/tasks/db.rake CHANGED
@@ -86,6 +86,7 @@ namespace :db do
86
86
  task :setup_domain do
87
87
  Rake::Task[:'db:configuration'].invoke('domain')
88
88
  cp_r Gem::Specification.find_by_name('active_event').gem_dir + '/db/migrate/.', 'db/migrate_domain'
89
+ cp_r Gem::Specification.find_by_name('active_domain').gem_dir + '/db/migrate/.', 'db/migrate_domain'
89
90
  Rake::Task[:'db:migrate'].invoke
90
91
  end
91
92
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drailties
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Kranz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-11 00:00:00.000000000 Z
11
+ date: 2013-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_event
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.0
19
+ version: 0.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.0
26
+ version: 0.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: active_domain
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.0
33
+ version: 0.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.1.0
40
+ version: 0.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: active_projection
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.0
47
+ version: 0.2.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.0
54
+ version: 0.2.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rails
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +86,7 @@ files:
86
86
  - lib/generators/drails/app/templates/build_validations_registry.rb
87
87
  - lib/generators/drails/app/templates/create_domain.rb
88
88
  - lib/generators/drails/app/templates/disco.yml
89
+ - lib/generators/drails/app/templates/event_source_controller.rb
89
90
  - lib/generators/drails/app/USAGE
90
91
  - lib/generators/drails/command/command_generator.rb
91
92
  - lib/generators/drails/command/templates/command.rb
@@ -96,17 +97,23 @@ files:
96
97
  - lib/generators/drails/command_processor/USAGE
97
98
  - lib/generators/drails/controller/controller_generator.rb
98
99
  - lib/generators/drails/controller/templates/controller.rb
100
+ - lib/generators/drails/controller/templates/controller_test.rb
99
101
  - lib/generators/drails/controller/USAGE
100
102
  - lib/generators/drails/migration/migration_generator.rb
101
103
  - lib/generators/drails/migration/templates/create_table_migration.rb
102
104
  - lib/generators/drails/migration/USAGE
105
+ - lib/generators/drails/model/model_generator.rb
106
+ - lib/generators/drails/model/templates/domain_model.rb
107
+ - lib/generators/drails/model/templates/model.rb
108
+ - lib/generators/drails/model/USAGE
103
109
  - lib/generators/drails/projection/projection_generator.rb
104
- - lib/generators/drails/projection/templates/domain_model.rb
105
110
  - lib/generators/drails/projection/templates/domain_projection.rb
106
- - lib/generators/drails/projection/templates/model.rb
111
+ - lib/generators/drails/projection/templates/domain_projection_test.rb
107
112
  - lib/generators/drails/projection/templates/projection.rb
113
+ - lib/generators/drails/projection/templates/projection_test.rb
108
114
  - lib/generators/drails/projection/USAGE
109
115
  - lib/generators/drails/scaffold/scaffold_generator.rb
116
+ - lib/generators/drails/scaffold/templates/_eventstream.js.erb
110
117
  - lib/generators/drails/scaffold/USAGE
111
118
  - lib/rails-disco/version.rb
112
119
  - lib/tasks/db.rake