fontana_client_support 0.0.2 → 0.3.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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MWRmZjcxNmE3MjFmNWNmYzdiNzMzNDdlYmJmNzk3MWU1OGJmNTU1YQ==
5
+ data.tar.gz: !binary |-
6
+ MDQzMDc2ZjE3N2ZiN2QwYTFiNTIxZTA1ODZjOTEyYjkxMGFkMGFmYg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ OGZlMGY1Y2RjYWVhN2QxOWZiYTAwNGUzMDAwMWRlMzFjNjgwZTM0Mjg1NTMz
10
+ OTVlMDRjYmI1YTEzNThiYjY1NDk5M2UzYmNkNzkwMDkyODBjODljMjkyYTQx
11
+ NjdjOGMyMjIzMWY0OTQ0NTZlZTdkMWIyZjAwNTY2M2UwYTkyNTE=
12
+ data.tar.gz: !binary |-
13
+ MGI3OTUwZTM1ZDdjZmY1MTQ0ZGI1MDc3ODRmMTQ3ZWMwMjAzNWQ5ZmM3YzM5
14
+ OGFhYTZhODJlNjVkZTEzNDI4OTk3OTMyNGFiYWQwMmQ1NzA5OTMwMzNlNTRj
15
+ MWI2MGMzNjk5N2FlMGFjMzY1NWU4NGM4MDNmNzJlZDMzN2EwZDE=
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # FontanaClientSupport
2
2
 
3
- TODO: Write a gem description
3
+ FontanaのAppSeedファイルやストアドスクリプトを開発するためのgemです。
4
+ サーバの起動、テストの実行をサポートする機能を提供します。
5
+
6
+ 具体的な使い方は
7
+ https://github.com/groovenauts/fontana_sample/tree/develop
8
+ を参照してください
4
9
 
5
10
  ## Installation
6
11
 
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'fontana_client_support'
3
+ include Fontana::ServerRake
4
+
5
+ namespace :deploy do
6
+
7
+ # このタスク群は sync:* と対になっています。
8
+ namespace_with_fontana :scm, :"app:scm" do
9
+
10
+ set_url_and_branch = ->{
11
+ ENV['URL'] ||= FontanaClientSupport.repo_url
12
+ ENV['BRANCH'] ||= FontanaClientSupport.current_branch_name
13
+ }
14
+
15
+ desc "deploy:scm:setup + clone (+ checkout branch) + deploy:scm:update."
16
+ fontana_task :reset, before: set_url_and_branch
17
+
18
+ desc "drop DB, initialize, clear runtime workspace."
19
+ fontana_task :setup
20
+
21
+ desc "fetch, checkout, build app_seed and migrate."
22
+ fontana_task :update
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'fontana_client_support'
3
+ include Fontana::ServerRake
4
+
5
+ namespace :deploy do
6
+
7
+ # このタスク群は scm:* と対になっています。
8
+ namespace_with_fontana :sync, :"app:sync" do
9
+
10
+ runtime_source = ->{
11
+ ENV["RUNTIME_SOURCE"] = File.expand_path(".", FontanaClientSupport.root_dir)
12
+ }
13
+
14
+
15
+ desc "deploy:sync:setup + deploy:sync:update"
16
+ fontana_task :reset, before: runtime_source
17
+
18
+ desc "drop DB + initialize DB + clear runtime workspace. same as app:sync:setup"
19
+ fontana_task :setup
20
+
21
+ desc "update runtime + app_seed:build_from_runtime + migrate."
22
+ fontana_task :update, before: runtime_source
23
+ end
24
+
25
+ end
@@ -2,27 +2,24 @@ require 'fontana_client_support'
2
2
  include Fontana::ServerRake
3
3
 
4
4
  namespace_with_fontana :server, :libgss_test do
5
- desc "luanch HTTP server"
6
- fontana_task :launch_http_server
7
5
 
8
- desc "luanch HTTP server daemon"
6
+ fontana_task :launch_http_server
9
7
  fontana_task :launch_http_server_daemon
10
-
11
- desc "luanch HTTPS server"
12
8
  fontana_task :launch_https_server
13
-
14
- desc "luanch HTTPS server daemon"
15
9
  fontana_task :launch_https_server_daemon
10
+ fontana_task :launch_server_daemons
11
+ fontana_task :shutdown_server_daemons
12
+ fontana_task :check_daemon_alive
13
+ end
16
14
 
17
- desc "luanch server"
18
- fontana_task :launch_server
19
15
 
20
- desc "luanch server daemons"
21
- fontana_task :launch_server_daemons
16
+ namespace :servers do
17
+ desc "start HTTP+HTTPS server daemons"
18
+ task :start => :"server:launch_server_daemons"
22
19
 
