doc_repo 0.0.1 → 0.0.2

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: 30dd0cd755d3202ed2e493d13e43283ad50be7ae
4
- data.tar.gz: d87c1f901a3e3a63f165b8211b0e7049a48ea9be
3
+ metadata.gz: fc7d8c08c2b6224d86b67f6d1a3fbaa7eeba0c9d
4
+ data.tar.gz: b6d49db3309f95fe6dc30d97b2ae45dc02522242
5
5
  SHA512:
6
- metadata.gz: 18271a91e38f64eedfe8823d23fc0106953dc7e7c8f2ecb48c8f41dd54161fe46aaf164e09101c5486ad9fb8ae2a8f5a7bb2fa4ff85127d562a15eb8e0d46c97
7
- data.tar.gz: 9e34106363f55e04f7a8e9371b08bc2b18f7862a07b77db118986707592eacd9f0dbf5b8e4328ba11ab06cdcd5af4415c165f4e008ed2a23ed6860fbafb8a25d
6
+ metadata.gz: 19488fa0c31b900f1f679c309c9921627fa0a9963a312c2657323c5938ae425328701ebcdda02382c234f69c859a88c44c1c4bf852617247bf4d07141739a35f
7
+ data.tar.gz: aec5d27ab0a945616e4d08fd02ffcaca3c75e94da608dd20b0710d6589166125a769208e68301c9672eb39044744a3be27b62df055162371b4dd441e667c6484
data/.gitignore CHANGED
@@ -7,8 +7,14 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
- *.bundle
11
10
  *.so
12
11
  *.o
13
12
  *.a
14
13
  mkmf.log
14
+
15
+ # Ignore development related binstubs
16
+ /bin/
17
+
18
+ # Ignore bundler related files
19
+ /bundle/
20
+ *.bundle
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ sudo: false
3
+ bundler_args: --binstubs --standalone --without documentation debug
4
+ script: bin/rspec
5
+ rvm:
6
+ - 2.0
7
+ - 2.1
8
+ - ruby-head
9
+ - rbx-2
10
+ matrix:
11
+ allow_failures:
12
+ - rvm: ruby-head
13
+ - rvm: rbx-2
14
+ fast_finish: true
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in doc_repo.gemspec
4
4
  gemspec
