restore_bundled_with 0.3.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 68935973b538af474edcaa7251e8d882670f73a0
4
- data.tar.gz: ac28ee848557aa9c6125cb02372aef03a892eede
3
+ metadata.gz: 3d0052ed0f13a64e5e516d928ec22e9ba71834a7
4
+ data.tar.gz: 61275fbe18e0baaaccfc68b4dcf79a2451ffa8c4
5
5
  SHA512:
6
- metadata.gz: 2c70cb23dae2932b7ab2f74f7e6fee15ddf6bf428cb2d14489fa25191146c574387faa5ded32f78c2e8c43cea9bc47fda818b4468bcc935c175997ff2804ac1b
7
- data.tar.gz: 077639234e72ab043a4014f09fc1387f630dbac1ec97e13cbb143d861a209150ee2812ec8b8143e389d42dffb306075fa2252822881e93f64763bdb850d6e0cd
6
+ metadata.gz: f2d1f3c68463e8a691e0b127e9deb43eff6b6e4619c723b96e52236a8aad15ebb7b4d88982e73b02592cbc436e9f072ddb21bc28f2a131e35f9b9facddb79d96
7
+ data.tar.gz: af240ad0fb74bfd9caa5e926ff9a843dfe05ce06f1728afb2404f6f5c264f08cfeb4058f3035b9e5b8998d0aeb7e7add694d6c40e508e5aa1fa782a52106b9f9
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+ var execSync = require('child_process').execSync;
3
+ var URI = require('urijs');
4
+
5
+ var gemspec = JSON.parse(execSync('bundle exec parse-gemspec-cli restore_bundled_with.gemspec'));
6
+ var homepageUrl = gemspec.homepage;
7
+ var url = new URI(homepageUrl);
8
+ var host = url.protocol() + '://' + url.authority();
9
+ var owner = url.pathname().split('/')[1];
10
+ var repository = url.pathname().split('/')[2];
11
+
12
+ module.exports = {
13
+ version: gemspec.version,
14
+ host: host,
15
+ owner: owner,
16
+ repository: repository
17
+ };
data/.gitignore CHANGED
File without changes
@@ -1,3 +1,9 @@
1
+ <a name="1.0.0"></a>
2
+ # [1.0.0](https://github.com/packsaddle/ruby-restore_bundled_with/compare/v0.3.0...v1.0.0) (2016-07-23)
3
+
4
+ * Ship v1.0.0!
5
+
6
+
1
7
  <a name"0.3.0"></a>
2
8
  ## 0.3.0 (2015-06-22)
3
9
 
File without changes
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in restore_bundled_with.gemspec
4
4
  gemspec
5
+
6
+ gem 'rubocop'
7
+ gem 'byebug' if RUBY_VERSION >= '2.0.0'
8
+ gem 'parse_gemspec-cli'
9
+ gem 'yard'
File without changes
data/README.md CHANGED
@@ -1,9 +1,8 @@
1
1
  # RestoreBundledWith
2
2
 
