mrhyde-tools 0.1.0 → 0.1.1

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: aae57c42c231ddd4cbf85848a18d5f43c98ece4f
4
- data.tar.gz: b90daa336b9b14f682fbbaed03b5199d14ac8ade
3
+ metadata.gz: 2f12cb63c722e3cff55bf0744d02bd0eb071cb53
4
+ data.tar.gz: 7261bfea0eb19519ffb257a1497b4de74103cb0b
5
5
  SHA512:
6
- metadata.gz: 80d28406f03ea41d492fb025a98eb1490a8fe665f4d0c3e88f2adbf99880b55074f1e2eb6770b308b798153d9d89cdf260594eb1424440581944963de05363b6
7
- data.tar.gz: b170832289088da0ad4af8176ce6c589a645fbefc27e40e536536b7c2cb09ea245e40c73039f1d9d62b03d9b6dfd02cdcd610215df373f09b9a7e2f502d5b130
6
+ metadata.gz: a4294554f67b38375e1b18b9d52df49a4da0834e73596997de1a3dfa0d2eabb56b6a96cccb4f1a0aecd169c6a8e39dd92249c8af9463f9da4699f3e6317c9d7e
7
+ data.tar.gz: 72ebbcb37e690c72e34bc7419cad942db7ee46547d1e38078cd1588b602d55aeb5d57fdc189aec0de679d777b8ad0280a361fa9d6482c7a57f4da5f0c11477c9
@@ -8,15 +8,11 @@ lib/mrhyde.rb
8
8
  lib/mrhyde/builder.rb
9
9
  lib/mrhyde/cli/main.rb
10
10
  lib/mrhyde/cli/opts.rb
11
- lib/mrhyde/config.rb
12
11
  lib/mrhyde/tools.rb
13
12
  lib/mrhyde/version.rb
14
- lib/mrhyde/wizard.rb
15
13
  test/helper.rb
16
14
  test/scripts/starter.rb
17
15
  test/scripts/starterii.rb
18
16
  test/test_builder.rb
19
- test/test_config.rb
20
17
  test/test_install_theme.rb
21
18
  test/test_url.rb
22
- test/test_wizard.rb
data/Rakefile CHANGED
@@ -20,7 +20,8 @@ Hoe.spec 'mrhyde-tools' do
20
20
  self.extra_deps = [
21
21
  ['logutils'],
22
22
  ['textutils'],
23
- ['drjekyll'],
23
+ ['drjekyll', '>= 0.1.1'],
24
+ ['quik', '>= 0.3'],
24
25
  ]
25
26
 
26
27
  self.licenses = ['Public Domain']
data/bin/mrh CHANGED
File without changes
data/bin/mrhyde CHANGED
File without changes
@@ -8,13 +8,12 @@ require 'uri'
8
8
 
9
9
  ## 3rd party libs
10
10
  require 'textutils' ## used for File.read_utf8
11
- require 'drjekyll'
11
+ require 'drjekyll'
12
+ require 'quik' ## used for wizards, (open)config etc.
12
13
 
13
14
  ## our own code
14
15
  require 'mrhyde/version' # note: let version always go first
15
- require 'mrhyde/wizard'
16
16
  require 'mrhyde/builder'
17
- require 'mrhyde/config'
18
17
 
19
18
  require 'mrhyde/cli/opts'
20
19
  require 'mrhyde/cli/main'
@@ -16,7 +16,7 @@ class Builder
16
16
  end
17
17
 
18
18
 
19
- include Wizard ## mixin helpers for say, ask, yes?, no?, select, etc.
19
+ include Quik::Wizard ## mixin helpers for say, ask, yes?, no?, select, etc.
20
20
 
21
21
  def initialize( opts={} )
22
22
  puts "starting new MrHyde script (sitefile) #{opts.inspect}; lets go"
@@ -39,7 +39,8 @@ class Builder
39
39
 
40
40
  ## themes_dir = "#{DrJekyll.root}/test/data"
41
41
  ## catalog = Catalog.new( "#{themes_dir}/themes.yml" )
