hystorical 0.1.0 → 0.2.0

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.
data/README.md CHANGED
@@ -91,6 +91,14 @@ def index
91
91
  end
92
92
  ```
93
93
 
94
+ ### Generator
95
+ Hystorical comes with a generator that creates a migration to add `start_date` and `end_date` to the specified model.
96
+
97
+ ```
98
+ $ rails g hystorical:dates Subscription
99
+ $ create db/migrate/20120917150948_add_start_date_end_date_to_subscriptions.rb
100
+ ```
101
+
94
102
  ## Philosophy
95
103
  This gem was created using TDD and README-driven development. The architecture was designed with a strong focus on modularity and extensibility. Using ruby's `Enumerable` methods to return current object was chosen because of it's great flexibility to adapt to all ruby projects. However, when working with large datasets stored in a relational database, using SQL would yield greater performance. An adapter was added for ActiveRecord, but extending this to another ORM (such as DataMapper or Mongoid) is as simple as creating a new class that defines all the methods in the public api and adding a conditional in `Hystorical.delegate_class`.
96
104
 
@@ -0,0 +1,2 @@
1
+ Description:
2
+ This generator will add start_date and end_date fields to the specified model
@@ -0,0 +1,15 @@
1
+ module Hystorical
2
+ class DatesGenerator < Rails::Generators::Base
3
+ include Rails::Generators::Migration
4
+ source_root File.expand_path('../templates', __FILE__)
5
+ argument :model, type: :string
6
+
7
+ def self.next_migration_number(path)
8
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
9
+ end
10
+
11
+ def hystorical_migration
12
+ migration_template 'migration.rb', File.join('db/migrate', "add_start_date_end_date_to_#{model.tableize}.rb")
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ class AddStartDateEndDateTo<%= model.classify %> < ActiveRecord::Migration
2
+ def change
3
+ add_column :<%= model.tableize %>, :start_date, :date
4
+ add_column :<%= model.tableize %>, :end_date, :date
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Hystorical
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hystorical
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-13 00:00:00.000000000 Z
12
+ date: 2012-09-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -73,6 +73,9 @@ files:
73
73
  - README.md
74
74
  - Rakefile
75
75
  - hystorical.gemspec
76
+ - lib/generators/hystorical/USAGE
77
+ - lib/generators/hystorical/dates_generator.rb
78
+ - lib/generators/hystorical/templates/migration.rb
76
79
  - lib/hystorical.rb
77
80
  - lib/hystorical/ar_relation.rb
78
81
  - lib/hystorical/ruby_collection.rb