5
+
6
+ group :debug do
7
+ gem "pry-nav"
8
+ gem "travis-lint", require: false
9
+ end
data/README.md CHANGED
@@ -43,7 +43,8 @@ Create a controller to render the documentation pages. In Rails you might use so
43
43
  ```ruby
44
44
  class DocsController < ApplicationController
45
45
  def index
46
- # If you don't want to store the index view in the app, just redirect to one of the documentation pages:
46
+ # If you don't want to store the index view in the app, just redirect to
47
+ # one of the documentation pages:
47
48
  redirect_to doc_path('index')
48
49
  end
49
50
 
@@ -9,21 +9,22 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Christopher Sexton"]
10
10
  spec.email = ["github@codeography.com"]
11
11
  spec.summary = "Doc Repo: Load in app documentation via an external Github repo"
12
- spec.description = ""
13
- spec.homepage = ""
12
+ spec.description = "Doc Repo: Load in app documentation via an external Github repo"
13
+ spec.homepage = "https://github.com/RadiusNetworks/doc_repo"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.executables = %w[ ]
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "rouge", "~> 1.6"
22
- spec.add_dependency "redcarpet", "~> 3.1"
21
+ spec.required_ruby_version = '~> 2.0'
22
+
23
+ spec.add_dependency "rouge", "~> 1.8"
24
+ spec.add_dependency "redcarpet", "~> 3.2"
23
25
 
24
26
  spec.add_development_dependency "bundler", "~> 1.6"
25
27
  spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "webmock", "~> 1.0"
27
28
  spec.add_development_dependency "rspec", "~> 3.0"
28
- spec.add_development_dependency "pry"
29
+ spec.add_development_dependency "webmock", "~> 1.0"
29
30
  end
@@ -1,13 +1,12 @@
1
1
  require "doc_repo/version"
2
2
 
3
- require "doc_repo/configuration"
4
- require "doc_repo/github_file"
5
- require "doc_repo/page"
6
- require "doc_repo/repository"
7
- require "doc_repo/response"
8
- require "doc_repo/converters/markdown_parser"
9
-
10
3
  module DocRepo
4
+ autoload :Configuration, "doc_repo/configuration"
5
+ autoload :GithubFile, "doc_repo/github_file"
6
+ autoload :Page, "doc_repo/page"
7
+ autoload :Repository, "doc_repo/repository"
8
+ autoload :Response, "doc_repo/response"
9
+
11
10
  BadPageFormat = Class.new(StandardError)
12
11
  NotFound = Class.new(StandardError)
13
12
 
@@ -3,8 +3,9 @@ module DocRepo
3
3
  attr_accessor :org, :repo, :branch
4
4
 
5
5
  def initialize
6
- @org = "RadiusNetworks"
7
- @branch = "master"
6
+ @org = ENV['DOC_REPO_ORG']
7
+ @repo = ENV['DOC_REPO_REPONAME']
8
+ @branch = ENV['DOC_REPO_BRANCH'] || "master"
8
9
  end
9
10
  end
10
11
  end
@@ -25,11 +25,12 @@ module DocRepo
25
25
  "<div class=\"highlight\">#{add_code_tags(code, lang)}</div>"
26
26
  end
27
27
 
28
- protected
28
+ protected
29
29
 
30
- def rouge_formatter(opts = {})
31
- Rouge::Formatters::HTML.new(opts.merge(wrap: false))
30
+ def rouge_formatter(lexer)
31
+ Rouge::Formatters::HTML.new(wrap: false)
32
32
  end
33
+
33
34
  end
34
35
 
35
36
  def initialize(config)
@@ -51,8 +52,8 @@ module DocRepo
51
52
  markdown.render(content)
52
53
  end
53
54
 
54
- private
55
55
  attr_reader :config, :extensions, :renderer
56
+ private :config, :extensions, :renderer
56
57
  end
57
58
  end
58
59
  end
@@ -20,7 +20,7 @@ module DocRepo
20
20
 
21
21
  def read_remote_file
22
22
  open(url(file), headers).read
23
- rescue OpenURI::HTTPError => e
23
+ rescue OpenURI::HTTPError => _ignore
24
24
  raise DocRepo::NotFound
25
25
  end
26
26
 
@@ -1,3 +1,5 @@
1
+ require "doc_repo/converters/markdown_parser"
2
+
1
3
  module DocRepo
2
4
  class Page
3
5
  attr_accessor :body
@@ -14,11 +14,11 @@ module DocRepo
14
14
  end
15
15
 
16
16
  def html
17
- yield *params if type == :html
17
+ yield(*params) if type == :html
18
18
  end
19
19
 
20
20
  def redirect
21
- yield *params if type == :redirect
21
+ yield(*params) if type == :redirect
22
22
  end
23
23
  end
24
24
  end
@@ -1,3 +1,3 @@
1
1
  module DocRepo
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,55 @@
1
+ require 'support/using_env'
2
+
3
+ RSpec.describe DocRepo::Configuration do
4
+
5
+ context "without environment variables configured" do
6
+ subject(:default_config) { DocRepo::Configuration.new }
7
+
8
+ around do |example|
9
+ env = {
10
+ 'DOC_REPO_ORG' => nil,
11
+ 'DOC_REPO_REPONAME' => nil,
12
+ 'DOC_REPO_BRANCH' => nil,
13
+ }
14
+ using_env(env, &example)
15
+ end
16
+
17
+ it "has no org" do
18
+ expect(default_config.org).to be nil
19
+ end
20
+
21
+ it "has no repo" do
22
+ expect(default_config.repo).to be nil
23
+ end
24
+
25
+ it "use the 'master' branch" do
26
+ expect(default_config.branch).to eq 'master'
27
+ end
28
+ end
29
+
30
+ context "with environment variables configured" do
31
+ subject(:default_env_config) { DocRepo::Configuration.new }
32
+
33
+ around do |example|
34
+ env = {
35
+ 'DOC_REPO_ORG' => 'the-silence',
36
+ 'DOC_REPO_REPONAME' => 'falls',
37
+ 'DOC_REPO_BRANCH' => 'ask_the_question',
38
+ }
39
+ using_env(env, &example)
40
+ end
41
+
42
+ it "uses DOC_REPO_ORG for the default org" do
43
+ expect(default_env_config.org).to eq 'the-silence'
44
+ end
45
+
46
+ it "uses DOC_REPO_REPONAME for the default repo" do
47
+ expect(default_env_config.repo).to eq 'falls'
48
+ end
49
+
50
+ it "uses DOC_REPO_BRANCH for the default branch" do
51
+ expect(default_env_config.branch).to eq 'ask_the_question'
52
+ end
53
+ end
54
+
55
+ end
@@ -1,11 +1,12 @@
1
- require 'spec_helper'
1
+ require 'support/string'
2
+ require 'webmock/rspec'
2
3
 
3
4
  RSpec.describe DocRepo::Page do
4
- def tempfile(body)
5
- Tempfile.open("spec") do |f|
6
- f.puts body
7
- f.rewind
8
- yield f
5
+ before do
6
+ DocRepo.configure do |c|
7
+ c.org = 'RadiusNetworks'
8
+ c.repo = 'doc_spec'
9
+ c.branch = 'master'
9
10
  end
10
11
  end
11
12
 
@@ -19,7 +20,6 @@ RSpec.describe DocRepo::Page do
19
20
  stub_request(:get, "https://api.github.com/repos/RadiusNetworks/doc_spec/contents/docs/page.md?ref=master")
20
21
  .to_return(body: body)
21
22
 
22
-
23
23
  page = DocRepo::Page.new("page")
24
24
  expect(page.to_html).to eq <<-END.strip_heredoc
25
25
  <h1 id=\"a-heading\">A heading</h1>
@@ -3,17 +3,17 @@ require 'spec_helper'
3
3
  RSpec.describe DocRepo::Page do
4
4
  it "calls html block with 1 param" do
5
5
  resp = DocRepo::Response.html 1
6
- expect { |b| resp.html &b }.to yield_with_args(1)
6
+ expect { |b| resp.html(&b) }.to yield_with_args(1)
7
7
  end
8
8
 
9
9
  it "calls html block with 2 params" do
10
10
  resp = DocRepo::Response.html 1, 2
11
- expect { |b| resp.html &b }.to yield_with_args(1, 2)
11
+ expect { |b| resp.html(&b) }.to yield_with_args(1, 2)
12
12
  end
13
13
 
14
14
  it "calls file block with 1 param" do
15
15
  resp = DocRepo::Response.html "/path/to/file"
16
- expect { |b| resp.html &b }.to yield_with_args("/path/to/file")
16
+ expect { |b| resp.html(&b) }.to yield_with_args("/path/to/file")
17
17
  end
18
18
  end
19
19
 
@@ -1,17 +1,7 @@
1
- require 'webmock/rspec'
2
- require 'pry'
3
- require 'doc_repo'
4
-
5
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
1
+ # This is a very warning riddled gem, load it before we enable warnings
2
+ require 'rouge'
6
3
 
7
4
  RSpec.configure do |config|
8
-
9
- config.before do
10
- DocRepo.configure do |c|
11
- c.org = 'RadiusNetworks'
12
- c.repo = 'doc_spec'
13
- end
14
- end
15
5
  config.expect_with :rspec do |expectations|
16
6
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
17
7
  end
@@ -27,3 +17,6 @@ RSpec.configure do |config|
27
17
  end
28
18
  Kernel.srand config.seed
29
19
  end
20
+
21
+ # Load our lib after warnings are enabled so we can fix them
22
+ require 'doc_repo'
@@ -0,0 +1,26 @@
1
+ module DocRepo
2
+ module RSpec
3
+ module Helpers
4
+
5
+ # By forcing the use of a block, this makes working within the context of
6
+ # a single spec much easier. If this needs to be wrapped around multiple
7
+ # specs, then an appropriate #around(:example) hook may be used.
8
+ def using_env(env_stubs, &lifetime)
9
+ keys_to_delete = env_stubs.keys - ENV.keys
10
+ original_values = env_stubs.each_with_object({}) { |(k, v), env|
11
+ env[k] = ENV[k] if ENV.has_key?(k)
12
+ ENV[k] = v
13
+ }
14
+ lifetime.call
15
+ ensure
16
+ keys_to_delete.each{ |k| ENV.delete(k) }
17
+ original_values.each{ |k, v| ENV[k] = v }
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+
24
+ RSpec.configure do |config|
25
+ config.include DocRepo::RSpec::Helpers
26
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doc_repo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Sexton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-06 00:00:00.000000000 Z
11
+ date: 2015-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rouge
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '1.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.6'
26
+ version: '1.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: redcarpet
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.1'
33
+ version: '3.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.1'
40
+ version: '3.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
- - !ruby/object:Gem::Dependency
70
- name: webmock
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rspec
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,20 +81,20 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '3.0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: pry
84
+ name: webmock
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - ">="
87
+ - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '0'
89
+ version: '1.0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - ">="
94
+ - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '0'
111
- description: ''
96
+ version: '1.0'
97
+ description: 'Doc Repo: Load in app documentation via an external Github repo'
112
98
  email:
113
99
  - github@codeography.com
114
100
  executables: []
@@ -117,6 +103,7 @@ extra_rdoc_files: []
117
103
  files:
118
104
  - ".gitignore"
119
105
  - ".rspec"
106
+ - ".travis.yml"
120
107
  - Gemfile
121
108
  - LICENSE.txt
122
109
  - README.md
@@ -130,13 +117,15 @@ files:
130
117
  - lib/doc_repo/repository.rb
131
118
  - lib/doc_repo/response.rb
132
119
  - lib/doc_repo/version.rb
120
+ - spec/doc_repo/configuration_spec.rb
133
121
  - spec/doc_repo/page_spec.rb
134
122
  - spec/doc_repo/repository_spec.rb
135
123
  - spec/doc_repo/response_spec.rb
136
124
  - spec/doc_repo_spec.rb
137
125
  - spec/spec_helper.rb
138
126
  - spec/support/string.rb
139
- homepage: ''
127
+ - spec/support/using_env.rb
128
+ homepage: https://github.com/RadiusNetworks/doc_repo
140
129
  licenses:
141
130
  - MIT
142
131
  metadata: {}
@@ -146,9 +135,9 @@ require_paths:
146
135
  - lib
147
136
  required_ruby_version: !ruby/object:Gem::Requirement
148
137
  requirements:
149
- - - ">="
138
+ - - "~>"
150
139
  - !ruby/object:Gem::Version
151
- version: '0'
140
+ version: '2.0'
152
141
  required_rubygems_version: !ruby/object:Gem::Requirement
153
142
  requirements:
154
143
  - - ">="
@@ -156,14 +145,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
145
  version: '0'
157
146
  requirements: []
158
147
  rubyforge_project:
159
- rubygems_version: 2.2.2
148
+ rubygems_version: 2.4.5
160
149
  signing_key:
161
150
  specification_version: 4
162
151
  summary: 'Doc Repo: Load in app documentation via an external Github repo'
163
152
  test_files:
153
+ - spec/doc_repo/configuration_spec.rb
164
154
  - spec/doc_repo/page_spec.rb
165
155
  - spec/doc_repo/repository_spec.rb
166
156
  - spec/doc_repo/response_spec.rb
167
157
  - spec/doc_repo_spec.rb
168
158
  - spec/spec_helper.rb
169
159
  - spec/support/string.rb
160
+ - spec/support/using_env.rb