auser-dslify 0.0.7 → 0.1.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.
@@ -1,4 +0,0 @@
1
- == 0.0.1 2008-12-19
2
-
3
- * 1 major enhancement:
4
- * Initial release
@@ -1,25 +0,0 @@
1
- History.txt
2
- Manifest.txt
3
- PostInstall.txt
4
- README.txt
5
- Rakefile
6
- config/hoe.rb
7
- config/requirements.rb
8
- dslify.gemspec
9
- lib/dslify.rb
10
- lib/dslify/dslify.rb
11
- lib/dslify/version.rb
12
- script/console
13
- script/destroy
14
- script/generate
15
- script/txt2html
16
- setup.rb
17
- tasks/deployment.rake
18
- tasks/environment.rake
19
- tasks/website.rake
20
- test/test_dslify.rb
21
- website/index.html
22
- website/index.txt
23
- website/javascripts/rounded_corners_lite.inc.js
24
- website/stylesheets/screen.css
25
- website/template.html.erb
@@ -1,5 +0,0 @@
1
- Thanks for installing dslify!
2
-
3
- For more information on dslify, see http://dslify.rubyforge.org
4
-
5
- Ari Lerner
data/README.txt DELETED
@@ -1,60 +0,0 @@
1
- = dslify
2
-
3
- == DESCRIPTION:
4
-
5
- Easily add DSL accessors to any class without bothering to mess with the gory details of their implementation
6
-
7
- == SYNOPSIS:
8
-
9
- Simply add Dslify to your class, like so:
10
- class MyClass
11
- include Dslify
12
- end
13
-
14
- Then, you can call *any* method on your object and, if it is not a method on the instance, it will set the value on the class as an option. Note, you can always check these by checking out the options on the object.
15
-
16
- instance = MyClass.new
17
- instance.name #=> nil
18
- instance.name "frank"
19
- instance.name #=> "frank"
20
-
21
- You can also define default values with the singleton method:
22
- default_options({:name => "bob"})
23
-
24
- instance = MyClass.new
25
- instance.name #=> "bob"
26
- instance.name "frank"
27
- instance.name #=> "frank"
28
-
29
- == REQUIREMENTS:
30
-
31
- ruby
32
-
33
- == INSTALL:
34
-
35
- sudo gem install auser-dslify
36
-
37
- == LICENSE:
38
-
39
- (The MIT License)
40
-
41
- Copyright (c) 2008 Ari Lerner
42
-
43
- Permission is hereby granted, free of charge, to any person obtaining
44
- a copy of this software and associated documentation files (the
45
- 'Software'), to deal in the Software without restriction, including
46
- without limitation the rights to use, copy, modify, merge, publish,
47
- distribute, sublicense, and/or sell copies of the Software, and to
48
- permit persons to whom the Software is furnished to do so, subject to
49
- the following conditions:
50
-
51
- The above copyright notice and this permission notice shall be
52
- included in all copies or substantial portions of the Software.
53
-
54
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
55
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
56
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
57
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
58
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
59
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
60
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile DELETED
@@ -1,56 +0,0 @@
1
- require 'config/requirements'
2
- require 'config/hoe' # setup Hoe + all gem configuration
3
-
4
- Dir['tasks/**/*.rake'].each { |rake| load rake }
5
-
6
- desc "Clean tmp directory"
7
- task :clean_tmp do |t|
8
- %x[rm #{File.dirname(__FILE__)}/Manifest.txt; touch #{File.dirname(__FILE__)}/Manifest.txt]
9
- %w(logs tmp).each do |dir|
10
- FileUtils.rm_rf("#{File.dirname(__FILE__)}/#{dir}") if ::File.exists?("#{File.dirname(__FILE__)}/#{dir}")
11
- end
12
- end
13
- desc "Remove the pkg directory"
14
- task :clean_pkg do |t|
15
- %w(pkg).each do |dir|
16
- FileUtils.rm_rf("#{File.dirname(__FILE__)}/#{dir}") if ::File.exists?("#{File.dirname(__FILE__)}/#{dir}")
17
- end
18
- end
19
-
20
- desc "Generate a new manifest and a new gem"
21
- task :build_local_gem => [:clean_tmp, :clean_pkg, :"manifest:refresh", :package]
22
-
23
- desc "Release to github"
24
- task :github_release => [:clean_tmp, :clean_pkg, :"manifest:refresh", :package] do
25
- res = %x[rake debug_gem]
26
- res = res.split("\n")[1..-1].join("\n")
27
- ::File.open("#{GEM_NAME.downcase}.gemspec", "w+") do |f|
28
- f << res
29
- end
30
- `mv #{::File.expand_path(::File.dirname(__FILE__))}/pkg/*.gem #{::File.expand_path(::File.dirname(__FILE__))}/pkg/poolparty.gem`
31
- end
32
-
33
- desc "Generate gemspec"
34
- task :gemspec => [:clean_tmp, :"manifest:refresh", :build_local_gem] do |t|
35
- res = %x[rake debug_gem]
36
- res = res.split("\n")[1..-1].join("\n")
37
- ::File.open("#{GEM_NAME.downcase}.gemspec", "w+") do |f|
38
- f << res
39
- end
40
- end
41
-
42
- desc "Generate gemspec for github"
43
- task :gh => [:github_release] do
44
- filepath = ::File.join(::File.dirname(__FILE__), "poolparty.gemspec")
45
- data = open(filepath).read
46
- spec = eval("$SAFE = 3\n#{data}")
47
- yml = YAML.dump spec
48
- File.open(filepath, "w+") do |f|
49
- f << yml
50
- end
51
- end
52
-
53
- desc "Generate github gemspec and latest gem"
54
- task :ghgem => [:gh] do
55
- %x[sudo gem install pkg/poolparty.gem]
56
- end
@@ -1,73 +0,0 @@
1
- require 'dslify/version'
2
-
3
- AUTHOR = 'Ari Lerner' # can also be an array of Authors
4
- EMAIL = "arilerner@mac.com"
5
- DESCRIPTION = "Easily add DSL-like calls to any class"
6
- GEM_NAME = 'dslify' # what ppl will type to install your gem
7
- RUBYFORGE_PROJECT = 'dslify' # The unix name for your project
8
- HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
9
- DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
10
- EXTRA_DEPENDENCIES = [
11
- # ['activesupport', '>= 1.3.1']
12
- ] # An array of rubygem dependencies [name, version]
13
-
14
- @config_file = "~/.rubyforge/user-config.yml"
15
- @config = nil
16
- RUBYFORGE_USERNAME = "auser"
17
- def rubyforge_username
18
- unless @config
19
- begin
20
- @config = YAML.load(File.read(File.expand_path(@config_file)))
21
- rescue
22
- puts <<-EOS
23
- ERROR: No rubyforge config file found: #{@config_file}
24
- Run 'rubyforge setup' to prepare your env for access to Rubyforge
25
- - See http://newgem.rubyforge.org/rubyforge.html for more details
26
- EOS
27
- exit
28
- end
29
- end
30
- RUBYFORGE_USERNAME.replace @config["username"]
31
- end
32
-
33
-
34
- REV = nil
35
- # UNCOMMENT IF REQUIRED:
36
- # REV = YAML.load(`svn info`)['Revision']
37
- VERS = Dslify::VERSION::STRING + (REV ? ".#{REV}" : "")
38
- RDOC_OPTS = ['--quiet', '--title', 'dslify documentation',
39
- "--opname", "index.html",
40
- "--line-numbers",
41
- "--main", "README",
42
- "--inline-source"]
43
-
44
- class Hoe
45
- def extra_deps
46
- @extra_deps.reject! { |x| Array(x).first == 'hoe' }
47
- @extra_deps
48
- end
49
- end
50
-
51
- # Generate all the Rake tasks
52
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
53
- $hoe = Hoe.new(GEM_NAME, VERS) do |p|
54
- p.developer(AUTHOR, EMAIL)
55
- p.description = DESCRIPTION
56
- p.summary = DESCRIPTION
57
- p.url = HOMEPATH
58
- p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
59
- p.test_globs = ["test/**/test_*.rb"]
60
- p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
61
-
62
- # == Optional
63
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
64
- #p.extra_deps = EXTRA_DEPENDENCIES
65
-
66
- #p.spec_extras = {} # A hash of extra values to set in the gemspec.
67
- end
68
-
69
- CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
70
- PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
71
- $hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
72
- $hoe.rsync_args = '-av --delete --ignore-errors'
73
- $hoe.spec.post_install_message = File.open(File.dirname(__FILE__) + "/../PostInstall.txt").read rescue ""
@@ -1,15 +0,0 @@
1
- require 'fileutils'
2
- include FileUtils
3
-
4
- require 'rubygems'
5
- %w[rake hoe newgem rubigen].each do |req_gem|
6
- begin
7
- require req_gem
8
- rescue LoadError
9
- puts "This Rakefile requires the '#{req_gem}' RubyGem."
10
- puts "Installation: gem install #{req_gem} -y"
11
- exit
12
- end
13
- end
14
-
15
- $:.unshift(File.join(File.dirname(__FILE__), %w[.. lib]))
@@ -1,40 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{dslify}
5
- s.version = "0.0.7"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Ari Lerner"]
9
- s.date = %q{2009-04-29}
10
- s.description = %q{Easily add DSL-like calls to any class}
11
- s.email = ["arilerner@mac.com"]
12
- s.extra_rdoc_files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "website/index.txt"]
13
- s.files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "Rakefile", "config/hoe.rb", "config/requirements.rb", "dslify.gemspec", "lib/dslify.rb", "lib/dslify/dslify.rb", "lib/dslify/version.rb", "script/console", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "tasks/deployment.rake", "tasks/environment.rake", "tasks/website.rake", "test/test_dslify.rb", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/screen.css", "website/template.html.erb"]
14
- s.has_rdoc = true
15
- s.homepage = %q{http://dslify.rubyforge.org}
16
- s.post_install_message = %q{Thanks for installing dslify!
17
-
18
- For more information on dslify, see http://dslify.rubyforge.org
19
-
20
- Ari Lerner}
21
- s.rdoc_options = ["--main", "README.txt"]
22
- s.require_paths = ["lib"]
23
- s.rubyforge_project = %q{dslify}
24
- s.rubygems_version = %q{1.3.2}
25
- s.summary = %q{Easily add DSL-like calls to any class}
26
- s.test_files = ["test/test_dslify.rb"]
27
-
28
- if s.respond_to? :specification_version then
29
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
30
- s.specification_version = 3
31
-
32
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
33
- s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
34
- else
35
- s.add_dependency(%q<hoe>, [">= 1.8.0"])
36
- end
37
- else
38
- s.add_dependency(%q<hoe>, [">= 1.8.0"])
39
- end
40
- end
@@ -1,76 +0,0 @@
1
- # Quick 1-file dsl accessor
2
- module Dslify
3
- module ClassMethods
4
- def default_options(hsh={})
5
- @default_dsl_options ||= hsh
6
- end
7
- end
8
-
9
- module InstanceMethods
10
- def default_dsl_options;self.class.default_options;end
11
- def dsl_options(hsh={})
12
- @dsl_options ||= default_dsl_options.merge(hsh)
13
- end
14
- alias :options :dsl_options
15
- def set_vars_from_options(h, contxt=self)
16
- h.each do |k,v|
17
- if contxt.respond_to?(k.to_sym)
18
- contxt.send k.to_sym, v
19
- else
20
- clean_meth = k.to_s.gsub(/\=/,"").to_sym
21
- dsl_options[clean_meth] = v
22
- end
23
- end
24
- end
25
- def add_method(meth)
26
- # instance_eval <<-EOM
27
- # def #{meth}(n=nil)
28
- # puts "called #{meth}(\#\{n\}) from \#\{self\}"
29
- # n ? (__h[:#{meth}] = n) : __h[:#{meth}]
30
- # end
31
- # def #{meth}=(n)
32
- # __h[:#{meth}] = n
33
- # end
34
- # EOM
35
- end
36
- def method_missing(m,*a,&block)
37
- if block
38
- if a.empty?
39
- (a[0].class == self.class) ? a[0].instance_eval(&block) : super
40
- else
41
- inst = a[0]
42
- inst.instance_eval(&block)
43
- dsl_options[m] = inst
44
- end
45
- else
46
- if a.empty?
47
- if dsl_options.has_key?(m)
48
- dsl_options[m]
49
- elsif m.to_s.index("?") == (m.to_s.length - 1)
50
- if options.has_key?(val = m.to_s.gsub(/\?/, '').to_sym)
51
- options[val] != false
52
- else
53
- false
54
- end
55
- else
56
- if self.class.superclass.respond_to?(:default_options) && self.class.superclass.default_options.has_key?(m)
57
- self.class.superclass.default_options[m]
58
- elsif ((respond_to? :parent) && (parent != self))
59
- parent.send m, *a, &block
60
- else
61
- super
62
- end
63
- end
64
- else
65
- clean_meth = m.to_s.gsub(/\=/,"").to_sym
66
- dsl_options[clean_meth] = (a.size > 1 ? a : a[0])
67
- end
68
- end
69
- end
70
- end
71
-
72
- def self.included(receiver)
73
- receiver.extend ClassMethods
74
- receiver.send :include, InstanceMethods
75
- end
76
- end
@@ -1,10 +0,0 @@
1
- module Dslify
2
- module VERSION #:nodoc:
3
- MAJOR = 0 unless const_defined?("MAJOR")
4
- MINOR = 0 unless const_defined?("MINOR")
5
- TINY = 7 unless const_defined?("TINY")
6
-
7
- STRING = [MAJOR, MINOR, TINY].join('.') unless const_defined?("STRING")
8
- self
9
- end
10
- end
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # File: script/console
3
- irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
-
5
- libs = " -r irb/completion"
6
- # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
- # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
- libs << " -r #{File.dirname(__FILE__) + '/../lib/dslify.rb'}"
9
- puts "Loading dslify gem"
10
- exec "#{irb} #{libs} --simple-prompt"
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
- APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
-
4
- begin
5
- require 'rubigen'
6
- rescue LoadError
7
- require 'rubygems'
8
- require 'rubigen'
9
- end
10
- require 'rubigen/scripts/destroy'
11
-
12
- ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
- RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
- RubiGen::Scripts::Destroy.new.run(ARGV)
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
- APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
-
4
- begin
5
- require 'rubigen'
6
- rescue LoadError
7
- require 'rubygems'
8
- require 'rubigen'
9
- end
10
- require 'rubigen/scripts/generate'
11
-
12
- ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
- RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
- RubiGen::Scripts::Generate.new.run(ARGV)
@@ -1,82 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- GEM_NAME = 'dslify' # what ppl will type to install your gem
4
- RUBYFORGE_PROJECT = 'dslify'
5
-
6
- require 'rubygems'
7
- begin
8
- require 'newgem'
9
- require 'rubyforge'
10
- rescue LoadError
11
- puts "\n\nGenerating the website requires the newgem RubyGem"
12
- puts "Install: gem install newgem\n\n"
13
- exit(1)
14
- end
15
- require 'redcloth'
16
- require 'syntax/convertors/html'
17
- require 'erb'
18
- require File.dirname(__FILE__) + "/../lib/#{GEM_NAME}/version.rb"
19
-
20
- version = Dslify::VERSION::STRING
21
- download = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
22
-
23
- def rubyforge_project_id
24
- RubyForge.new.configure.autoconfig["group_ids"][RUBYFORGE_PROJECT]
25
- end
26
-
27
- class Fixnum
28
- def ordinal
29
- # teens
30
- return 'th' if (10..19).include?(self % 100)
31
- # others
32
- case self % 10
33
- when 1: return 'st'
34
- when 2: return 'nd'
35
- when 3: return 'rd'
36
- else return 'th'
37
- end
38
- end
39
- end
40
-
41
- class Time
42
- def pretty
43
- return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
44
- end
45
- end
46
-
47
- def convert_syntax(syntax, source)
48
- return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
49
- end
50
-
51
- if ARGV.length >= 1
52
- src, template = ARGV
53
- template ||= File.join(File.dirname(__FILE__), '/../website/template.html.erb')
54
- else
55
- puts("Usage: #{File.split($0).last} source.txt [template.html.erb] > output.html")
56
- exit!
57
- end
58
-
59
- template = ERB.new(File.open(template).read)
60
-
61
- title = nil
62
- body = nil
63
- File.open(src) do |fsrc|
64
- title_text = fsrc.readline
65
- body_text_template = fsrc.read
66
- body_text = ERB.new(body_text_template).result(binding)
67
- syntax_items = []
68
- body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)</\1>!m){
69
- ident = syntax_items.length
70
- element, syntax, source = $1, $2, $3
71
- syntax_items << "<#{element} class='syntax'>#{convert_syntax(syntax, source)}</#{element}>"
72
- "syntax-temp-#{ident}"
73
- }
74
- title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
75
- body = RedCloth.new(body_text).to_html
76
- body.gsub!(%r!(?:<pre><code>)?syntax-temp-(\d+)(?:</code></pre>)?!){ syntax_items[$1.to_i] }
77
- end
78
- stat = File.stat(src)
79
- created = stat.ctime
80
- modified = stat.mtime
81
-
82
- $stdout << template.result(binding)