23
- desc "shutdown server daemons"
24
- fontana_task :shutdown_server_daemons
20
+ desc "stop HTTP+HTTPS server daemons"
21
+ task :stop => :"server:shutdown_server_daemons"
25
22
 
26
- desc "check daemon alive"
27
- fontana_task :check_daemon_alive
23
+ desc "restart HTTP+HTTPS server daemons"
24
+ task :restart => [:"servers:stop", :"servers:start"]
28
25
  end
@@ -2,7 +2,7 @@
2
2
  require 'fontana_client_support'
3
3
  include Fontana::ServerRake
4
4
 
5
- desc "run spec with server_daemons"
5
+ desc "Run RSpec with server_daemons"
6
6
  task :spec_with_server_daemons => [:"vendor:fontana:prepare"] do
7
7
  Rake::Task["server:launch_server_daemons"].execute
8
8
  begin
@@ -4,12 +4,10 @@ include Fontana::ServerRake
4
4
  namespace :vendor do
5
5
  namespace :fontana do
6
6
 
7
- desc "clear"
8
7
  task :clear do
9
8
  FileUtils.rm_rf(FontanaClientSupport.vendor_fontana)
10
9
  end
11
10
 
12
- desc "clone"
13
11
  task :clone => :"vendor:fontana:clear" do
14
12
  raise "$FONTANA_REPO_URL is required" unless Fontana.repo_url
15
13
  FileUtils.mkdir_p(FontanaClientSupport.vendor_dir)
@@ -22,10 +20,9 @@ namespace :vendor do
22
20
  FileUtils.cp("config/project.yml.erb.example", "config/project.yml.erb")
23
21
  system!("BUNDLE_GEMFILE=#{Fontana.gemfile} bundle install")
24
22
  end
25
- Rake::Task["deploy:reset"].execute
23
+ Rake::Task["deploy:#{FontanaClientSupport.deploy_strategy}:reset"].execute
26
24
  end
27
25
 
28
- desc "update"
29
26
  task :update do
30
27
  Dir.chdir(FontanaClientSupport.vendor_fontana) do
31
28
  system!("git fetch origin")
@@ -33,10 +30,9 @@ namespace :vendor do
33
30
  system!("BUNDLE_GEMFILE=#{Fontana.gemfile} bundle install")
34
31
  system!("BUNDLE_GEMFILE=#{Fontana.gemfile} bundle exec rake db:drop")
35
32
  end
36
- Rake::Task["deploy:update"].execute
33
+ Rake::Task["deploy:#{FontanaClientSupport.deploy_strategy}:update"].execute
37
34
  end
38
35
 
39
- desc "prepare"
40
36
  task :prepare do
41
37
  if Dir.exist?(FontanaClientSupport.vendor_fontana)
42
38
  Rake::Task["vendor:fontana:update"].execute
@@ -44,8 +40,9 @@ namespace :vendor do
44
40
  Rake::Task["vendor:fontana:clone"].execute
45
41
  end
46
42
  end
43
+
44
+ desc "reset vendor/fontana"
45
+ task :reset => [:"vendor:fontana:clear", :"vendor:fontana:clone"]
47
46
  end
48
47
 
49
- desc "prepare vendor/fontana "
50
- task :fontana => :"vendor:fontana:prepare"
51
48
  end
@@ -1,3 +1,5 @@
1
1
  require 'fontana_client_support'
2
2
 
3
+ require "rspec/core/rake_task"
4
+
3
5
  Dir[File.expand_path("../tasks/**/*.rake", __FILE__)].each{|f| load(f)}
@@ -1,3 +1,3 @@
1
1
  module FontanaClientSupport
2
- VERSION = "0.0.2"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -14,14 +14,42 @@ module FontanaClientSupport
14
14
  end
15
15
 
16
16
  def current_branch_name