42
- url = "https://github.com/drjekyllthemes/themes/raw/master/o/themes.yml"
42
+ url = "https://github.com/drjekyllthemes/themes/raw/master/themes.yml"
43
+ puts "GET #{url}" ## todo - add color e.g. .bold.green
43
44
 
44
45
  if test?
45
46
  # do nothing; dry run
@@ -48,6 +49,9 @@ class Builder
48
49
  theme = catalog.find( key )
49
50
  if theme
50
51
  pak = DrJekyll::Package.new( key, theme )
52
+
53
+ ## todo/fix:
54
+ ## add GET URL w/ color e.g. bright/bold green
51
55
  pak.download
52
56
  pak.unzip( "#{@output_dir}/#{key}" )
53
57
  else
@@ -60,7 +64,7 @@ class Builder
60
64
 
61
65
  def config( opts={} )
62
66
  puts " handle config block"
63
- c = OpenConfig.new
67
+ c = Quik::OpenConfig.new
64
68
  yield( c )
65
69
  ## pp c
66
70
  h = c.to_h
@@ -57,6 +57,9 @@ def self.fetch_script( name )
57
57
  text = File.read_utf8( local_script )
58
58
  else ## fetch remote script
59
59
  url = "https://github.com/mrhydescripts/scripts/raw/master/#{name}.rb"
60
+
61
+ puts "GET #{url}" ## todo - add color e.g. .bold.green
62
+
60
63
  ## assume utf8 text encoding for now
61
64
  worker = Fetcher::Worker.new
62
65
  text = worker.read_utf8!( url )
@@ -5,7 +5,7 @@ module MrHyde
5
5
 
6
6
  MAJOR = 0
7
7
  MINOR = 1
8
- PATCH = 0
8
+ PATCH = 1
9
9
  VERSION = [MAJOR,MINOR,PATCH].join('.')
10
10
 
11
11
  def self.version
@@ -12,7 +12,7 @@ class TestBuilder < MiniTest::Test
12
12
 
13
13
  def test_starter
14
14
 
15
- $MRHYDE_WIZARD_IN = EchoIO.new( <<EOS )
15
+ $QUIK_WIZARD_IN = EchoIO.new( <<EOS )
16
16
  Another Beautiful Static Site
17
17
  H. J.
18
18
  EOS
@@ -24,7 +24,7 @@ EOS
24
24
 
25
25
  def test_starterii
26
26
 
27
- $MRHYDE_WIZARD_IN = EchoIO.new( <<EOS )
27
+ $QUIK_WIZARD_IN = EchoIO.new( <<EOS )
28
28
  Another Beautiful Static Site
29
29
  http://example.github.io/repo
30
30
  H. J.
@@ -12,7 +12,7 @@ class TestInstallTheme < MiniTest::Test
12
12
 
13
13
  def test_starter
14
14
 
15
- $MRHYDE_WIZARD_IN = EchoIO.new( <<EOS )
15
+ $QUIK_WIZARD_IN = EchoIO.new( <<EOS )
16
16
  Another Beautiful Static Site
17
17
  H. J.
18
18
  EOS
@@ -8,6 +8,11 @@
8
8
  require 'helper'
9
9
 
10
10
 
11
+ #######
12
+ ##
13
+ ## fix/todo:
14
+ ## move to quik gem and test dir!!!!!!!!!!
15
+
11
16
  class TestUrl < MiniTest::Test
12
17
 
13
18
  def test_clean_path
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mrhyde-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-16 00:00:00.000000000 Z
11
+ date: 2015-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logutils
@@ -44,14 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 0.1.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 0.1.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: quik
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0.3'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0.3'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rdoc
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -103,18 +117,14 @@ files:
103
117
  - lib/mrhyde/builder.rb
104
118
  - lib/mrhyde/cli/main.rb
105
119
  - lib/mrhyde/cli/opts.rb
106
- - lib/mrhyde/config.rb
107
120
  - lib/mrhyde/tools.rb
108
121
  - lib/mrhyde/version.rb
109
- - lib/mrhyde/wizard.rb
110
122
  - test/helper.rb
111
123
  - test/scripts/starter.rb
112
124
  - test/scripts/starterii.rb
