midas-guilded 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ = 0.2.5 2009-06-10
2
+
3
+ * Added BrowserDetector to assist with determining which browser is making a request.
4
+
5
+
1
6
  = 0.2.4 2009-05-29
2
7
 
3
8
  * Added add_data method to the Guilder object allowing named data structures to be passed to the JavaScript
@@ -5,6 +10,7 @@
5
10
  * Added a jQuery event to the body DOM element called guildedInitialized. To execute JavaScript code after all
6
11
  Guilded components are intialized, simply bind to this event.
7
12
 
13
+
8
14
  = 0.2.0 2009-04-06
9
15
 
10
16
  * Added human attribute hint support for InactiveRecord
data/Manifest.txt CHANGED
@@ -5,6 +5,7 @@ README.rdoc
5
5
  Rakefile
6
6
  guilded.gemspec
7
7
  lib/guilded.rb
8
+ lib/guilded/browser_detector.rb
8
9
  lib/guilded/component_def.rb
9
10
  lib/guilded/exceptions.rb
10
11
  lib/guilded/guilder.rb
data/guilded.gemspec CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{guilded}
5
- s.version = "0.2.4"
5
+ s.version = "0.2.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["C. Jason Harrelson (midas)"]
9
- s.date = %q{2009-05-29}
9
+ s.date = %q{2009-06-10}
10
10
  s.description = %q{Guilded is a framework for building web based components centered around current web standards and best practices. The current framework is written in ruby, but could be ported to other languages. Guilded intends to provide a toolset for creating and consuming reusable web components. Currently, this problem domain is filled with JavaScript frameworks. These frameworks are wonderful and work very well. However, they do not degrade gracefully and are not accessible. Guilded seeks to provide the same level of "componentization" and ease of use without sacrificing degradability and accessibility. Guilded will achieve these goals by applying each technology at our disposal to do what it was intended. XHTML will be employed for content. CSS used for layout and styling. Behavior will be added to a component with JavaScript through progressive enhancement. The user will have the best experience with a Guilded component when CSS and JavaScript are enabled in their browser, but will still be able to use the component when CSS and JavaScript are disabled. Guilded will use jQuery as it's base JavaScript framework. jQuery was chosen because it lends itself to progressive enhancement due to the way it was authored. In addition, the tight integration of jQuery's selectors with CSS selectors is also highly desirable. When authoring a Guilded component, it is encouraged to write the behavior code as a jQuery plugin. This will allow the jQuery plugin to be used outside of the Guilded project, if desired. Guilded also seeks to provide a standardized CSS framework for creating layouts that are reusable and predictable. Guilded will utilize the currently existing RubyGems system to package its components. A new Guilded component will be packaged in a Gem and have a dependency on the Guilded gem. The Guilded gem contains the framework to build Guilded components.}
11
11
  s.email = ["jason@lookforwardenterprises.com"]
12
12
  s.extra_rdoc_files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc"]
