historiqueux 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cbe92507e7b4b7f4f4eb8b5e74025aa28dedebe6
4
+ data.tar.gz: 798587382d643e7aad24a2c7505dd4712f9131e3
5
+ SHA512:
6
+ metadata.gz: a530d9731f4e85b46f34741dfb545bcfdfe2f5ef7612977c3820ee950b5ba0260902f3f980ccce38e89628557a69aa088d86b91e6588695f09313ffa8cee6742
7
+ data.tar.gz: 094b3780f5009f849ee9b9118688eaa6fab72697d9dfb621fb61aee1cb106f702bb778483b525c4b9759aaea5c38f363a9775453a5f3b14ef2a36847f9b799ec
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2014 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,47 @@
1
+ = Historiqueux
2
+
3
+ This is a mountable gem that add a bootstrap presentation layer to paper_trail.
4
+
5
+ Inject some routes in your app that provides screens that help visualize any ressource versions, values and differences.
6
+ Provide the ability no navigate related entities versions details."
7
+
8
+
9
+ == Installation :
10
+
11
+ Add the following line to your Gemfile
12
+
13
+ === Rails 4
14
+
15
+ gem 'historiqueux'
16
+
17
+ == Usage
18
+
19
+ Mount the historiqueux gem in your routes:
20
+
21
+ mount Historiqueux::Engine => "/"
22
+
23
+ The routes that will be available are :
24
+
25
+ get '/historiqueux/:resource/:resource_id', to: 'history#index'
26
+ get '/historiqueux/:resource/:resource_id/relations/:relation_resource', to: 'history#index_relations'
27
+ get '/historiqueux/:resource/:resource_id/:version_id', to: 'history#show'
28
+
29
+ where :resource is the name of your model (you can use namespace)
30
+
31
+
32
+ ====Include the needed javascript file in your application.js or application.js.coffee
33
+
34
+ ==== Javascript
35
+ //= require historiqueux/history
36
+ ==== CoffeeScript
37
+ #= require historiqueux/history
38
+
39
+ == Contributors
40
+
41
+ {Serge Savoie}[http://github.com/seurdge]
42
+
43
+ {Rémi Gagnon}[http://github.com/rgagnon]
44
+
45
+ == More
46
+
47
+ http://www.groupefungo.ca
data/Rakefile ADDED
@@ -0,0 +1,23 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'Historiqueux'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+
21
+
22
+ Bundler::GemHelper.install_tasks
23
+
@@ -0,0 +1,100 @@
1
+ $ () ->
2
+ $(document).delegate '.event_open_relation', 'click', (e) ->
3
+ console.log('event_open_relation')
4
+ event.stopPropagation()
5
+ event.preventDefault()
6
+ parent = $(@).data('parent')
7
+ resource = $(@).data('resource')
8
+ id = $(@).data('id')
9
+ relation = $(@).data('relation')
10
+ console.log('parent_div = ' + parent)
11
+ console.log('resource = ' + resource)
12
+ console.log('resource_id = ' + id)
13
+ console.log('relation = ' + relation)
14
+ $.ajax
15
+ url: '/historiqueux/' + resource + '/' + id + '/relations/' + relation
16
+ type: "get"
17
+ dataType: "html"
18
+ data:
19
+ "parent_div": parent
20
+ success: (returnData) ->
21
+ console.log('success')
22
+ console.log("#" + parent)
23
+ console.log(returnData)
24
+ if parent
25
+ $("#" + parent).html(returnData)
26
+ else
27
+ console.log('no parent')
28
+ $('body').html(returnData)
29
+ @
30
+ error: (e) ->
31
+ alert(e)
32
+ @
33
+ @
34
+
35
+ $(document).delegate '#event_back', 'click', (e) ->
36
+ console.log('event_back click')
37
+ event.stopPropagation()
38
+ event.preventDefault()
39
+ parent = $(@).data('parent')
40
+ resource = $(@).data('resource')
41
+ id = $(@).data('id')
42
+ console.log('parent_div = ' + parent)
43
+ console.log('resource = ' + resource)
44
+ console.log('resource_id = ' + id)
45
+ $.ajax
46
+ url: "/historiqueux/" + resource + "/" + id + "?parent_div=" + parent
47
+ type: "get"
48
+ dataType: "html"
49
+ data:
50
+ "parent_div": parent
51
+ success: (returnData) ->
52
+ console.log('success')
53
+ console.log("#" + parent)
54
+ console.log(returnData)
55
+ if parent
56
+ $("#" + parent).html(returnData)
57
+ else
58
+ console.log('no parent')
59
+ $('body').html(returnData)
60
+ @
61
+ error: (e) ->
62
+ alert(e)
63
+ @
64
+ @
65
+
66
+ $(document).delegate '.event_open_details', 'click', (e) ->
67
+ console.log('event_open_details click')
68
+ event.stopPropagation()
69
+ event.preventDefault()
70
+ event_id = $(@).data('event-id')
71
+ console.log('event-id = ' + event_id)
72
+ parent = $(@).data('parent-div')
73
+ resource = $(@).data('resource')
74
+ id = $(@).data('resource-id')
75
+ console.log('parent_div = ' + parent)
76
+ console.log('resource = ' + resource)
77
+ console.log('resource_id = ' + id)
78
+ console.log('url = ' + "/historiqueux/" + resource + "/" + id + "/" + event_id)
79
+ $.ajax
80
+ url: "/historiqueux/" + resource + "/" + id + "/" + event_id
81
+ type: "get"
82
+ dataType: "html"
83
+ data:
84
+ "parent_div": parent
85
+ success: (returnData) ->
86
+ console.log('success')
87
+ console.log("#" + parent)
88
+ console.log(returnData)
89
+ if parent
90
+ $("#" + parent).html(returnData)
91
+ else
92
+ console.log('no parent')
93
+ $('body').html(returnData)
94
+ @
95
+ error: (e) ->
96
+ alert(e)
97
+ @
98
+ @
99
+
100
+
@@ -0,0 +1,3 @@
1
+ class Historiqueux::ApplicationController < ApplicationController
2
+ #Nécessaire pour hériter de l'application controller de l'application hôte
3
+ end
@@ -0,0 +1,96 @@
1
+ require_dependency "historiqueux/application_controller"
2
+
3
+ module Historiqueux
4
+ class HistoryController < ApplicationController
5
+
6
+ def index
7
+
8
+ resource = fetch_resource
9
+ if resource.respond_to?('versions')
10
+ @history = resource.versions
11
+ @parent_div = params[:parent_div]
12
+
13
+ @relations = @resourceKlass.reflect_on_all_associations.map { |r| "#{r.name}" }.reject { |i| i=='versions' }
14
+ end
15
+
16
+ if request.xhr?
17
+ render :layout => false
18
+ end
19
+
20
+ end
21
+
22
+ def index_relations
23
+
24
+ resource = fetch_resource
25
+ if resource.respond_to?('versions')
26
+ @history = resource.versions
27
+ @parent_div = params[:parent_div]
28
+
29
+ fetch_relation_resource(params[:relation_resource], resource)
30
+
31
+ if @relation_resourceKlass
32
+
33
+ @relations = @relation_resourceKlass.reflect_on_all_associations.map { |r| "#{r.name}" }.reject { |i| i=='versions' }
34
+
35
+ @history_relations = {}
36
+ @relation_resource_list.each do |rr|
37
+ @history_relations.store(rr.id, rr.versions)
38
+ end
39
+ end
40
+
41
+ end
42
+
43
+ if request.xhr?
44
+ render :layout => false
45
+ end
46
+
47
+ end
48
+
49
+
50
+ def show
51
+
52
+ @parent_div = params[:parent_div]
53
+ @model_instance = fetch_resource
54
+ version_id = params[:version_id]
55
+ @preceding_version = @model_instance.versions.where(:id => version_id).first
56
+ @version = @preceding_version.next
57
+
58
+ if request.xhr?
59
+ render :layout => false
60
+ end
61
+
62
+ end
63
+
64
+ def fetch_resource
65
+ @resource = params[:resource]
66
+ @class_name = classify_namespace(params[:resource])
67
+ @resourceKlass = eval(@class_name)
68
+ @resource_id = params[:resource_id]
69
+ @resourceKlass.find(@resource_id)
70
+ end
71
+
72
+ def fetch_relation_resource(relation_resource, resource)
73
+ @relation_resource = relation_resource
74
+ @relation_resource_list = resource.send(@relation_resource)
75
+ if @relation_resource_list.first.respond_to?('versions')
76
+ namespaced_class_name = @relation_resource_list.first.versions.first.item_type
77
+ @relation_class_name = classify_namespace(namespaced_class_name)
78
+ @relation_resourceKlass = eval(@relation_class_name)
79
+ end
80
+ end
81
+
82
+ def classify_namespace(const)
83
+ const = const.classify
84
+ if const.include?('::')
85
+ new_const = ''
86
+ splitted = const.split('::')
87
+ for str in splitted do
88
+ new_const = new_const + str.classify + '::'
89
+ end
90
+ const = new_const[0..(new_const.length - 3)]
91
+ end
92
+ const
93
+ end
94
+
95
+ end
96
+ end
@@ -0,0 +1,4 @@
1
+ module Historiqueux
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,78 @@
1
+ <div class="container">
2
+
3
+ <div class="row">
4
+
5
+ <div class="col-md-2">
6
+ <h3><%= @resource %> no <%= @resource_id %></h3>
7
+ </div>
8
+ <div class="col-md-2">
9
+
10
+ <div class="box_content">
11
+
12
+ <div>
13
+ <a role="button" id="toggler" href="#" data-toggle="collapse" class="btn btn-primary btn-xs" data-target="#demo">
14
+ Relations
15
+ </a>
16
+ </div>
17
+
18
+ <div id="demo" class="collapse">
19
+ <% @relations.each do |relation| %>
20
+ <ul class="nav nav-list">
21
+
22
+ <%= link_to relation, "#", :class => 'event_open_relation',
23
+ :data => {:parent => @parent_div,
24
+ :resource => @resource.downcase,
25
+ :id => @resource_id,
26
+ :relation => relation} %>
27
+
28
+
29
+ </ul>
30
+ <% end %>
31
+ </div>
32
+
33
+ </div>
34
+
35
+ </div>
36
+
37
+ </div>
38
+
39
+ <table class="table table-hover">
40
+ <thead>
41
+ <tr>
42
+ <th>Évènement</th>
43
+ <th>Type d'élément</th>
44
+ <th>Fait par</th>
45
+ <th class="col-md-4">Date</th>
46
+ <th></th>
47
+ </tr>
48
+ </thead>
49
+
50
+ <% @history.each_with_index do |event, idx| %>
51
+
52
+
53
+ <tr class="event_open_details"
54
+ id="row<%= idx + 1 %>"
55
+ data-event-id="<%= event.id %>"
56
+ data-parent-div="<%= @parent_div %>"
57
+ data-resource="<%= @resource.downcase %>"
58
+ data-resource-id="<%= @resource_id %>">
59
+
60
+ <td>
61
+ <%= event.event %>
62
+ </td>
63
+ <td>
64
+ <%= event.item_type %>
65
+ </td>
66
+ <td>
67
+ <%= event.whodunnit %>
68
+ </td>
69
+ <td>
70
+ <%= event.created_at.in_time_zone('Eastern Time (US & Canada)').strftime("%Y-%m-%d %H:%M:%S") %>
71
+ </td>
72
+
73
+ </tr>
74
+ <% end %>
75
+ </table>
76
+ <br/>
77
+
78
+ </div>
@@ -0,0 +1,102 @@
1
+ <div class="container">
2
+
3
+ <h2>Liste des <%= @relation_resource %> liés au <%= @resource %> no <%= @resource_id %></h2>
4
+ <br/>
5
+ <% @relation_resource_list.each_with_index do |relation_resource, idx| %>
6
+
7
+ <div class="row">
8
+ <div class="col-md-2">
9
+ <h3><%= @relation_resource %> no <%= relation_resource.id %></h3>
10
+ </div>
11
+ <div class="col-md-2">
12
+
13
+ <div>
14
+ <a role="button" id="toggler" href="#" data-toggle="collapse" class="btn btn-primary btn-xs" data-target="#demo<%= idx %>">
15
+ Relations
16
+ </a>
17
+ </div>
18
+
19
+ <% if @relations %>
20
+ <div id="demo<%= idx %>" class="collapse">
21
+ <% @relations.each do |relation| %>
22
+ <ul class="nav nav-list">
23
+
24
+ <%= link_to relation, "#", :id => "event_open_relation", :class => '',
25
+ :data => {:parent => @parent_div,
26
+ :resource => @resource.downcase,
27
+ :id => @resource_id,
28
+ :relation => relation} %>
29
+
30
+
31
+ </ul>
32
+ <% end %>
33
+ </div>
34
+ <% end %>
35
+ </div>
36
+
37
+
38
+ </div>
39
+
40
+ <% if @history_relations %>
41
+
42
+ <div class="box_content">
43
+
44
+ <table class="table table-hover">
45
+ <thead>
46
+ <tr>
47
+ <th>Évènement</th>
48
+ <th>Type d'élément</th>
49
+ <th>Fait par</th>
50
+ <th>Date</th>
51
+ </tr>
52
+ </thead>
53
+
54
+ <% @history_relations[relation_resource.id].each_with_index do |event, idx| %>
55
+
56
+
57
+ <tr id="row<%= idx + 1 %>"
58
+ data-event-id="<%= event.id %>"
59
+ data-parent-div="<%= @parent_div %>"
60
+ data-resource="<%= @resource.downcase %>"
61
+ data-resource-id="<%= @resource_id %>">
62
+
63
+ <td>
64
+ <%= event.event %>
65
+ </td>
66
+ <td>
67
+ <%= event.item_type %>
68
+ </td>
69
+ <td>
70
+ <%= event.whodunnit %>
71
+ </td>
72
+ <td>
73
+ <%= event.created_at.in_time_zone('Eastern Time (US & Canada)').strftime("%Y-%m-%d %H:%M:%S") %>
74
+ </td>
75
+ </tr>
76
+ <% end %>
77
+ </table>
78
+
79
+ </div>
80
+
81
+ <% else %>
82
+ ENTITÉ NON VERSIONNÉE
83
+ <% end %>
84
+
85
+ <br/>
86
+
87
+ <% end %>
88
+
89
+ <div class="form-actions form-actions-padding-sm">
90
+ <div class="row">
91
+ <div class="col-md-10 col-md-offset-5">
92
+
93
+ <%= link_to "Retour", "#", :id => "event_back", :class => 'btn btn-primary',
94
+ :data => {:parent => @parent_div,
95
+ :resource => @resource.downcase,
96
+ :id => @resource_id} %>
97
+
98
+ </div>
99
+ </div>
100
+ </div>
101
+
102
+ </div>
@@ -0,0 +1,120 @@
1
+ <div class="container">
2
+
3
+ <div class="col-sm-12">
4
+ <div class="box">
5
+
6
+ <h3 id="event">Évènement : <%= @preceding_version.event %></h3>
7
+
8
+ <h3>Quand : <%= @preceding_version.created_at.in_time_zone('Eastern Time (US & Canada)').strftime("%Y-%m-%d %H:%M:%S") %></h3>
9
+
10
+ <h3>Fait par : <%= @preceding_version.whodunnit %></h3>
11
+
12
+ <h3 id="item_type">Élément : <%= @preceding_version.item_type %></h3>
13
+
14
+ <br/>
15
+
16
+ <div class="col-sm-10">
17
+
18
+ <div class="panel-group" id="accordion">
19
+ <div class="panel panel-default">
20
+ <div class="panel-heading">
21
+
22
+ <h4 class="panel-title">
23
+ <a data-toggle="collapse" data-parent="" href="#collapseOne">Valeurs de cette version</a>
24
+ </h4>
25
+ </div>
26
+ <div id="collapseOne" class="panel-collapse collapse">
27
+ <div class="panel-body">
28
+ <p id="current_version_values">
29
+
30
+ <% unless @version.blank? %>
31
+ <% if @version and @version.reify %>
32
+ <% @version.reify.attributes.each do |attribute| %>
33
+ <br/>
34
+ <%= attribute %>
35
+ <% end %>
36
+ <% else %>
37
+ Aucune valeur
38
+ <% end %>
39
+ <% else %>
40
+ <% @model_instance.attributes.each do |attribute| %>
41
+ <br/>
42
+ <%= attribute %>
43
+ <% end %>
44
+
45
+ <% end %>
46
+
47
+
48
+ </p>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ <div class="panel panel-default">
53
+ <div class="panel-heading">
54
+ <h4 class="panel-title">
55
+ <a data-toggle="collapse" data-parent="" href="#collapseTwo">Valeurs de la version
56
+ précédente</a>
57
+ </h4>
58
+ </div>
59
+ <div id="collapseTwo" class="panel-collapse collapse">
60
+ <div class="panel-body">
61
+ <p id="preceding_version_values">
62
+
63
+ <% if @preceding_version and @preceding_version.reify %>
64
+ <% @preceding_version.reify.attributes.each do |attribute| %>
65
+ <br/>
66
+ <%= attribute %>
67
+ <% end %>
68
+ <% else %>
69
+ Aucune valeur
70
+ <% end %>
71
+
72
+ </p>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ <div class="panel panel-default">
77
+ <div class="panel-heading">
78
+ <h4 class="panel-title">
79
+ <a data-toggle="collapse" data-parent="" href="#collapseThree">Différence(s)</a>
80
+ </h4>
81
+ </div>
82
+ <div id="collapseThree" class="panel-collapse collapse">
83
+ <div class="panel-body">
84
+ <p id="differences">
85
+
86
+ <% if @preceding_version and @preceding_version.respond_to?(:changeset) and @preceding_version.event != 'create' %>
87
+ <% @preceding_version.changeset.each do |attribute| %>
88
+ <br/>
89
+ <%= attribute %>
90
+ <% end %>
91
+ <% else %>
92
+ Aucune valeur
93
+ <% end %>
94
+
95
+ </p>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </div>
100
+
101
+ <div class="form-actions form-actions-padding-sm">
102
+ <div class="row">
103
+ <div class="col-md-10 col-md-offset-5">
104
+
105
+ <%= link_to "Retour", "#", :id => "event_back", :class => 'btn btn-primary',
106
+ :data => {:parent => @parent_div,
107
+ :resource => @resource.downcase,
108
+ :id => @resource_id} %>
109
+
110
+ </div>
111
+ </div>
112
+ </div>
113
+
114
+
115
+ </div>
116
+
117
+ </div>
118
+ </div>
119
+
120
+ </div>
@@ -0,0 +1,8 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
5
+ %>
6
+ default: <%= std_opts %> features
7
+ wip: --tags @wip:3 --wip features
8
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
data/config/routes.rb ADDED
@@ -0,0 +1,7 @@
1
+ Historiqueux::Engine.routes.draw do
2
+
3
+ get '/historiqueux/:resource/:resource_id', to: 'history#index'
4
+ get '/historiqueux/:resource/:resource_id/relations/:relation_resource', to: 'history#index_relations'
5
+ get '/historiqueux/:resource/:resource_id/:version_id', to: 'history#show'
6
+
7
+ end
@@ -0,0 +1,10 @@
1
+ module Historiqueux
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Historiqueux
4
+
5
+ config.generators do |g|
6
+ g.test_framework :rspec
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ module Historiqueux
2
+ VERSION = "0.0.6"
3
+ end
@@ -0,0 +1,4 @@
1
+ require "historiqueux/engine"
2
+
3
+ module Historiqueux
4
+ end
@@ -0,0 +1,65 @@
1
+ # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
+ # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
+ # files.
6
+
7
+
8
+ unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
9
+
10
+ vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
11
+ $LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
12
+
13
+ begin
14
+ require 'cucumber/rake/task'
15
+
16
+ namespace :cucumber do
17
+ Cucumber::Rake::Task.new({:ok => 'test:prepare'}, 'Run features that should pass') do |t|
18
+ t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
19
+ t.fork = true # You may get faster startup if you set this to false
20
+ t.profile = 'default'
21
+ end
22
+
23
+ Cucumber::Rake::Task.new({:wip => 'test:prepare'}, 'Run features that are being worked on') do |t|
24
+ t.binary = vendored_cucumber_bin
25
+ t.fork = true # You may get faster startup if you set this to false
26
+ t.profile = 'wip'
27
+ end
28
+
29
+ Cucumber::Rake::Task.new({:rerun => 'test:prepare'}, 'Record failing features and run only them if any exist') do |t|
30
+ t.binary = vendored_cucumber_bin
31
+ t.fork = true # You may get faster startup if you set this to false
32
+ t.profile = 'rerun'
33
+ end
34
+
35
+ desc 'Run all features'
36
+ task :all => [:ok, :wip]
37
+
38
+ task :statsetup do
39
+ require 'rails/code_statistics'
40
+ ::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features')
41
+ ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')
42
+ end
43
+ end
44
+ desc 'Alias for cucumber:ok'
45
+ task :cucumber => 'cucumber:ok'
46
+
47
+ task :default => :cucumber
48
+
49
+ task :features => :cucumber do
50
+ STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
51
+ end
52
+
53
+ # In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon.
54
+ task 'test:prepare' do
55
+ end
56
+
57
+ task :stats => 'cucumber:statsetup'
58
+ rescue LoadError
59
+ desc 'cucumber rake task not available (cucumber not installed)'
60
+ task :cucumber do
61
+ abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :historiqueux do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: historiqueux
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ platform: ruby
6
+ authors:
7
+ - Groupe Fungo inc.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.0.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: paper_trail
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Inject some routes in your app that provides screens that help visualize
56
+ any ressource versions, values and differences. Provide the ability no navigate
57
+ related entities versions details.
58
+ email:
59
+ - ssavoie@fungo.ca
60
+ executables: []
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - MIT-LICENSE
65
+ - README.rdoc
66
+ - Rakefile
67
+ - app/assets/javascripts/historiqueux/application.js.coffee
68
+ - app/assets/javascripts/historiqueux/history.js.coffee
69
+ - app/controllers/historiqueux/application_controller.rb
70
+ - app/controllers/historiqueux/history_controller.rb
71
+ - app/helpers/historiqueux/application_helper.rb
72
+ - app/views/historiqueux/history/index.html.erb
73
+ - app/views/historiqueux/history/index_relations.html.erb
74
+ - app/views/historiqueux/history/show.html.erb
75
+ - config/cucumber.yml
76
+ - config/routes.rb
77
+ - lib/historiqueux.rb
78
+ - lib/historiqueux/engine.rb
79
+ - lib/historiqueux/version.rb
80
+ - lib/tasks/cucumber.rake
81
+ - lib/tasks/historiqueux_tasks.rake
82
+ homepage: https://github.com/groupefungo/historiqueux
83
+ licenses: []
84
+ metadata: {}
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 2.2.2
102
+ signing_key:
103
+ specification_version: 4
104
+ summary: Add a bootstrap presentation layer to paper_trail
105
+ test_files: []