3
- [![Gem Version](http://img.shields.io/gem/v/restore_bundled_with.svg?style=flat)](http://badge.fury.io/rb/restore_bundled_with)
4
- [![Build Status](http://img.shields.io/travis/packsaddle/ruby-restore_bundled_with/master.svg?style=flat)](https://travis-ci.org/packsaddle/ruby-restore_bundled_with)
3
+ [![Gem version][gem-image]][gem-url] [![Travis-CI Status][travis-image]][travis-url] [![yard docs][docs-image]][docs-url]
5
4
 
6
- Restore `BUNDLED WITH` section in `Gemfile.lock` from git repository.
5
+ > Restore `BUNDLED WITH` section in `Gemfile.lock` from git repository.
7
6
 
8
7
  ```text
9
8
  # Gemfile.lock
@@ -111,6 +110,19 @@ $ git diff
111
110
 
112
111
  There is no diff, because this restores `BUNDLED WITH` from git repository.
113
112
 
113
+ ### Call from Ruby script
114
+
115
+ ```ruby
116
+ system(*['bundle', 'update'])
117
+
118
+ # restore_bundled_with
119
+ lock_file_contents = File.read('Gemfile.lock')
120
+ lock = RestoreBundledWith::Lock.restore(lock_file_contents, 'Gemfile.lock')
121
+ File.write('Gemfile.lock', lock.body)
122
+ ```
123
+
124
+ There is no diff, because this restores `BUNDLED WITH` from git repository.
125
+
114
126
  ## Requirement
115
127
 
116
128
  * Git
@@ -162,6 +174,10 @@ Or install it yourself as:
162
174
 
163
175
  $ gem install restore_bundled_with
164
176
 
177
+ ## Changelog
178
+
179
+ [CHANGELOG.md](./CHANGELOG.md).
180
+
165
181
  ## Development
166
182
 
167
183
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -177,3 +193,9 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/packsa
177
193
 
178
194
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
179
195
 
196
+ [travis-url]: https://travis-ci.org/packsaddle/ruby-restore_bundled_with
197
+ [travis-image]: https://img.shields.io/travis/packsaddle/ruby-restore_bundled_with/master.svg?style=flat-square&label=build%20%28linux%29
198
+ [gem-url]: https://rubygems.org/gems/restore_bundled_with
199
+ [gem-image]: http://img.shields.io/gem/v/restore_bundled_with.svg?style=flat-square
200
+ [docs-url]: http://www.rubydoc.info/gems/restore_bundled_with
201
+ [docs-image]: https://img.shields.io/badge/yard-docs-blue.svg?style=flat-square
data/RELEASE.md CHANGED
File without changes
data/Rakefile CHANGED
@@ -7,3 +7,12 @@ Rake::TestTask.new(:test) do |t|
7
7
  end
8
8
 
9
9
  task default: :test
10
+
11
+ require 'yard'
12
+ require 'yard/rake/yardoc_task'
13
+ DOC_FILES = ['lib/**/*.rb'].freeze
14
+ DOC_OPTIONS = ['--debug', '--verbose'].freeze
15
+ YARD::Rake::YardocTask.new(:doc) do |t|
16
+ t.files = DOC_FILES
17
+ t.options = DOC_OPTIONS if Rake.application.options.trace
18
+ end
@@ -6,8 +6,9 @@ require 'restore_bundled_with/lock'
6
6
  require 'restore_bundled_with/repository'
7
7
  require 'restore_bundled_with/version'
8
8
 
9
+ # Restore BUNDLED WITH section in Gemfile.lock from git repository.
9
10
  module RestoreBundledWith
10
- ISSUE_URL = 'https://github.com/packsaddle/ruby-restore_bundled_with/issues/new'
11
+ ISSUE_URL = 'https://github.com/packsaddle/ruby-restore_bundled_with/issues/new'.freeze
11
12
  def self.default_logger
12
13
  logger = Logger.new(STDERR)
13
14
  logger.progname = "RestoreBundledWith #{VERSION}"
@@ -78,7 +78,8 @@ module RestoreBundledWith
78
78
  .fetch_file(
79
79
  options[:lockfile],
80
80
  options[:ref],
81
- options[:new_line])
81
+ options[:new_line]
82
+ )
82
83
  puts Lock
83
84
  .new(lock_file)
84
85
  .pick
@@ -101,7 +102,7 @@ module RestoreBundledWith
101
102
 
102
103
  logger.info('input data')
103
104
  logger.info(data)
104
- fail NoInputError if !data || data.empty?
105
+ raise NoInputError if !data || data.empty?
105
106
 
106
107
  data
107
108
  end
File without changes
@@ -1,9 +1,16 @@
1
1
  module RestoreBundledWith
2
+ # The lock file
2
3
  class Lock
3
4
  attr_reader :body
5
+ # @!attribute [r] body
6
+ # @return [String] file body
4
7
 
5
8
  REGEX_BUNDLED_WITH = /^(?<pick>(?:\r\n|\r|\n)^BUNDLED WITH.*(?:\r\n|\r|\n).+(?:\r\n|\r|\n))/
6
9
 
10
+ # @param text [String] base lock file
11
+ # @param section [String] appending section
12
+ #
13
+ # @return [Lock] the lock file instance
7
14
  def self.insert(text, section)
8
15
  if section && !section.empty?
9
16
  new(text + section)
@@ -12,6 +19,14 @@ module RestoreBundledWith
12
19
  end
13
20
  end
14
21
 
22
+ # @param data [String] before restore
23
+ # @param lockfile [String] file name
24
+ # @param ref [String] git ref
25
+ # @param git_path [String] git repository path
26
+ # @param git_options [Hash] ruby-git options
27
+ # @param new_line [String] new line
28
+ #
29
+ # @return [Lock] the lock file instance
15
30
  def self.restore(
16
31
  data,
17
32
  lockfile = Repository::LOCK_FILE,
@@ -29,15 +44,22 @@ module RestoreBundledWith
29
44
  insert(trimmed.body, section)
30
45
  end
31
46
 
47
+ # @param text [String] the lock file contents
48
+ #
49
+ # @return [Lock] the lock file instance
32
50
  def initialize(text)
33
51
  @body = text
34
52
  end
35
53
 
36
- # "\n\nBUNDLED WITH\n 1.10.4\n" => "\n"
54
+ # @example delete bundled with
55
+ # "\n\nBUNDLED WITH\n 1.10.4\n" => "\n"
56
+ #
57
+ # @return [Lock] new lock file instance which is deleted bundled with
37
58
  def delete_bundled_with
38
59
  self.class.new(body.sub(REGEX_BUNDLED_WITH) { '' })
39
60
  end
40
61
 
62
+ # @return [String] pick target section
41
63
  def pick
42
64
  match = REGEX_BUNDLED_WITH.match(body)
43
65
  if match
@@ -47,10 +69,14 @@ module RestoreBundledWith
47
69
  end
48
70
  end
49
71
 
72
+ # @return [String] the lock file contents
50
73
  def to_s
51
74
  body
52
75
  end
53
76
 
77
+ # @param [#body] other compare body
78
+ #
79
+ # @return [Boolean] true if file body is same
54
80
  def ==(other)
55
81
  body == other.body
56
82
  end
@@ -1,20 +1,31 @@
1
1
  module RestoreBundledWith
2
+ # The git repository
2
3
  class Repository
3
- LOCK_FILE = 'Gemfile.lock'
4
- REF = 'HEAD'
5
- GIT_PATH = '.'
6
- GIT_OPTIONS = {}
7
- NEW_LINE = "\n"
4
+ LOCK_FILE = 'Gemfile.lock'.freeze
5
+ REF = 'HEAD'.freeze
6
+ GIT_PATH = '.'.freeze
7
+ GIT_OPTIONS = {}.freeze
8
+ NEW_LINE = "\n".freeze
8
9
 
10
+ # @param git_path [String] git repository path
11
+ # @param git_options [Hash] ruby-git options
12
+ #
13
+ # @return [Repository] Repository instance
9
14
  def initialize(git_path = GIT_PATH, git_options = GIT_OPTIONS)
10
15
  @git_path = git_path
11
16
  @git_options = git_options
12
17
  end
13
18
 
19
+ # @return [Git::Base] ruby-git object
14
20
  def git
15
21
  @git ||= Git.open(@git_path, @git_options)
16
22
  end
17
23
 
24
+ # @param file [String] target file
25
+ # @param ref [String] git ref
26
+ # @param new_line [String] file's ending new line
27
+ #
28
+ # @return [String] target file contents
18
29
  def fetch_file(file = LOCK_FILE, ref = REF, new_line = NEW_LINE)
19
30
  # NOTE: git.cat_file trims last \n?
20
31
  text = git.cat_file("#{ref}:#{file}")
@@ -1,3 +1,3 @@
1
1
  module RestoreBundledWith
2
- VERSION = '0.3.0'
2
+ VERSION = '1.0.0'.freeze
3
3
  end
@@ -21,9 +21,9 @@ RestoreBundledWith solves these conflicts.
21
21
 
22
22
  spec.files = \
23
23
  `git ls-files -z`
24
- .split("\x0")
25
- .reject { |f| f.match(%r{^(test|spec|features)/}) }
26
- .reject do |f|
24
+ .split("\x0")
25
+ .reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ .reject do |f|
27
27
  [
28
28
  '.rubocop.yml',
29
29
  '.rubocop_todo.yml',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restore_bundled_with
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sanemat
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-22 00:00:00.000000000 Z
11
+ date: 2016-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -109,6 +109,7 @@ executables:
109
109
  extensions: []
110
110
  extra_rdoc_files: []
111
111
  files:
112
+ - ".conventional-changelog.context.js"
112
113
  - ".gitignore"
113
114
  - CHANGELOG.md
114
115
  - CODE_OF_CONDUCT.md
@@ -118,7 +119,6 @@ files:
118
119
  - RELEASE.md
119
120
  - Rakefile
120
121
  - bin/console
121
- - bin/conventional-changelog.js
122
122
  - bin/run-rubocop.sh
123
123
  - bin/setup
124
124
  - exe/restore-bundled-with
@@ -149,8 +149,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  version: '0'
150
150
  requirements: []
151
151
  rubyforge_project:
152
- rubygems_version: 2.4.5
152
+ rubygems_version: 2.5.1
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Restore BUNDLED WITH section in Gemfile.lock from git repository.
156
156
  test_files: []
157
+ has_rdoc:
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- var fs = require('fs');
4
- var execSync = require('child_process').execSync;
5
- var conventionalChangelog = require('conventional-changelog');
6
-
7
- var repo = 'https://github.com/packsaddle/ruby-restore_bundled_with'
8
- var version = "" + execSync('bundle exec exe/restore-bundled-with version --digit');
9
-
10
- conventionalChangelog({
11
- repository: repo,
12
- version: version,
13
- file: 'CHANGELOG.md'
14
- }, function(err, log) {
15
- fs.writeFile('CHANGELOG.md', log, function(err){
16
- console.log(err);
17
- });
18
- console.log('Here is your changelog!', log);
19
- });