13
- s.files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "guilded.gemspec", "lib/guilded.rb", "lib/guilded/component_def.rb", "lib/guilded/exceptions.rb", "lib/guilded/guilder.rb", "lib/guilded/rails.rb", "lib/guilded/rails/active_record/human_attribute_hint.rb", "lib/guilded/rails/active_record/human_attribute_override.rb", "lib/guilded/rails/helpers.rb", "lib/guilded/rails/inactive_record/human_attribute_hint.rb", "lib/guilded/rails/view_helpers.rb", "rails_generators/guilded_assets/guilded_assets_generator.rb", "rails_generators/guilded_assets/templates/guilded.js", "rails_generators/guilded_assets/templates/guilded.min.js", "rails_generators/guilded_assets/templates/jquery-1.2.6.js", "rails_generators/guilded_assets/templates/jquery-1.2.6.min.js", "rails_generators/guilded_assets/templates/jquery-1.3.2.js", "rails_generators/guilded_assets/templates/jquery-1.3.2.min.js", "rails_generators/guilded_assets/templates/jquery-url.js", "rails_generators/guilded_assets/templates/jquery-url.min.js", "rails_generators/guilded_assets/templates/reset-min.css", "rails_generators/guilded_config/guilded_config_generator.rb", "rails_generators/guilded_config/templates/load_guilded_settings.rb", "script/console", "script/destroy", "script/generate", "spec/guilded/component_def_spec.rb", "spec/guilded/guilder_spec.rb", "spec/guilded/rails/helpers_spec.rb", "spec/guilded_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/rails.rake", "tasks/rspec.rake"]
13
+ s.files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "guilded.gemspec", "lib/guilded.rb", "lib/guilded/browser_detector.rb", "lib/guilded/component_def.rb", "lib/guilded/exceptions.rb", "lib/guilded/guilder.rb", "lib/guilded/rails.rb", "lib/guilded/rails/active_record/human_attribute_hint.rb", "lib/guilded/rails/active_record/human_attribute_override.rb", "lib/guilded/rails/helpers.rb", "lib/guilded/rails/inactive_record/human_attribute_hint.rb", "lib/guilded/rails/view_helpers.rb", "rails_generators/guilded_assets/guilded_assets_generator.rb", "rails_generators/guilded_assets/templates/guilded.js", "rails_generators/guilded_assets/templates/guilded.min.js", "rails_generators/guilded_assets/templates/jquery-1.2.6.js", "rails_generators/guilded_assets/templates/jquery-1.2.6.min.js", "rails_generators/guilded_assets/templates/jquery-1.3.2.js", "rails_generators/guilded_assets/templates/jquery-1.3.2.min.js", "rails_generators/guilded_assets/templates/jquery-url.js", "rails_generators/guilded_assets/templates/jquery-url.min.js", "rails_generators/guilded_assets/templates/reset-min.css", "rails_generators/guilded_config/guilded_config_generator.rb", "rails_generators/guilded_config/templates/load_guilded_settings.rb", "script/console", "script/destroy", "script/generate", "spec/guilded/component_def_spec.rb", "spec/guilded/guilder_spec.rb", "spec/guilded/rails/helpers_spec.rb", "spec/guilded_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/rails.rake", "tasks/rspec.rake"]
14
14
  s.has_rdoc = true
