versionizer 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7abc7e8daffcb13871d8dff1f970b1009d5287c9
4
- data.tar.gz: d2db32394ad05c872e4af923f31bd5c9d36726bd
3
+ metadata.gz: 3178d3c0003133f42416d98447004b60d59da841
4
+ data.tar.gz: effa122a52078671bec633eb16381ffd3ff45a28
5
5
  SHA512:
6
- metadata.gz: 7b74362249774112e3b8c3ade7e2637d018e49def0759eea1d186db37491a24adb996cef51b95ece308ac2568f3d085728d7c097731875f3a3ab35b2a55d948c
7
- data.tar.gz: a2f1b00044596fb0b951ac3c0a395dfe33e6416cf5587d6d14290c03eebd9b98d6fb3053a92837cb9ddadd8261f99b9ab4d9df55e2a0e3876d3ec94586a0c7e0
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
@@ -0,0 +1,8 @@
1
+ class CreateVersions < ActiveRecord::Migration
2
+ def change
3
+ create_table :versions do |t|
4
+ t.string :tag
5
+ t.timestamps
6
+ end
7
+ end
8
+ end
@@ -9,6 +9,6 @@
9
9
 
10
10
  Versionizer.setup do |config|
11
11
  config.user = "<%= @user %>" #-> Your Github Username
12
- config.api = "<%= @api %>" #-> Your Github API Key
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
- require "versionizer/version"
2
- require "versionizer/config"
1
+ ###########################################
3
2
 
4
- module Versionizer
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
- #Railtie - http://stackoverflow.com/questions/742633/make-rake-task-from-gem-available-everywhere
7
- require "versionizer/railtie" if defined?(Rails)
9
+ ###########################################
8
10
 
9
- #Save
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
- # Config #
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
@@ -1,3 +1,3 @@
1
1
  module Versionizer
2
- VERSION = "0.0.9"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -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
- assert_match("config.user =", file)
32
- assert_match("config.api =", file)
33
- assert_match("config.repo =", file)
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
@@ -15,7 +15,7 @@ describe "GitHub Connectivity Test" do
15
15
 
16
16
  #Load
17
17
  before do
18
- load "./lib/tasks/github.rake"
18
+ load "./lib/versionizer/tasks/version.rake"
19
19
  Rake::Task.define_task(:environment)
20
20
  end
21
21
 
data/spec/spec_helper.rb CHANGED
@@ -23,7 +23,11 @@ require 'coveralls'
23
23
  Coveralls.wear!
24
24
 
25
25
  #Generators
26
- require 'generators/versionizer/install_generator'
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 'github_api', '~> 0.12.1'
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.9
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-28 00:00:00.000000000 Z
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/railtie.rb
90
- - lib/versionizer/tasks.rb
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
@@ -1,2 +0,0 @@
1
- #https://github.com/kjvarga/sitemap_generator/blob/master/lib/tasks/sitemap_generator_tasks.rake
2
- load(File.expand_path(File.join(File.dirname(__FILE__), '../versionizer/tasks.rb')))
@@ -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
@@ -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