17
- @current_branch_name ||= `git log --decorate -1`.scan(/^commit\s[0-9a-f]+\s\((.+)\)/).
18
- flatten.first.split(/,/).map(&:strip).select{|s| s =~ /origin\//}.
19
- reject{|s| s == "origin/HEAD"}.first.sub(/\Aorigin\//, '')
17
+ unless @current_branch_name
18
+ work = `git log --decorate -1`.scan(/^commit\s[0-9a-f]+\s\((.+)\)/).
19
+ flatten.first.split(/,/).map(&:strip).reject{|s| s =~ /HEAD\Z/}
20
+ r = work.select{|s| s =~ /origin\//}.first
21
+ r ||= work.first
22
+ @current_branch_name = r.sub(/\Aorigin\//, '')
23
+ end
24
+ @current_branch_name
25
+ rescue => e
26
+ puts "[#{e.class}] #{e.message}"
27
+ puts "Dir.pwd: #{Dir.pwd}"
28
+ puts "git log --decorate -1\n" << `git log --decorate -1`
29
+ raise e
20
30
  end
21
31
 
22
32
  def repo_url
23
33
  @repo_url ||= `git remote -v`.scan(/origin\s+(.+?)\s/).flatten.uniq.first
24
34
  end
35
+
36
+ def deploy_strategy
37
+ @deploy_strategy ||= :deploy
38
+ end
39
+
40
+ DEPLOY_STRATEGY_NAMES = [:scm, :sync].freeze
41
+
42
+ def deploy_strategy=(v)
43
+ unless DEPLOY_STRATEGY_NAMES.include?(v)
44
+ raise ArgumentError, "invalid deploy_strategy: #{v.inspect} must be one of #{DEPLOY_STRATEGY_NAMES.inspect}"
45
+ end
46
+ @deploy_strategy = v
47
+ end
48
+
49
+ def configure
50
+ yield(self) if block_given?
51
+ self
52
+ end
25
53
  end
26
54
  end
27
55
 
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fontana_client_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - akima
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-07-02 00:00:00.000000000 Z
11
+ date: 2013-07-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -61,37 +56,36 @@ files:
61
56
  - lib/fontana/server_rake.rb
62
57
  - lib/fontana_client_support.rb
63
58
  - lib/fontana_client_support/tasks.rb
64
- - lib/fontana_client_support/tasks/deploy.rake
59
+ - lib/fontana_client_support/tasks/deploy/scm.rake
60
+ - lib/fontana_client_support/tasks/deploy/sync.rake
65
61
  - lib/fontana_client_support/tasks/fixtures.rake
66
62
  - lib/fontana_client_support/tasks/server.rake
67
63
  - lib/fontana_client_support/tasks/spec.rake
68
- - lib/fontana_client_support/tasks/sync.rake
69
64
  - lib/fontana_client_support/tasks/vendor_fontana.rake
70
65
  - lib/fontana_client_support/version.rb
71
66
  homepage: ''
72
67
  licenses:
73
68
  - MIT
69
+ metadata: {}
74
70
  post_install_message:
75
71
  rdoc_options: []
76
72
  require_paths:
77
73
  - lib
78
74
  required_ruby_version: !ruby/object:Gem::Requirement
79
- none: false
80
75
  requirements:
81
76
  - - ! '>='
82
77
  - !ruby/object:Gem::Version
83
78
  version: '0'
84
79
  required_rubygems_version: !ruby/object:Gem::Requirement
85
- none: false
86
80
  requirements:
87
81
  - - ! '>='
88
82
  - !ruby/object:Gem::Version
89
83
  version: '0'
90
84
  requirements: []
91
85
  rubyforge_project:
92
- rubygems_version: 1.8.25
86
+ rubygems_version: 2.0.3
93
87
  signing_key:
94
- specification_version: 3
88
+ specification_version: 4
95
89
  summary: gem to support development and testing with GSS/fontana
96
90
  test_files: []
97
91
  has_rdoc:
@@ -1,19 +0,0 @@
1
- require 'fontana_client_support'
2
- include Fontana::ServerRake
3
-
4
- namespace_with_fontana :deploy, :"app:deploy" do
5
-
6
- set_url_and_branch = ->{
7
- ENV['URL'] ||= FontanaClientSupport.repo_url
8
- ENV['BRANCH'] ||= FontanaClientSupport.current_branch_name
9
- }
10
-
11
- desc "deploy:setup deploy:update"
12
- fontana_task :reset, before: set_url_and_branch
13
-
14
- desc "drop DB, initialize, clear workspaces, clone, checkout branch. $URL required."
15
- fontana_task :setup, before: set_url_and_branch
16
-
17
- desc "fetch, checkout, build app_seed and migrate."
18
- fontana_task :update, before: set_url_and_branch
19
- end
@@ -1,16 +0,0 @@
1
- require 'fontana_client_support'
2
- include Fontana::ServerRake
3
-
4
- namespace_with_fontana :sync, :"runtime:update" do
5
- desc "sync app/scripts directly"
6
- fontana_task :app_scripts, before: ->{ ENV["APP_SCRIPTS_PATH"] = File.expand_path("../app/scripts", __FILE__) }
7
-
8
- desc "sync spec/fixtures directly"
9
- fontana_task :spec_fixtures, before: ->{ ENV["SPEC_FIXTURES_PATH"] = File.expand_path("../spec/fixtures", __FILE__) }
10
-
11
- desc "sync app/scripts and spec/fixtures directly"
12
- fontana_task :client, before: ->{
13
- ENV["APP_SCRIPTS_PATH"] = File.expand_path("../app/scripts", __FILE__)
14
- ENV["SPEC_FIXTURES_PATH"] = File.expand_path("../spec/fixtures", __FILE__)
15
- }
16
- end