113
125
  - test/test_builder.rb
114
- - test/test_config.rb
115
126
  - test/test_install_theme.rb
116
127
  - test/test_url.rb
117
- - test/test_wizard.rb
118
128
  homepage: https://github.com/mrhydescripts/mrhyde
119
129
  licenses:
120
130
  - Public Domain
@@ -137,13 +147,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
147
  version: '0'
138
148
  requirements: []
139
149
  rubyforge_project:
140
- rubygems_version: 2.4.2
150
+ rubygems_version: 2.2.3
141
151
  signing_key:
142
152
  specification_version: 4
143
153
  summary: mrhyde - jekyll command line tool .:. static site quick starter script wizard
144
- test_files:
145
- - test/test_wizard.rb
146
- - test/test_install_theme.rb
147
- - test/test_builder.rb
148
- - test/test_config.rb
149
- - test/test_url.rb
154
+ test_files: []
@@ -1,60 +0,0 @@
1
- #encoding: utf-8
2
-
3
- module MrHyde
4
-
5
- ##
6
- # used for config block
7
- # lets you access props (even nested) that don't yet exist
8
- # and all props get stored in a hash
9
- #
10
- # e.g
11
- # c = OpenConfig.new
12
- # c.title = 'title'
13
- # c.author.name = 'name'
14
-
15
- # c.mrhyde.last_updated = Time.now
16
- # c.mrhyde.title = 'title'
17
- # c.mrhyde.name = 'name'
18
- # c.mrhyde.theme = 'theme'
19
-
20
- class OpenConfig
21
-
22
- def initialize
23
- @h = {}
24
- end
25
-
26
- def to_h
27
- h = {}
28
- @h.each do |k,v|
29
- if v.is_a? OpenConfig
30
- h[ k ] = v.to_h
31
- else
32
- h[ k ] = v ## just pass along as is
33
- end
34
- end
35
- h
36
- end
37
-
38
- def method_missing( m, *args, &block)
39
- if m.to_s =~ /^(.*)=$/ ## setter
40
- puts "config lookup (setter) >#{m}< #{m.class.name}, #{args.inspect}"
41
- key = m[0..-2].to_s ## cut off trailing =
42
- @h[ key ] = args[0].to_s # note: assume first arg is value for setter
43
- # note: for now all values are strings (always use to_s)
44
- else ## assume getter
45
- ## fix: add check for args?? must be 0 for getters??
46
- ## use else super to delegate non-getters??
47
- puts "config lookup (getter) >#{m}< #{m.class.name}"
48
- key = m.to_s
49
- value = @h[ key ]
50
- if value.nil?
51
- puts " config add (nested) hash"
52
- value = @h[ key ] = OpenConfig.new
53
- end
54
- value
55
- end
56
- end # method_missing
57
-
58
- end # class OpenConfig
59
-
60
- end # module MrHyde
@@ -1,88 +0,0 @@
1
- # encoding: utf-8
2
-
3
-
4
- ## note:
5
- ## use global $MRHYDE_WIZARD_STDIN
6
- ## lets you redirect stdin for testing e.g $MRHYDE_WIZARD_STDIN = StringIO.new( 'test/n' )
7
- $MRHYDE_WIZARD_IN = $stdin
8
-
9
-
10
- module MrHyde
11
-
12
- module Wizard ## use a different name e.g. WizardHelpers, FormHelpers, InputHelper, etc - why, why not??
13
-
14
- def getstr ## use getstr to avoid conflict w/ gets (use better name? read_string, readline (already exists too), etc.?)
15
- ## note: gets will include trailing newline (user hits return to enter data)
16
- ## - use strip for now (remove leading and traling whitspaces) - might later just use chomp ? (jsut removes newlines)
17
- $MRHYDE_WIZARD_IN.gets.strip
18
- end
19
-
20
- def say( text )
21
- puts text
22
- end
23
-
24
-
25
- YES_REGEX = /y|yes|on|t|true/i ## support YAML true values - double check (YAML does NOT support t/f)
26
- NO_REGEX = /n|no|off|f|false/i
27
-
28
- def yes?( question ) ## defaults to yes - why, why not??
29
- ## todo: strip trailing question mark (?) if present (gets auto-included)
30
- print( "Q: #{question} (y/n)? [y]: " )
31
- str = getstr
32
- if str.empty? || str =~ YES_REGEX
33
- true
34
- elsif str =~ NO_REGEX
35
- false
36
- else ## warn: unknown value??
37
- true
38
- end
39
- end
40
-
41
- def no?( question ) ## defaults to yes - why, why not??
42
- ## todo: strip trailing question mark (?) if present (gets auto-included)
43
- print( "Q: #{question} (y/n)? [n]: " )
44
- str = getstr
45
- if str.empty? || str =~ NO_REGEX
46
- true
47
- elsif str =~ YES_REGEX
48
- false
49
- else ## warn: unknown value??
50
- true
51
- end
52
- end
53
-
54
-
55
- def ask( question, default=nil )
56
- ## todo: strip trailing question mark (?) if present (gets auto-included)
57
- if default
58
- print( "Q: #{question}? [#{default}]: " )
59
- else
60
- print( "Q: #{question}?: " )
61
- end
62
-
63
- str = getstr
64
- if default && str.empty? ## todo: best way to check for empty string?
65
- str = default
66
- end
67
- str
68
- end
69
-
70
-
71
- def select( title, options )
72
- puts( "Q: #{title}: " )
73
- options.each_with_index do |opt,i|
74
- puts " #{i+1} - #{opt}"
75
- end
76
- print( " Your choice (1-#{options.size})? [1]: " )
77
- str = getstr
78
- if str.empty? ## todo: best way to check for empty string?
79
- num = 0 ## default to first option for now
80
- else
81
- num = str.to_i ## note: defaults to 0 if cannot convert?
82
- num -= 1 if num > 0 ## note: "convert" from 1-based to 0-based for ary; if invalid entry; default to 0
83
- end
84
- options[ num ]
85
- end
86
-
87
- end # module Wizard
88
- end # module MrHyde
@@ -1,31 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_config.rb
6
-
7
-
8
- require 'helper'
9
-
10
-
11
- class TestConfig < MiniTest::Test
12
-
13
- def test_config
14
-
15
- c = MrHyde::OpenConfig.new
16
- c.title = 'title'
17
- c.author.name = 'name'
18
-
19
- c.mrhyde.last_updated = Time.now
20
- c.mrhyde.title = 'title'
21
- c.mrhyde.name = 'name'
22
- c.mrhyde.theme = 'theme'
23
- c.mrhyde.meta.info = 'test nested nested value'
24
-
25
- pp c.to_h
26
-
27
- assert true ## if we get here; everything is ok
28
- end
29
-
30
-
31
- end # class TestConfig
@@ -1,50 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_wizard.rb
6
-
7
-
8
- require 'helper'
9
-
10
-
11
- class TestWizard < MiniTest::Test
12
-
13
- include MrHyde::Wizard ## lets you use ask etc.
14
-
15
- def test_ask
16
-
17
- $MRHYDE_WIZARD_IN = EchoIO.new( <<EOS )
18
- Another Beautiful Static Site
19
-
20
- H. J.
21
-
22
- 2
23
- n
24
- y
25
- EOS
26
-
27
- say "Hello, Wizard!"
28
-
29
- title = ask "What's your site's title", "Your Site Title"
30
- assert_equal 'Another Beautiful Static Site', title
31
-
32
- title = ask "What's your site's title", "Your Site Title"
33
- assert_equal 'Your Site Title', title
34
-
35
- name = ask "Your Name"
36
- assert_equal 'H. J.', name
37
-
38
- theme = select "Select your theme", ["Starter", "Bootstrap", "Minimal"]
39
- assert_equal 'Starter', theme
40
-
41
- theme = select "Select your theme", ["Starter", "Bootstrap", "Minimal"]
42
- assert_equal 'Bootstrap', theme
43
-
44
- assert_equal false, yes?( "Add to GitHub" )
45
- assert_equal false, no?( "Add to GitHub" )
46
-
47
- assert true ## if we get here; everything is ok
48
- end
49
-
50
- end # class TestWizard