15
15
  s.homepage = %q{http://github.com/midas/guilded/tree/master}
16
16
  s.post_install_message = %q{PostInstall.txt}
data/lib/guilded.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
+ require 'guilded/browser_detector'
4
5
  require 'guilded/component_def'
5
6
  require 'guilded/guilder'
6
7
  require 'guilded/exceptions'
@@ -72,7 +73,7 @@ require 'guilded/rails/inactive_record/human_attribute_hint'
72
73
  # <%= g_load_alerter :skin => 'blueish', :id => 'load_alerter' %>
73
74
  #
74
75
  module Guilded
75
- VERSION = '0.2.4'
76
+ VERSION = '0.2.5'
76
77
  end
77
78
 
78
79
  ActionView::Base.send( :include, Guilded::Rails::ViewHelpers ) if defined?( ActionView )
@@ -0,0 +1,96 @@
1
+ module Guilded
2
+ class BrowserDetector
3
+
4
+ def self.browser_is?( request, options={} )
5
+ #name = name.to_s.strip
6
+ name = options[:name].to_s.strip
7
+ version = options[:version].to_s.strip
8
+
9
+ return true if browser_name( request ) == name
10
+ return true if name == 'mozilla' && browser_name( request ) == 'gecko'
11
+ return true if name == 'ie' && browser_name( request ).index( 'ie' )
12
+ return true if name == 'webkit' && browser_name( request ) == 'safari'
13
+ end
14
+
15
+ def self.browser_name( request )
16
+ @browser_name ||= begin
17
+ ua = request.env['HTTP_USER_AGENT']
18
+ if ua.nil?
19
+ 'unknown'
20
+ else
21
+ ua = ua.downcase
22
+
23
+ if ua.index( 'msie' ) && !ua.index( 'opera' ) && !ua.index( 'webtv' )
24
+ if ua.index( 'windows ce' )
25
+ 'ie' + ua[ua.index( 'msie' ) + 5].chr + '_ce'
26
+ else
27
+ 'ie' + ua[ua.index( 'msie' ) + 5].chr
28
+ end
29
+ elsif ua.index( 'netscape' )
30
+ 'netscape'
31
+ elsif ua.index( 'gecko/' )
32
+ 'firefox'
33
+ elsif ua.index( 'opera' )
34
+ 'opera'
35
+ elsif ua.index( 'konqueror' )
36
+ 'konqueror'
37
+ elsif ua.index( 'applewebkit/' )
38
+ 'safari'
39
+ elsif ua.index( 'mozilla/' )
40
+ 'firefox'
41
+ elsif ua.index( 'firefox' )
42
+ 'firefox'
43
+ else
44
+ 'unknown'
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ def self.browser_version( request )
51
+ @browser_version ||= begin
52
+ ua = request.env['HTTP_USER_AGENT'].downcase
53
+
54
+ if browser_name( request ) == 'opera'
55
+ ua[ua.index( 'opera' ) + 6].chr
56
+ elsif browser_name( request ) == 'firefox'
57
+ ua[ua.index( 'firefox' ) + 8 ].chr
58
+ elsif browser_name( request ) == 'netscape'
59
+ ua[ua.index( 'netscape' ) + 9].chr
60
+ elsif browser_name( request ).index( 'ie' )
61
+ ua[ua.index( 'msie' ) + 5].chr
62
+ else
63
+ 'unknown'
64
+ end
65
+
66
+ end
67
+ end
68
+
69
+ def self.can_use_png?
70
+ if browser_name.index( 'ie' ) == 0
71
+ if browser_version.to_i < 7
72
+ false
73
+ else
74
+ true
75
+ end
76
+ #elsif browser_name == 'firefox'
77
+ # false
78
+ else
79
+ true
80
+ end
81
+ end
82
+
83
+ def self.all_browsers
84
+ [ 'ie7', 'ie6', 'opera', 'firefox', 'netscape', 'konqueror', 'safari' ]
85
+ end
86
+
87
+ def self.all_mobile_browsers
88
+ %w( ie4_ce )
89
+ end
90
+
91
+ def self.all_formats
92
+ %w( html, xml, mobile )
93
+ end
94
+
95
+ end
96
+ end
@@ -1,5 +1,4 @@
1
1
  module Guilded
2
-
3
2
  class ComponentDef
4
3
 
5
4
  attr_reader :kind, :options, :libs, :styles
@@ -22,5 +21,4 @@ module Guilded
22
21
  end
23
22
 
24
23
  end
25
-
26
24
  end
@@ -83,6 +83,20 @@ module Guilded
83
83
  end
84
84
  end
85
85
 
86
+ # returns the name of the browser that is making this request.
87
+ #
88
+ def g_browser_name
89
+ Guilded::BrowserDetector.browser_name( request )
90
+ end
91
+
92
+ def g_browser_version
93
+ Guilded::BrowserDetector.browser_version( request )
94
+ end
95
+
96
+ def g_browser_is?( options={} )
97
+ Guilded::BrowserDetector.browser_is?( request, options )
98
+ end
99
+
86
100
  end
87
101
  end
88
102
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: midas-guilded
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - C. Jason Harrelson (midas)
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-29 00:00:00 -07:00
12
+ date: 2009-06-10 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -52,6 +52,7 @@ files:
52
52
  - Rakefile
53
53
  - guilded.gemspec
54
54
  - lib/guilded.rb
55
+ - lib/guilded/browser_detector.rb
55
56
  - lib/guilded/component_def.rb
56
57
  - lib/guilded/exceptions.rb
57
58
  - lib/guilded/guilder.rb