versionizer 0.0.9 → 0.1.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.
- checksums.yaml +4 -4
- data/app/models/versionizer/version.rb +11 -0
- data/lib/generators/versionizer/migration_generator.rb +24 -0
- data/lib/generators/versionizer/save_generator.rb +29 -0
- data/lib/generators/versionizer/templates/create_table.rb +8 -0
- data/lib/generators/versionizer/templates/initializer.rb +1 -1
- data/lib/versionizer.rb +9 -11
- data/lib/versionizer/engine.rb +23 -0
- data/lib/versionizer/save.rb +23 -0
- data/lib/versionizer/tasks/version.rake +37 -0
- data/lib/versionizer/version.rb +1 -1
- data/spec/lib/generators/install_generator_spec.rb +5 -3
- data/spec/lib/generators/migration_generator_spec.rb +38 -0
- data/spec/lib/generators/save_generator_spec.rb +37 -0
- data/spec/lib/version_spec.rb +1 -1
- data/spec/spec_helper.rb +5 -1
- data/versionizer.gemspec +1 -1
- metadata +13 -5
- data/lib/tasks/github.rake +0 -2
- data/lib/versionizer/railtie.rb +0 -11
- data/lib/versionizer/tasks.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3178d3c0003133f42416d98447004b60d59da841
|
4
|
+
data.tar.gz: effa122a52078671bec633eb16381ffd3ff45a28
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 763b212735b9e2b2f4395f377fc183d95bbd51eeb53ddd555c186ee59a965f992da0bcc643616550e05fa950d07ba89146d47a6cb8b9f27a9d31a6a90b2f9970
|
7
|
+
data.tar.gz: 587ecfe69add2623a67e2a90d91632b764805687f117f463b182881a42df37a5f92d3bdb873dc4da0fb053e2865812ed7098874ba13e3cee4dc505f7919d77e9
|
@@ -0,0 +1,11 @@
|
|
1
|
+
|
2
|
+
# Versionizer Model
|
3
|
+
#
|
4
|
+
# Default functionality is to save version updates to "version" model
|
5
|
+
# Gives the developer a running total of latest upgrades etc
|
6
|
+
# To ignore this, user can override the "save" method
|
7
|
+
|
8
|
+
###########################################
|
9
|
+
|
10
|
+
class Versionizer::Version < ActiveRecord::Base
|
11
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
###########################################
|
2
|
+
|
3
|
+
require 'rails/generators/active_record'
|
4
|
+
|
5
|
+
###########################################
|
6
|
+
|
7
|
+
module Versionizer
|
8
|
+
class MigrationGenerator < ActiveRecord::Generators::Base
|
9
|
+
|
10
|
+
#Source of Migrations
|
11
|
+
source_root File.expand_path("../templates", __FILE__)
|
12
|
+
|
13
|
+
#Name (otherwise fails)
|
14
|
+
argument :name, default: "migration"
|
15
|
+
|
16
|
+
###########################################
|
17
|
+
|
18
|
+
#Create Migration
|
19
|
+
def create_versions_migration
|
20
|
+
migration_template "create_table.rb", "db/migrate/create_versions.rb"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
###########################################
|
2
|
+
|
3
|
+
require 'rails/generators/base'
|
4
|
+
|
5
|
+
###########################################
|
6
|
+
|
7
|
+
module Versionizer
|
8
|
+
class SaveGenerator < Rails::Generators::Base
|
9
|
+
|
10
|
+
#Setup
|
11
|
+
source_root File.expand_path("../../../versionizer", __FILE__)
|
12
|
+
|
13
|
+
#Generate File
|
14
|
+
def generate
|
15
|
+
|
16
|
+
#Generate
|
17
|
+
template "save.rb", "vendor/versionizer/save.rb"
|
18
|
+
|
19
|
+
#Insert
|
20
|
+
inject_into_file "vendor/versionizer/save.rb", :after => "repos.first.tag_name" do
|
21
|
+
"\n\n\t\t#EDITABLE REGION"
|
22
|
+
end
|
23
|
+
|
24
|
+
#Success
|
25
|
+
puts "Save Generated Successfully"
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -9,6 +9,6 @@
|
|
9
9
|
|
10
10
|
Versionizer.setup do |config|
|
11
11
|
config.user = "<%= @user %>" #-> Your Github Username
|
12
|
-
config.api
|
12
|
+
config.api = "<%= @api %>" #-> Your Github API Key
|
13
13
|
config.repo = "<%= @repo %>" #-> Your Github Repo to track
|
14
14
|
end
|
data/lib/versionizer.rb
CHANGED
@@ -1,19 +1,17 @@
|
|
1
|
-
|
2
|
-
require "versionizer/config"
|
1
|
+
###########################################
|
3
2
|
|
4
|
-
|
3
|
+
dependencies = %w(version config save)
|
4
|
+
dependencies.each do |d|
|
5
|
+
require "versionizer/#{d}"
|
6
|
+
end
|
7
|
+
require "versionizer/engine" if defined?(Rails) # -> http://stackoverflow.com/questions/742633/make-rake-task-from-gem-available-everywhere
|
5
8
|
|
6
|
-
|
7
|
-
require "versionizer/railtie" if defined?(Rails)
|
9
|
+
###########################################
|
8
10
|
|
9
|
-
|
10
|
-
def self.save repo
|
11
|
-
option = Option.find_by name: "version"
|
12
|
-
option.update!(value: repo.first.tag_name)
|
13
|
-
end
|
11
|
+
module Versionizer
|
14
12
|
|
15
13
|
####################
|
16
|
-
#
|
14
|
+
# Setup #
|
17
15
|
####################
|
18
16
|
|
19
17
|
#Ref http://robots.thoughtbot.com/mygem-configure-block
|
@@ -0,0 +1,23 @@
|
|
1
|
+
###########################################
|
2
|
+
|
3
|
+
#http://stackoverflow.com/questions/742633/make-rake-task-from-gem-available-everywhere
|
4
|
+
require 'versionizer'
|
5
|
+
require 'rails'
|
6
|
+
|
7
|
+
###########################################
|
8
|
+
|
9
|
+
module Versionizer
|
10
|
+
class Engine < Rails::Engine
|
11
|
+
#Tasks
|
12
|
+
rake_tasks do
|
13
|
+
load File.expand_path('../../versionizer/tasks/version.rake', __FILE__) # https://github.com/kjvarga/sitemap_generator/blob/master/lib/sitemap_generator/railtie.rb
|
14
|
+
end
|
15
|
+
|
16
|
+
#Autoload (for auto-installed gems)
|
17
|
+
initializer "versionizer" do |app|
|
18
|
+
Dir[Rails.root + 'lib/versionizer/*.rb'].each do |file| #-> http://stackoverflow.com/questions/4235782/rails-3-library-not-loading-until-require/6797707#6797707
|
19
|
+
require file
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
# Versionizer "Save" Method
|
3
|
+
#
|
4
|
+
# This is called *after* you call `rake version:update`
|
5
|
+
# Standard functionality updates "Version" model (which is generated initially)
|
6
|
+
# Can be overridden by invoking `rails g versionizer:save`
|
7
|
+
|
8
|
+
###########################################
|
9
|
+
|
10
|
+
module Versionizer
|
11
|
+
class Save
|
12
|
+
|
13
|
+
#Save
|
14
|
+
def initialize repos
|
15
|
+
latest = repos.first.tag_name
|
16
|
+
|
17
|
+
#Need to determine if exists
|
18
|
+
#Here you save your update
|
19
|
+
Versionizer::Version.create!(tag: latest)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#########################################
|
2
|
+
|
3
|
+
require 'rake' #-> Tasks Structure https://github.com/kjvarga/sitemap_generator/blob/master/lib/sitemap_generator/tasks.rb
|
4
|
+
require 'github_api'
|
5
|
+
|
6
|
+
#########################################
|
7
|
+
|
8
|
+
##GITHUB AUTHENTICATION RAKE
|
9
|
+
#Authorization API Key = https://github.com/settings/applications#personal-access-tokens
|
10
|
+
|
11
|
+
#Github
|
12
|
+
namespace :version do
|
13
|
+
|
14
|
+
# Have to load "Github" gem into environment. Github object depends on it being
|
15
|
+
# present & available
|
16
|
+
|
17
|
+
# Update
|
18
|
+
desc "Get The Latest Release From Github"
|
19
|
+
task :save => :environment do #-> http://stackoverflow.com/questions/2574921/how-do-i-pass-arguments-from-the-parent-task-to-the-child-task-in-rake
|
20
|
+
github = Github.new basic_auth: "#{Versionizer.config.user}:#{Versionizer.config.api}"
|
21
|
+
@repos = github.repos.releases.list "#{Versionizer.config.user}", "#{Versionizer.config.repo}"
|
22
|
+
end
|
23
|
+
|
24
|
+
#After
|
25
|
+
desc "Save The Latest Release"
|
26
|
+
task :update => [:environment, :save] do
|
27
|
+
if @repos.present?
|
28
|
+
unless Rails.env.test?
|
29
|
+
Versionizer::Save.new @repos
|
30
|
+
puts "Version Updated To v#{@repos.first.tag_name}"
|
31
|
+
end
|
32
|
+
else
|
33
|
+
puts "Invalid Github"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
data/lib/versionizer/version.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "spec_helper"
|
4
4
|
require "generator_spec"
|
5
|
+
require "versionizer" #-> for assert_match
|
5
6
|
|
6
7
|
##########################################
|
7
8
|
|
@@ -28,9 +29,10 @@ describe Versionizer::InstallGenerator do
|
|
28
29
|
#Config
|
29
30
|
it "has valid config" do
|
30
31
|
assert_file "config/initializers/versionizer.rb" do |file|
|
31
|
-
|
32
|
-
|
33
|
-
|
32
|
+
%w(user api repo).each do |item|
|
33
|
+
string = "config.#{item} = \"#{Versionizer.config.send(item)}\"" #-> Regex
|
34
|
+
assert_match(string, file)
|
35
|
+
end
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
@@ -0,0 +1,38 @@
|
|
1
|
+
##########################################
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
require "generator_spec"
|
5
|
+
require "versionizer" #-> for assert_match
|
6
|
+
|
7
|
+
##########################################
|
8
|
+
|
9
|
+
#Install Generator
|
10
|
+
describe Versionizer::MigrationGenerator do
|
11
|
+
|
12
|
+
#Setup
|
13
|
+
GeneratorSpec::TestCase
|
14
|
+
|
15
|
+
#Destination
|
16
|
+
destination File.expand_path("../../tmp", __FILE__)
|
17
|
+
|
18
|
+
#Before
|
19
|
+
before(:all) do
|
20
|
+
prepare_destination
|
21
|
+
run_generator
|
22
|
+
end
|
23
|
+
|
24
|
+
#Create
|
25
|
+
it "creates the migration" do
|
26
|
+
assert_migration "db/migrate/create_versions.rb"
|
27
|
+
end
|
28
|
+
|
29
|
+
#Table
|
30
|
+
it "creates Version table" do
|
31
|
+
# expect {
|
32
|
+
# CreateVersions.change
|
33
|
+
# Version.reset_column_information
|
34
|
+
# }.to change { Version.columns }
|
35
|
+
#Version.columns.map(&:tag).should include()
|
36
|
+
# end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
##########################################
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
require "generator_spec"
|
5
|
+
require "versionizer" #-> for assert_match
|
6
|
+
|
7
|
+
##########################################
|
8
|
+
|
9
|
+
#Install Generator
|
10
|
+
describe Versionizer::SaveGenerator do
|
11
|
+
|
12
|
+
#Setup
|
13
|
+
GeneratorSpec::TestCase
|
14
|
+
|
15
|
+
#Destination
|
16
|
+
destination File.expand_path("../../tmp", __FILE__)
|
17
|
+
|
18
|
+
#Before
|
19
|
+
before(:all) do
|
20
|
+
prepare_destination
|
21
|
+
run_generator
|
22
|
+
end
|
23
|
+
|
24
|
+
#Create
|
25
|
+
it "creates the files" do
|
26
|
+
assert_file "vendor/versionizer/save.rb"
|
27
|
+
end
|
28
|
+
|
29
|
+
#Contents
|
30
|
+
it "has the method" do
|
31
|
+
assert_file "vendor/versionizer/save.rb" do |file|
|
32
|
+
assert_match "def initialize repos", file
|
33
|
+
assert_match "\n\n\t\t#EDITABLE REGION", file
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
data/spec/lib/version_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -23,7 +23,11 @@ require 'coveralls'
|
|
23
23
|
Coveralls.wear!
|
24
24
|
|
25
25
|
#Generators
|
26
|
-
|
26
|
+
generators = %w(install save migration)
|
27
|
+
generators.each do |g|
|
28
|
+
require "generators/versionizer/#{g}_generator"
|
29
|
+
end
|
30
|
+
|
27
31
|
|
28
32
|
#Env
|
29
33
|
ENV["RAILS_ENV"] = 'test'
|
data/versionizer.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency
|
21
|
+
spec.add_dependency "github_api", "~> 0.12.1"
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.6"
|
23
23
|
spec.add_development_dependency "rake"
|
24
24
|
spec.add_development_dependency "rspec"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: versionizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Peck
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: github_api
|
@@ -81,15 +81,21 @@ files:
|
|
81
81
|
- LICENSE.txt
|
82
82
|
- README.md
|
83
83
|
- Rakefile
|
84
|
+
- app/models/versionizer/version.rb
|
84
85
|
- lib/generators/versionizer/install_generator.rb
|
86
|
+
- lib/generators/versionizer/migration_generator.rb
|
87
|
+
- lib/generators/versionizer/save_generator.rb
|
88
|
+
- lib/generators/versionizer/templates/create_table.rb
|
85
89
|
- lib/generators/versionizer/templates/initializer.rb
|
86
|
-
- lib/tasks/github.rake
|
87
90
|
- lib/versionizer.rb
|
88
91
|
- lib/versionizer/config.rb
|
89
|
-
- lib/versionizer/
|
90
|
-
- lib/versionizer/
|
92
|
+
- lib/versionizer/engine.rb
|
93
|
+
- lib/versionizer/save.rb
|
94
|
+
- lib/versionizer/tasks/version.rake
|
91
95
|
- lib/versionizer/version.rb
|
92
96
|
- spec/lib/generators/install_generator_spec.rb
|
97
|
+
- spec/lib/generators/migration_generator_spec.rb
|
98
|
+
- spec/lib/generators/save_generator_spec.rb
|
93
99
|
- spec/lib/version_spec.rb
|
94
100
|
- spec/spec_helper.rb
|
95
101
|
- versionizer.gemspec
|
@@ -119,5 +125,7 @@ specification_version: 4
|
|
119
125
|
summary: '"Versions" for your app using Github "Releases" feature'
|
120
126
|
test_files:
|
121
127
|
- spec/lib/generators/install_generator_spec.rb
|
128
|
+
- spec/lib/generators/migration_generator_spec.rb
|
129
|
+
- spec/lib/generators/save_generator_spec.rb
|
122
130
|
- spec/lib/version_spec.rb
|
123
131
|
- spec/spec_helper.rb
|
data/lib/tasks/github.rake
DELETED
data/lib/versionizer/railtie.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
#http://stackoverflow.com/questions/742633/make-rake-task-from-gem-available-everywhere
|
2
|
-
require 'versionizer'
|
3
|
-
require 'rails'
|
4
|
-
|
5
|
-
module Versionizer
|
6
|
-
class Railtie < Rails::Railtie
|
7
|
-
rake_tasks do
|
8
|
-
require File.expand_path('../tasks', __FILE__) # https://github.com/kjvarga/sitemap_generator/blob/master/lib/sitemap_generator/railtie.rb
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
data/lib/versionizer/tasks.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#########################################
|
2
|
-
|
3
|
-
require 'rake' #-> Tasks Structure https://github.com/kjvarga/sitemap_generator/blob/master/lib/sitemap_generator/tasks.rb
|
4
|
-
require 'github_api'
|
5
|
-
|
6
|
-
#########################################
|
7
|
-
|
8
|
-
##GITHUB AUTHENTICATION RAKE
|
9
|
-
#Authorization API Key = https://github.com/settings/applications#personal-access-tokens
|
10
|
-
|
11
|
-
#Github
|
12
|
-
namespace :version do
|
13
|
-
|
14
|
-
# Have to load "Github" gem into environment. Github object depends on it being
|
15
|
-
# present & available
|
16
|
-
|
17
|
-
# Update
|
18
|
-
task :update => :environment do
|
19
|
-
github = Github.new basic_auth: 'richpeck:29fbd56c3ab779a8ef22df8e52671c8c1c1ff194'
|
20
|
-
repo = github.repos.releases.list "richpeck", "sgm"
|
21
|
-
|
22
|
-
#Versionizer.save repo
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|